MediaWiki:Gadget-MobileCategories.js
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.
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 )
)
);
} );
} );