( function ( mw, $ ) {
if ( mw.config.get( 'wgNamespaceNumber' ) < 0 ) {
return;
}
mw.messages.set( {
'ps-prevnext-prev-text': '← $1',
'ps-prevnext-next-text': '$1 →'
} );
function findOtherPage( query ) {
var articleId = String( mw.config.get( 'wgArticleId' ) ), x, p;
if ( !query || !query.pageids || !query.pages ) {
return null;
}
for ( x = 0; x < query.pageids.length; ++x ) {
p = query.pageids[x];
if ( p !== articleId ) {
return query.pages[p];
}
}
}
function addLink( $elm, page, msgKey ) {
if ( !page ) {
return;
}
$( '<a>' )
.prop( {
href: page.fullurl,
title: page.title,
} )
.text( mw.message( msgKey, page.title ).plain() )
.appendTo( $elm );
}
function ready() {
var $prev, $next, api = new mw.Api(), baseQuery, nextQuery, prevQuery;
$prev = $( '<div class="prevnext-prev"></div>' ).insertBefore( '#firstHeading' );
$next = $( '<div class="prevnext-next"></div>' ).insertBefore( '#firstHeading' );
baseQuery = {
maxage: 600,
action: 'query',
prop: 'info',
inprop: 'url',
indexpageids: '',
generator: 'allpages',
gapfilterredir: 'nonredirects',
gaplimit: 2,
gapnamespace: mw.config.get( 'wgNamespaceNumber' ),
gapfrom: mw.config.get( 'wgTitle' ),
'continue': ''
};
nextQuery = $.extend( {}, baseQuery, { gapdir: 'ascending' } );
prevQuery = $.extend( {}, baseQuery, { gapdir: 'descending' } );
api.get( nextQuery ).done( function ( data ) {
addLink( $next, findOtherPage( data.query ), 'ps-prevnext-next-text' );
} );
api.get( prevQuery ).done( function ( data ) {
addLink( $prev, findOtherPage( data.query ), 'ps-prevnext-prev-text' );
} );
}
mw.loader.load(
'//en.wikipedia.org/w/index.php?title=User:PleaseStand/prevnext.css&action=raw&ctype=text/css',
'text/css'
);
mw.loader.using( ['mediawiki.api'], function () {
$( ready );
} );
}( mediaWiki, jQuery ) );