MediaWiki:Gadget-enumItems.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.
/**
 * enumItems — Move to the previous or the next Wikidata item
 *
 * Thanks to the following contributors:
 * Raoli, Dalton2, NordNordWest, Zanka, Stryn, Helder.wiki, Grondin, Rzuwig,
 * Wiki13, Reza1615, 분당선M, Vivaelcelta, ValterVB, Kristian Vangen
 *
 * @copyright 2012, 2013 Arkanosis <jroquet@arkanosis.net>
 * @license MIT
 */

( function ( mw, $ ) {
	'use strict';

	var translations = require( './enumItems-i18n.json' );
	$.i18n().load( translations );

	var page = mw.config.get( 'wgTitle' );
	if ( !page || page.length < 1 ) {
		return;
	}

	var pageType = page.charAt( 0 );
	if (
		( mw.config.get( 'wgNamespaceNumber' ) === 0 && pageType === 'Q' ) ||
		( mw.config.get( 'wgNamespaceNumber' ) === 120 && pageType === 'P' ) ||
		( mw.config.get( 'wgNamespaceNumber' ) === 146 && pageType === 'L' ) ||
		( mw.config.get( 'wgNamespaceNumber' ) === 640 && pageType === 'E' )
	) {
		var pageNamespace = mw.config.get( 'wgCanonicalNamespace' );
		if ( pageNamespace.length > 0 ) {
			pageNamespace += ':';
		}

		var pageId = parseInt( page.slice( 1 ), 10 );
		if ( pageId > 1 ) {
			mw.util.addPortletLink(
				'p-views',
				mw.util.getUrl( pageNamespace + pageType + ( pageId - 1 ) ),
				$.i18n( 'gadget-enum-prev-arrow' ),
				't-prev',
				$.i18n( 'gadget-enum-previous' + pageType )
			);
		}
		mw.util.addPortletLink(
			'p-views',
			mw.util.getUrl( pageNamespace + pageType + ( pageId + 1 ) ),
			$.i18n( 'gadget-enum-next-arrow' ),
			't-next',
			$.i18n( 'gadget-enum-next' + pageType )
		);
	}

}( mediaWiki, jQuery ) );