MediaWiki:Gadget-autosort.js

/** * For autosorting sortable tables * @example <> */ (function($,mw,rs){	var $sortables = $('.sortable[class*="autosort="]');	if (!$sortables.length) return;	rs.autosort = function {        mw.loader.using('jquery.tablesorter', function  { $sortables.each(function {                var $this = $(this),                    matched = (' ' + $(this).attr( 'class') + ' ')                        .match(/autosort=(\d+)[,-]{1}(a|d)/),                    $sortCol = $this                        .find('> thead th:nth-child(' + matched[1] + ')');

if (matched[2] === 'd') { // descending $sortCol.click.click; } else { // 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);    });

}(jQuery, mediaWiki, rswiki));