User:NguoiDungKhongDinhDanh/ContribsTabVector.js

/* 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

CentralAuth added by NguoiDungKhongDinhDanh.

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 CATab = true; // Turns the CentralAuth 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.

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

-- End of documentation -- */

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

"use strict";

var username, firstTab, contribsTabUrl, contribsTabStatsUrl, CATabUrl;

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

function setDefault( option, val ) {

if ( window[option] === undefined ) {

window[option] = val;

}

}

setDefault( 'contribsTabName', 'Ctrbs' );

setDefault( 'contribsTabNumber', 50 );

setDefault( 'contribsTabStats', true );

setDefault( 'contribsTab', true );

setDefault( 'contribsTabStatsName', 'Stats' );

setDefault( 'CATabName', 'CA' );

setDefault( 'CATab', true );

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.CATab ) { // Construct the CA tab, if it's not turned off

// Construct CA URL

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

target: username,

} );

mw.util.addPortletLink(

'p-views',

contribsTabUrl,

window.CATabName,

'ca-CA',

'Show this user\'s CentralAuth',

null,

firstTab

);

}

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

// Construct stats URL

contribsTabStatsUrl = new URL( '//tools.wmflabs.org/xtools-ec/' );

contribsTabStatsUrl.searchParams.set('user', username);

contribsTabStatsUrl.searchParams.set('project', mw.config.get('wgDBname'));

contribsTabStatsUrl = contribsTabStatsUrl.toString();

mw.util.addPortletLink(

'p-views',

contribsTabStatsUrl,

window.contribsTabStatsName,

'ca-statistics',

'Show this user\'s editing statistics',

null,

firstTab

);

}

} );