User:DannyS712/GlobalUserDashboard.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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// <nowiki>
/**
* Quick script to create a global dashboard at Special:BlankPage/GlobalUserDashboard
*
* There will be a link to it on the side bar when you are looking at
* Special:GlobalWatchlist, or when you are looking at your user page or
* a subpage of that.
*
* If you don't want to use the same links as me (DannyS712), set the global
* variable window.GlobalUserDashboardLinks to an array with what you want to
* use, in the same format as GlobalUserDashboard.links below. Otherwise you
* will see the links I want to use.
*
* @author DannyS712
*/
$(() => {
const GlobalUserDashboard = {};
window.GlobalUserDashboard = GlobalUserDashboard;
GlobalUserDashboard.config = {
name: '[[User:DannyS712/GlobalUserDashboard.js]]',
version: 1.0
};
GlobalUserDashboard.init = function () {
window.document.title = 'GlobalUserDashboard';
var $wrapper = $( '<div>' )
.attr( 'id', 'globaluserdashboard-wrapper' )
.css( 'column-count', 3 );
$( '#firstHeading' ).remove();
$( '#contentSub' ).remove();
$( '#contentSub2' ).remove();
$( '#mw-content-text' ).empty().append( $wrapper );
if ( window.GlobalUserDashboardLinks ) {
// Allow other users to reuse this script too - set this
// in your common.js to whatever you want your link array to
// be, in the same format as the default GlobalUserDashboard.links
GlobalUserDashboard.links = window.GlobalUserDashboardLinks;
}
GlobalUserDashboard.links.forEach( function ( group ) {
var $div = $( '<div>' );
$div.css( 'break-inside', 'avoid' );
$div.append(
$( '<h3>' )
.text( group.label )
);
var $ul = $( '<ul>' );
group.links.forEach( function ( linkInfo ) {
$ul.append(
$( '<li>' ).append(
$( '<a>' )
.attr( 'target', '_blank' )
.attr( 'href', ( group.linkPrefix || '' ) + linkInfo.link )
.text( linkInfo.text )
)
);
} );
$div.append( $ul );
$wrapper.append( $div );
} );
};
// These are the links and groups that I (DannyS712) want to use - if someone else is using this
// script, you can override these by setting `window.GlobalUserDashboardLinks` to what you want
// to use, and that will overwrite these
GlobalUserDashboard.links = [
{
label: 'Global',
linkPrefix: 'https://meta.wikimedia.org/wiki/',
links: [
{ text: 'GlobalWatchlist', link: 'Special:GlobalWatchlist' },
{ text: 'CentralAuth', link: 'Special:CentralAuth/DannyS712' },
{ text: 'Global sysops/Requests', link: 'Global_sysops/Requests' },
{ text: 'Steward requests/Miscellaneous', link: 'Steward_requests/Miscellaneous' },
{ text: 'Dashboard configuration', link: 'User:DannyS712/GlobalUserDashboard.js' },
]
},
{
label: 'VRT',
links: [
{ text: 'VRT-wiki watchlist', link: 'https://vrt-wiki.wikimedia.org/wiki/Special:Watchlist' },
{ text: 'Ticket interface', link: 'https://ticket.wikimedia.org/' },
]
},
{
label: 'English Wikipedia',
linkPrefix: 'https://en.wikipedia.org/wiki/',
links: [
{ text: 'Edit requests (bot report)', link: 'User:AnomieBOT/PERTableHeader' },
{ text: 'Wikipedia:Requested moves', link: 'Wikipedia:Requested_moves' },
{ text: 'Wikipedia:Requested moves/Technical requests', link: 'Wikipedia:Requested_moves/Technical_requests' },
{ text: 'Special:PendingChanges', link: 'Special:PendingChanges' },
{ text: 'Wikipedia:Edit filter/False positives/Reports', link: 'Wikipedia:Edit_filter/False_positives/Reports' },
]
},
{
label: 'Wikidata',
linkPrefix: 'https://www.wikidata.org/wiki/',
links: [
{ text: 'Wikidata:Requests for deletions', link: 'Wikidata:Requests_for_deletions' },
{ text: 'Wikidata:Administrators\' noticeboard', link: 'Wikidata:Administrators%27_noticeboard' },
{ text: 'Wikidata:Bureaucrats\' noticeboard', link: 'Wikidata:Bureaucrats%27_noticeboard' },
{ text: 'Wikidata:Requests for permissions/Other rights', link: 'Wikidata:Requests_for_permissions/Other_rights' },
{ text: 'Wikidata:Property proposal/Overview', link: 'Wikidata:Property_proposal/Overview' },
{ text: 'SortedPropertiesUpdater', link: 'Special:BlankPage/SortedPropertiesUpdater' },
]
},
{
label: 'Commons',
links: [
{ text: 'Category:Media requiring renaming', link: 'https://commons.wikimedia.org/wiki/Category:Media_requiring_renaming' },
]
},
{
label: 'Meta',
linkPrefix: 'https://meta.wikimedia.org/wiki/',
links: [
{ text: 'Meta:Requests for help from a sysop or bureaucrat', link: 'Meta:Requests_for_help_from_a_sysop_or_bureaucrat' },
{ text: 'Talk:Spam blacklist', link: 'Talk:Spam_blacklist' },
{ text: 'Category:Deleteme', link: 'Category:Deleteme' },
{ text: 'Category:Meta protected edit requests', link: 'Category:Meta_protected_edit_requests' },
]
},
{
label: 'MediaWiki',
linkPrefix: 'https://www.mediawiki.org/wiki/',
links: [
{ text: 'Project:Requests for permissions', link: 'Project:Requests_for_permissions' },
{ text: 'Project:Administrators\' noticeboard', link: 'Project:Administrators%27_noticeboard' },
{ text: 'Category:Candidates for speedy deletion', link: 'Category:Candidates_for_speedy_deletion' },
{ text: 'Category:Candidates for deletion', link: 'Category:Candidates_for_deletion' },
]
},
{
label: 'Simple English Wikipedia',
linkPrefix: 'https://simple.wikipedia.org/wiki/',
links: [
{ text: 'Category:Quick deletion requests', link: 'Category:Quick_deletion_requests' },
{ text: 'Permissions - Rollback', link: 'Wikipedia:Requests_for_permissions/Rollback' },
{ text: 'Permissions - Patroller', link: 'Wikipedia:Requests_for_permissions/Patroller' },
{ text: 'Vandalism in progress', link: 'Wikipedia:Vandalism_in_progress' },
]
},
{
label: 'English Wikiversity',
linkPrefix: 'https://en.wikiversity.org/wiki/',
links: [
{ text: 'Category:Wikiversity deletion', link: 'Category:Wikiversity_deletion' },
{ text: 'Wikiversity:Request custodian action', link: 'Wikiversity:Request_custodian_action' },
{ text: 'Wikiversity:Colloquium', link: 'Wikiversity:Colloquium' },
]
},
{
label: 'English Wikiquote',
linkPrefix: 'https://en.wikiquote.org/wiki/',
links: [
{ text: 'Category:Candidates for speedy deletion', link: 'Category:Candidates_for_speedy_deletion' },
{ text: 'Wikiquote:Vandalism in progress', link: 'Wikiquote:Vandalism_in_progress' },
]
},
{
label: 'English Wikivoyage',
linkPrefix: 'https://en.wikivoyage.org/wiki/',
links: [
{ text: 'Category:Speedy deletion candidates', link: 'Category:Speedy_deletion_candidates' },
{ text: 'Wikivoyage:Vandalism in progress', link: 'Wikivoyage:Vandalism_in_progress' },
{ text: 'Wikivoyage:Travellers\' pub', link: 'Wikivoyage:Travellers%27_pub' },
]
},
{
label: 'Wikimania Wiki',
links: [
{ text: 'Category:Candidates for speedy deletion', link: 'https://wikimania.wikimedia.org/wiki/Category:Candidates_for_speedy_deletion' },
]
},
{
label: 'Wikispecies',
linkPrefix: 'https://species.wikimedia.org/wiki/',
links: [
{ text: 'Category:Candidates for speedy deletion', link: 'Category:Candidates_for_speedy_deletion' },
{ text: 'Wikispecies:Administrators\' Noticeboard', link: 'Wikispecies:Administrators%27_Noticeboard' },
{ text: 'Wikispecies:Translation Administrators\' Noticeboard', link: 'Wikispecies:Translation_Administrators%27_Noticeboard' },
]
},
{
label: 'Wikifunctions',
linkPrefix: 'https://www.wikifunctions.org/wiki/',
links: [
{ text: 'Wikifunctions:Requests for deletions', link: 'Wikifunctions:Requests_for_deletions' },
{ text: 'Wikifunctions:Report vandalism', link: 'Wikifunctions:Report_vandalism' },
{ text: 'Wikifunctions:Requests for user groups', link: 'Wikifunctions:Requests_for_user_groups' }
]
},
{
label: 'Special:PageTranslation',
links: [
{ text: 'Wikidata', link: 'https://www.wikidata.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Species', link: 'https://species.wikimedia.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Commons', link: 'https://commons.wikimedia.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Meta', link: 'https://meta.wikimedia.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'MediaWiki', link: 'https://www.mediawiki.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Outreach', link: 'https://outreach.wikimedia.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Wikimania', link: 'https://wikimania.wikimedia.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Beta wikiversity', link: 'https://beta.wikiversity.org/wiki/Special:PageTranslation?autohide=1' },
{ text: 'Wikifunctions', link: 'https://www.wikifunctions.org/wiki/Special:PageTranslation?autohide=1' },
]
}
];
});
$(document).ready(() => {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Blankpage' ) {
const page = mw.config.get( 'wgTitle' ).split( '/' );
if ( page[1] && page[1] === 'GlobalUserDashboard' ) {
window.GlobalUserDashboard.init();
}
} else if (
mw.config.get( 'wgCanonicalSpecialPageName' ) === 'GlobalWatchlist' ||
(
mw.config.get( 'wgNamespaceNumber') === 2
&& mw.config.get( 'wgRelevantUserName' ) === mw.config.get( 'wgUserName' )
)
) {
mw.loader.using(
'mediawiki.util',
function () {
mw.util.addPortletLink( 'p-tb', '/wiki/Special:BlankPage/GlobalUserDashboard', 'Global dashboard' );
}
);
}
});
// </nowiki>