MediaWiki:Gadget-HideTrackingCategories.js
Jump to navigation
Jump to search
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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
;(function (window, $, mw) {
'use strict';
if (window.HideEmptyTrackingCategoriesLoaded ||
mw.config.get('wgCanonicalSpecialPageName') !== 'TrackingCategories') return;
window.HideEmptyTrackingCategoriesLoaded = true;
var table = document.getElementById('mw-trackingcategories-table');
if (!table) return;
var displayEmptyRows = true;
var msg, emptyText, disabledText, OO;
function init() {
// add button
var button = new OO.ui.ButtonWidget( {
label: msg('labelHide').plain(),
title: msg('titleHide').plain(),
flags: ['primary', 'progressive']
} );
$(table).before(button.$element);
var rows = table.querySelectorAll('.mw-trackingcategories-name');
button.on('click', function () {
// toggle visibility
for (var i = 0; i < rows.length; i++) {
var td = rows[i],
span = td.querySelector('span');
if (td.textContent === disabledText ||
span && span.textContent === emptyText) {
td.parentNode.style.display = (displayEmptyRows ? 'none' : null);
}
}
// update button
button.setLabel(msg(displayEmptyRows ? 'labelShow' : 'labelHide').plain())
.setTitle(msg(displayEmptyRows ? 'titleShow' : 'titleHide').plain());
// update state
displayEmptyRows = !displayEmptyRows;
});
}
mw.loader.using(['mediawiki.api', 'jquery', 'oojs-ui', 'oojs-ui-core', 'oojs-ui-widgets']).then(function(require) {
OO = require('oojs');
return;
}).then(function () {
return new mw.Api().loadMessagesIfMissing([
'categorytree-member-num',
'categorytree-num-empty',
'trackingcategories-disabled'
]);
}).then(function () {
emptyText = mw.msg('categorytree-member-num', 0, 0, 0, 0, mw.msg('categorytree-num-empty')); // "(empty)"
disabledText = mw.msg('trackingcategories-disabled'); // "Category is disabled"
mw.hook('dev.i18n').add(function (i18n) {
i18n.loadMessages('HideEmptyTrackingCategories').done(function (i18no) {
msg = i18no.msg;
init();
});
});
if (!(window.dev && window.dev.i18n && window.dev.i18n.loadMessages)) {
mw.loader.load('https://dev.fandom.com/load.php?mode=articles&only=scripts&articles=MediaWiki:I18n-js/code.js&*');
}
});
})(window, window.jQuery, window.mediaWiki);