MediaWiki:Gadget-autosort.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Tag: Manual revert
No edit summary
Line 1:
"use strict";
 
/**
* For autosorting sortable tables
* @example <>
*/
(function ($, mw, rs) {
var $sortables = $('.sortable[class*="autosort="]');
if (!$sortables.length) return;
rs.autosort = function (); {
rs.autosort = mw.loader.using('jquery.tablesorter', function () {
mw$sortables.loader.usingeach('jquery.tablesorter', function () {
var $sortables.each(functionthis = $(this) {,
matched = (' ' var+ $(this).attr('class') =+ $' ').match(this/autosort=(\d+)[,-]{1}(a|d)/),
matched$sortCol = $this.find('> thead th:nth-child(' + $(this).attr( 'class')matched[1] + ' )');
if (matched[2] === 'd') {
.match(/autosort=(\d+)[,-]{1}(a|d)/),
// $sortCol = $thisdescending
$sortCol.click().click();
.find('> thead th:nth-child(' + matched[1] + ')');
} else {
 
// if (matched[2] === 'd') {ascending
// descending$sortCol.click();
});
$sortCol.click().click();
} else {);
mw.hook('gadget.autosort.sorted').fire($sortables);
// ascending
$sortCol.click();
}
});
mw.hook('gadget.autosort.sorted').fire($sortables);
});
};
mw.hook('wikipage.content').add(function init() {
if ($('.jquery-tablesorter').length) {
rs.autosort();
} else {
// tablesorter plugin has not run yet; observe the first
// sortable table element and wait for the plugin to add
// the 'jquery-tablesorter' class to it
new MutationObserver(function(muts, obs) {
if (muts[0].target.classList.contains('jquery-tablesorter')) {
window.rs.autosort();
obs.disconnect();
}
}).observe($sortables[0], {
attributes: true,
attributeFilter: ['class'],
});
}
// only run once
mw.hook('wikipage.content').remove(init);
});
};
mw.hook('wikipage.content').add(function init() {
if ($('.jquery-tablesorter').length) {
rs.autosort();
} else {
// tablesorter plugin has not run yet; observe the first
// sortable table element and wait for the plugin to add
// the 'jquery-tablesorter' class to it
new MutationObserver(function (muts, obs) {
if (muts[0].target.classList.contains('jquery-tablesorter')) {
window.rs.autosort();
obs.disconnect();
}
}).observe($sortables[0], {
attributes: true,
attributeFilter: ['class'],
});
};
 
// only run once
}(jQuery, mediaWiki, rswiki));
mw.hook('wikipage.content').remove(init);
});
})(jQuery, mediaWiki, rswiki));

Navigation menu