User:MisterSynergy/menu.js

From Meta, a Wikimedia project coordination wiki

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.
$.when($.ready).then(function(){
	if(mw.config.get('skin') !== 'vector-2022') return;

	// add links to the personal menu
	const target = '#p-personal > .vector-menu-content';
	const links = {
		'metawiki' : [
			[
				{
					'link' : '//meta.wikimedia.org/wiki/Special:Watchlist',
					'title' : 'meta'
				},
				{
					'link' : '//meta.wikimedia.org/wiki/Special:GlobalWatchlist',
					'title' : 'gw'
				}
			]
		],
		'mediawiki' : [
			[
				{
					'link' : '//www.mediawiki.org/wiki/Special:Watchlist',
					'title' : 'mw'
				}
			]
		],
		'wikidatawiki' : [
			[
				{
					'link' : '//www.wikidata.org/wiki/Special:Watchlist',
					'accesskey' : 'ä',
					'title' : 'wd'
				}
			],
			[
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:Project_chat',
					'title' : 'PC'
				},
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:Forum',
					'title' : 'Forum'
				}
			],
			[
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:WikiProject_Rowing',
					'title' : 'ROW'
				},
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:WikiProject_Olympics',
					'title' : 'OLY'
				},
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:WikiProject_Sports',
					'title' : 'Sports'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:MisterSynergy/header',
					'title' : 'h'
				}
			],
			[
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:WikiProject_Counter-Vandalism',
					'title' : 'CVN'
				},
				{
					'link' : '//wdpd.toolforge.org/',
					'title' : 'wdpd'
				},
				{
					'link' : '//www.wikidata.org/w/index.php?title=Special:RecentChanges&days=30&from=&limit=500&hidenondamaging=1',
					'title' : 'RC1'
				},
				{
					'link' : '//pltools.toolforge.org/rech/',
					'title' : 'RC2'
				}
			],
			[
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:Administrators\'_noticeboard',
					'title' : 'AN'
				},
				{
					'link' : '//www.wikidata.org/wiki/Wikidata:Requests_for_deletions',
					'title' : 'RfD'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:MisterSynergy/sysop',
					'title' : 's'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:MisterSynergy/sysop/items_for_deletion',
					'title' : 'del'
				},
				{
					'link' : '//www.wikidata.org/wiki/Category:Wikidata_protected_edit_requests',
					'title' : 'ER'
				}
			],
			[
				{
					'link' : '//www.wikidata.org/wiki/User:MsynBot',
					'title' : 'msyn'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:MsynABot',
					'title' : 'msyna'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:DeltaBot',
					'title' : 'delta'
				},
				{
					'link' : '//www.wikidata.org/wiki/User:PLbot',
					'title' : 'pl'
				}
			],
			[
				{
					'link' : '//query.wikidata.org/',
					'title' : 'query'
				}
			]
		],
		'commonswiki' : [
			[
				{
					'link' : '//commons.wikimedia.org/wiki/Special:Watchlist',
					'title' : 'com'
				},
				{
					'link' : '//commons.wikimedia.org/wiki/User:MisterSynergy/WikiProject_Rowing',
					'title' : 'ROW'
				},
				{
					'link' : '//commons.wikimedia.org/wiki/Category:Rowing',
					'title' : 'cat:ROW'
				}
			]
		],
		'dewiki' : [
			[
				{
					'link' : '//de.wikipedia.org/wiki/Spezial:Beobachtungsliste',
					'accesskey' : 'ö',
					'title' : 'de'
				},
				{
					'link' : '//de.wikipedia.org/wiki/Benutzer:MisterSynergy/Wünsche',
					'title' : 'W'
				},
				{
					'link' : '//de.wikipedia.org/wiki/Wikipedia:WikiProjekt_Rudern',
					'title' : 'ROW'
				}
			],
			[
				{
					'link' : '//de.wikipedia.org/wiki/Wikipedia_Diskussion:Kurier',
					'title' : 'WD:K'
				},
				{
					'link' : '//de.wikipedia.org/wiki/Wikipedia:Fragen_zur_Wikipedia',
					'title' : 'WP:FZW'
				}
			]
		],
		'enwiki' : [
			[
				{
					'link' : '//en.wikipedia.org/wiki/Special:Watchlist',
					'accesskey' : 'ü',
					'title' : 'en'
				},
				{
					'link' : '//en.wikipedia.org/wiki/Wikipedia:WikiProject_Rowing',
					'title' : 'ROW'
				}
			]
		],
	};

	const main_ul = $(document.createElement('ul')).attr('id', 'pt-mistersynergy-list').attr('class', 'vector-menu-content-list');
	$.each(links, function(wiki, link_list) {
		let list_item = $(document.createElement('li')).attr('class', 'pt-mistersynergy pt-mistersynergy-'+wiki);
		const sublists = [];
		$.each(link_list, function(idx, link_sublist) {
			const sublist_links = [];
			$.each(link_sublist, function(idx2, link_dct) {
				let a = $(document.createElement('a')).attr('href', link_dct.link).attr('title', link_dct.title);
				if('accesskey' in link_dct){
					a.attr('accesskey', link_dct.accesskey);
				}
				a.text(link_dct.title);
				sublist_links.push($(a).prop('outerHTML'));
			});
			sublists.push(sublist_links.join(' • '));
		});
		$(list_item).append(sublists.join('<br />'));
		$(main_ul).append(list_item);
	});
	$(target).prepend(main_ul);

	// add accesskey to left menu button (hamburger icon in the top left corner); access with "Shift + Alt + [ACCESSKEY]"
	$('#mw-sidebar-button').attr('accesskey', 'ß')
});