MediaWiki:Gadget-MobileCategories.js
Appearance
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
mw.hook( 'wikipage.content' ).add( function() {
var api = new mw.Api();
var apiRequest = api.get( {
'action':'query',
'titles': mw.config.get('wgPageName'),
'prop': 'categories',
'clprop': 'sortkey|hidden',
'cllimit': 50,
'indexpageids': true,
'formatversion': 2
} );
var apiRequest2 = api.loadMessagesIfMissing( [ 'pagecategories', 'colon-separator' ] );
$.when( apiRequest, apiRequest2 ).done( function( data ) {
var categories = [],
response1Data = data[0],
response2Data = data[1];
if( !response1Data.query.pages[0].categories ) {
return;
}
function categoryHtmlGenerator(element, index, array) {
if( element.hidden ) {
return;
}
var title = new mw.Title( element.title, mw.config.get( 'wgNamespaceIds' ).file );
categories.push(
$( '<a>' ).attr( {
'href': mw.util.getUrl( element.title )
} ).append(
document.createTextNode( title.getMainText() )
).get( 0 )
);
categories.push( ', ' );
}
response1Data.query.pages[0].categories.forEach( categoryHtmlGenerator );
if( categories.length === 0 ) {
return;
}
categories.pop(); //remove the last comma
categories.unshift( document.createTextNode(
mw.message( 'pagecategories' ).escaped() + mw.message( 'colon-separator' ).escaped() + ' '
) );
$('.printfooter')
.after( $( '<div>' )
.addClass( 'catlinks' )
.attr( 'id', 'catlinks' )
.data( 'mw', 'interface' )
.append( $( '<div>' )
.attr( 'id', 'mw-normal-catlink' )
.append( categories )
)
);
} );
} );