More actions
Import from source wiki for parity |
Fix mw-collapsible toggle text update (hardcoded [Show]/[Hide] in wikitext) |
||
| Line 18: | Line 18: | ||
}); | }); | ||
observer.observe(elem.closest('div.tabber'), { attributes: true }); | observer.observe(elem.closest('div.tabber'), { attributes: true }); | ||
}); | |||
/* Fix mw-collapsible toggle text — hardcoded [Show]/[Hide] in wikitext | |||
The makeCollapsible module toggles CSS classes but does not update | |||
hardcoded toggle text. This patches all mw-collapsible-toggle elements. */ | |||
mw.hook('wikipage.content').add(function () { | |||
document.querySelectorAll('.mw-collapsible-toggle').forEach(function (toggle) { | |||
var text = toggle.textContent; | |||
if (text.indexOf('[Show]') === -1 && text.indexOf('[Hide]') === -1) return; | |||
toggle.addEventListener('click', function () { | |||
var container = toggle.closest('.mw-collapsible'); | |||
if (!container) return; | |||
var collapsed = container.classList.contains('mw-collapsed'); | |||
toggle.textContent = text.replace(/\[(Show|Hide)\]/, collapsed ? '[Show]' : '[Hide]'); | |||
}); | |||
}); | |||
}); | }); | ||
Revision as of 03:16, 27 March 2026
/* Any JavaScript here will be loaded for all users on every page load. */
/* - - - - - - - - - - - - - - -
| Tabber Autoselections
| Looks for autoselect markers
| and executes after tabber control
| is fully mounted.
|- - - - - - - - - - - - - - - - */
var autoselectTargets = document.querySelectorAll(".tabber--autoselect");
autoselectTargets.forEach(function (elem) {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === "attributes" && mutation.target.classList.contains('tabber--live')) {
var tabName = elem.closest('article.tabber__panel').id;
document.getElementById('tab-' + tabName).click();
}
});
});
observer.observe(elem.closest('div.tabber'), { attributes: true });
});
/* Fix mw-collapsible toggle text — hardcoded [Show]/[Hide] in wikitext
The makeCollapsible module toggles CSS classes but does not update
hardcoded toggle text. This patches all mw-collapsible-toggle elements. */
mw.hook('wikipage.content').add(function () {
document.querySelectorAll('.mw-collapsible-toggle').forEach(function (toggle) {
var text = toggle.textContent;
if (text.indexOf('[Show]') === -1 && text.indexOf('[Hide]') === -1) return;
toggle.addEventListener('click', function () {
var container = toggle.closest('.mw-collapsible');
if (!container) return;
var collapsed = container.classList.contains('mw-collapsed');
toggle.textContent = text.replace(/\[(Show|Hide)\]/, collapsed ? '[Show]' : '[Hide]');
});
});
});