From Wikipedia, the free encyclopedia
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.

/* This script adds Contributions and Statistics tabs to User and User talk pages. For Vector skin.



This script was originally written by [[User:Equazcion]] and rewritten mostly from scratch by [[User:HueSatLum]].



To use this script, place the following line in your vector.js page:



	importScript('User:Equazcion/ContribsTabVector.js'); // Backlink: [[User:Equazcion/ContribsTabVector.js]]



Add any or all of these lines after the importScript line above to set various options (the default values are shown):



	var contribsTab = true;                    // Turns the Contributions tab on or off (set to false; for off)

	var contribsTabStats = true;               // Turns the Statistics tab on or off (set to false; for off)

	var contribsTabNumber = 50;                // Number of contributions to display in the Contributions tab. Can be 1 to 5000.

	var contribsTabName = "Contributions";     // Custom name for Contributions tab. Replace quoted text with your desired name.

	var contribsTabStatsName = "Statistics";   // Custom name for Statistics tab. Replace quoted text with your desired name.



-- End of documentation -- */



mw.loader.using( 'mediawiki.util', 'mediawiki.Uri'], function () {

	"use strict";

	var username, firstTab, contribsTabUrl, contribsTabStatsUrl;



	// Set default options for any that haven't been set

	function setDefault( option, val ) {

		if ( windowoption === undefined ) {

			windowoption = val;

		}

	}

	setDefault( 'contribsTabName', 'Contributions' );

	setDefault( 'contribsTabNumber', 50 );

	setDefault( 'contribsTabStats', true );

	setDefault( 'contribsTab', true );

	setDefault( 'contribsTabStatsName', 'Statistics' );



	username = mw.config.get( 'wgRelevantUserName' );

	if ( !username ) {

		return; // Don't do anything if we're not on a page with a relevant username (i.e. User or User talk)

	}



	firstTab = $( '#p-views ul li' ).eq( 0 ); // Tab to put the new tabs before (usually "Read")



	if ( window.contribsTab ) { // Construct the contribs tab, if it's not turned off

		// Construct contribs URL

		contribsTabUrl = mw.util.getUrl( 'Special:Contributions', {

			target: username,

			limit: window.contribsTabNumber

		} );



		mw.util.addPortletLink(

			'p-views',

			contribsTabUrl,

			window.contribsTabName,

			'ca-contributions',

			'Show this user\'s contributions',

			null,

			firstTab

		);

	}



	if ( window.contribsTabStats ) { // Construct the stats tab, if it's not turned off

		// Construct stats URL

		contribsTabStatsUrl = new mw.Uri( '//tools.wmflabs.org/xtools-ec/' )

			.extend( {

				user: username,

				project: mw.config.get( 'wgDBname' )

			} )

			.toString();



		mw.util.addPortletLink(

			'p-views',

			contribsTabStatsUrl,

			window.contribsTabStatsName,

			'ca-statistics',

			'Show this user\'s editing statistics',

			null,

			firstTab

		);

	}

} );