User:Martin Urbanec/gswiki.js
Appearance
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.
//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;
}
}
}
});