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.
//Rewritten to remove the need to edit the script every time a change is made to the GS wikiset (Special:Wikisets/7)
//Original code on [[:m:User:Quentinv57/HideButtonsFromNonGsProjects.js]]

$(document).ready(async function() {
	if (~mw.config.get('wgUserGroups').indexOf('sysop')) {
		$('#p-personal ul:first').prepend( $.parseHTML( '<li id="pt-gsinfo" style="color:green">[local sysop]</li>' ) );
		return;
	}
	var data = await $.getJSON(mw.util.wikiScript('api') + '?action=query&format=json&list=wikisets&wsfrom=Opted-out%20of%20global%20sysop%20wikis&wsprop=wikisnotincluded&wslimit=1');
	var wikisnotincluded = data.query.wikisets[0].wikisnotincluded;
	var isGSWiki = true;
	for (var wiki in wikisnotincluded) {
		if (wikisnotincluded[wiki] === mw.config.get('wgDBname')) {
			isGSWiki = false;
			break;
		}
	}
	if (isGSWiki) {
		$('#p-personal ul:first').prepend( $.parseHTML( '<li id="pt-gsinfo" style="color:blue">[GS wiki]</li>' ) );
	} else {
		$('#p-personal ul:first').prepend( $.parseHTML( '<li id="pt-gsinfo" style="color:red">[non-GS wiki]</li>' ) );
		
		if (document.querySelector('div[class="permissions-errors"]')) return;

		// buttons become red
		$('#ca-delete, #ca-protect, #ca-unprotect').css('background-color', 'red');

		// warning if the deletion/protection/block page is opened
		if (location.href.search(/[?&]action=delete([&#]|$)/) !== -1)
			$('#deleteconfirm').prepend( $.parseHTML( '<p id="wpDeleteWarning" style="color:red; font-size:200%; text-align: center">Warning : you\'re about to delete a page on a non-GS wiki !</p>' ) );

		if (location.href.search(/[?&]action=(un)?protect([&#]|$)/) !== -1)
			$('#mw-Protect-Form').prepend( $.parseHTML( '<p id="wpProtectWarning" style="color:red; font-size:200%; text-align: center">Warning : you\'re about to protect a page on a non-GS wiki !</p>' ) );

		if (mw.config.get('wgCanonicalNamespace') === 'Special') {
			switch (mw.config.get('wgCanonicalSpecialPageName')) {
				case 'Block':
					$('form:first').prepend( $.parseHTML( '<p id="wpBlockWarning" style="color:red; text-align: center"><span style="font-size:200%">Warning : you\'re about to block a user on a non-GS wiki !</span><br />This should be done for emergencies only.</p>' ) );
					break;
				case 'Unblock':
					$('form:first').prepend( $.parseHTML( '<p id="wpUnblockWarning" style="color:red; text-align: center; font-size:200%">Warning : you\'re about to unblock a user on a non-GS wiki !</p>' ) );
					break;
				case 'Revisiondelete':
					$('#mw-revdel-form-revisions').prepend( $.parseHTML( '<p id="wpDeleterevisionWarning" style="color:red; text-align: center; font-size:200%">Warning : you\'re about to delete a revision on a non-GS wiki !</p>' ) );
					break;
			}
		}
	}
});