MediaWiki:Gadget-navboxToggle.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
(function ($) {
// loaded on all targets even though this is mobile only, so exit out if desktop
// see <https://phabricator.wikimedia.org/T173309>
if (!$('body').hasClass('skin-minerva')) {
return;
}
var navtoggle = function () {
if ($('.navbox.mw-collapsible').length) {
var $arrow = $('<div>')
.addClass('mw-ui-icon mw-ui-icon-mf-arrow mw-ui-icon-element indicator');
var $navigationText = $('<span>')
.addClass('mw-headline')
.text('Navigation');
var $toggleBar = $('<h2>')
.attr('id', 'navbox-fake-collapsible-heading')
.addClass('section-heading collapsible-heading')
.append($arrow)
.append($navigationText);
$toggleBar.on('click', function () {
// flip arrow
$('#navbox-fake-collapsible-heading > .mw-ui-icon').toggleClass('mf-mw-ui-icon-rotate-flip');
// collapse navboxes
$('.navbox.mw-collapsible').toggle();
});
// pull out navboxes so they don't get collapsed by the previous section
var $navboxes = $('.navbox.mw-collapsible').detach();
// default to hidden
$navboxes.toggle();
// append everything to the end of the content section
$('.mw-parser-output').first().append($toggleBar).append($navboxes);
}
};
function init() {
var tout = setTimeout(clearInterval, 30000, checksections);
var checksections = setInterval( function () {
if ( $('.mw-parser-output .collapsible-block[aria-expanded]').length ) {
navtoggle();
clearTimeout(tout);
clearInterval(checksections);
}
}, 500);
}
$(init);
})(jQuery);