MediaWiki:Gadget-sister-projects.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(This timing should produce more reliable results) |
||
Line 5: | Line 5: | ||
'use strict'; | 'use strict'; | ||
function | /* Wait for mediawiki.util and DOM ready */ | ||
$.when( mw.loader.using(['mediawiki.util',]), $.ready ).then( function () { | |||
var namespace = mw.config.get('wgNamespaceNumber'); | var namespace = mw.config.get('wgNamespaceNumber'); | ||
Line 30: | Line 30: | ||
); | ); | ||
link.classList.add('sister-tab'); | link.classList.add('sister-tab'); | ||
} | }; | ||
if ( namespace === -1 || namespace === 8 ) { | if ( namespace === -1 || namespace === 8 ) { | ||
Line 52: | Line 52: | ||
} | } | ||
} | } | ||
} ); | |||
} | |||
}() ); | }() ); |
Latest revision as of 01:53, 14 October 2024
/* global mw */
/* jshint strict:true, jquery:true, esversion:5, bitwise:true, curly:true, eqeqeq:true, undef:true, latedef:true, trailingcomma:true */
( function () {
'use strict';
/* Wait for mediawiki.util and DOM ready */
$.when( mw.loader.using(['mediawiki.util',]), $.ready ).then( function () {
var namespace = mw.config.get('wgNamespaceNumber');
/*
* Add menu tab
*/
var addTab = function (project, interwiki, page) {
var url = mw.util.getUrl(interwiki + ':' + page);
if ( namespace === -1 || namespace === 8 ) {
url += window.location.search; // include query string
}
var tooltip = 'View this page on ' + project;
if ( namespace === 0 ) {
// Article namespace
tooltip = 'View this article on ' + project;
}
var link = mw.util.addPortletLink(
'p-namespaces',
url,
project,
'ca-sister-' + interwiki,
tooltip
);
link.classList.add('sister-tab');
};
if ( namespace === -1 || namespace === 8 ) {
// Add tabs on Special and MediaWiki pages
var page = mw.config.get('wgPageName');
addTab('Path of Exile Wiki', 'poewiki', page);
} else {
// Add tabs from Template:Sister
var sisterData = document.getElementsByClassName('js-sister-data');
if (sisterData.length) {
for ( var i = 0; i < sisterData.length; i++ ) {
var data = sisterData[i].children;
for ( var j = 0; j < data.length; j++ ) {
addTab(
data[j].dataset.project,
data[j].dataset.interwiki,
data[j].dataset.page
);
}
}
}
}
} );
}() );