User:Affirmation/global.js

/* AnchoredRollback */ anchoredRollbackBot = true; importScriptPage('MediaWiki:AnchoredRollback/code.js', 'dev');

/* NoImageLightbox, SearchSuggest, MarkBlocked, and RevealAnonIP */ window.mbLoadingOpacity = 1; importArticles({    type: 'script',    articles: [         'u:dev:NoImageLightbox/code.js',        'u:dev:SearchSuggest/code.js',        'u:dev:MarkBlocked.js',        'w:c:dev:RevealAnonIP/usercode.js',        ]         });

/* ToggleSideBar */ $(function {   var i18n = {        /* Add translations here */        en: "Toggle side bar",        es: "Mostrar/ocultar la barra lateral",        sr: "Прикажи/сакриј бочну траку",        'sr-el': "Prikaži/sakrij bočnu traku"        /* Stop adding translations here */    }, lang = mw.config.get('wgUserLanguage');    if($("#WikiaRail").length === 0 || $("#ToggleSideBarButton").length > 0) {        return;    }    $("#WikiHeader .buttons").append(mw.html.element("button", {        class: "wikia-menu-button secondary",        id: "ToggleSideBarButton"    }, (i18n[lang] || i18n[lang.split("-")[0]] || i18n.en)));    $("#ToggleSideBarButton").click(function { if($("#WikiaRail").css("display") === "block") { $("#WikiaRail").fadeToggle("slow", null, function {               $("#WikiaMainContent").animate({width: "100%"}, "slow");            }); document.cookie = 'sidebartoggled=1;expires=Fri, 01 Jan 2038 03:00:00 GMT'; } else { $("#WikiaMainContent").animate({width: ($("#WikiaPage").width - 320) + "px"}, "slow", null, function {               $("#WikiaRail").fadeToggle;            }); document.cookie = 'sidebartoggled=0;expires=Fri, 01 Jan 2038 03:00:00 GMT'; }   });    var m = document.cookie.match(/sidebartoggled=(\d)/);    if (m && m[1] == '1')        $("#ToggleSideBarButton").click; });

/* Mass Rename */ massRenameDelay = 1000; // Optional massRenameSummary = 'automatic'; // Optional importScriptPage('MediaWiki:MassRename/code.js', 'dev');

/* Mass Redirect */ massRedirectDelay = 1000; importScriptPage('MassRedirect/code.1.js', 'dev');

/* RedirectManagement */ importScriptPage('MediaWiki:RedirectManagement/code.js', 'dev');

/* AjaxPatrol */ importScriptPage('MediaWiki:AjaxPatrol/code.js', 'dev' );

/* AjaxUndo */ importScriptPage('MediaWiki:AjaxUndo/code.js', 'dev');

/* AjaxRedirect */ importScriptPage('MediaWiki:AjaxRedirect/code.js', 'dev');

/* AjaxBatchDelete */ importArticles({ type: 'script', articles: [ 'u:dev:AjaxBatchDelete/code.js', ] });

/* FixWantedFiles */ importScriptPage('FixWantedFiles/code.js', 'dev');

/* AutoCategoryRename */ importScriptPage("MediaWiki:CategoryRenameAuto-update/code.js", "dev");

/* Rollback */
 * (function($, mw) {

var main = { init: function { //check if user has rollback permission already var userGroups = ["rollback","content-moderator","sysop","vstf","helper","staff"], ownGroups = mw.config.get('wgUserGroups'), hasPermissionAlready = false;

for (var i in ownGroups) { if (userGroups.indexOf(ownGroups[i]) !== -1) { hasPermissionAlready = true; break; }		}

if (hasPermissionAlready) return; if (mw.config.get('wgAction') == "history" && $('#pagehistory li').length > 1) $('#pagehistory li:first .mw-history-undo a').before(' rollback | '); else if (mw.config.get('wgCanonicalSpecialPageName') == "Contributions") { $('#mw-content-text ul').find('li').each(function {				if ($(this).find('.mw-uctop').length)					$(this).append(' [rollback] ');			}); }		else if (($.getUrlVar('diff') || $.getUrlVar('oldid')) && $('#differences-nextlink').length == 0) $('.mw-usertoollinks:last').after('   [rollback] '); $('.mw-custom-rollback-link a').click(function {			main.getRevisionIdAndContent($(this).attr('data-id'));		}); },	getRevisionIdAndContent: function(title) { var API = new mw.Api; API.get({		action: 'query',		prop: 'revisions',		titles: title,		rvprop: 'user|ids',		rvlimit: 500,		cb: new Date.getTime		}) .done(function(d) {			if (!d.error) {				var revisions;				for (var i in d.query.pages) {					revisions = d.query.pages[i].revisions;				}				var currentUser = revisions[0].user, //current user rollbacking from				lastUser,				revId;				for (var i in revisions) {					if (revisions[i].user != currentUser) {						lastUser = revisions[i].user; //remember last author						revId = revisions[i].revid; //get revision to revert to						break;					}				}				if (lastUser) {					API.get({ action: 'query', prop: 'revisions', rvprop: 'content', revids: revId, cb: new Date.getTime })					.done(function(d) { if (!d.error) { var content = ""; //can be no content on page so initialise empty as failsafe for (var i in d.query.pages) { if (d.query.pages[i].revisions) content = d.query.pages[i].revisions[0]["*"]; }							main.performRollback(title,content,currentUser,lastUser); }						else new BannerNotification('Unable to rollback (failed to get page content): ' + d.error.code,'error').show; })					.fail(function { new BannerNotification('Unable to rollback: failed to get page content!','error').show; });				}				else					new BannerNotification('Unable to rollback: no different editor found!','error').show;			}			else				new BannerNotification('Unable to rollback (failed to get revisions): ' + d.error.code,'error').show;		}) .fail(function {			new BannerNotification('Unable to rollback: failed to get revisions!','error').show;		}); },	performRollback: function(page,text,user,user2) { var API = new mw.Api; API.post({		action: 'edit',		title: page,		text: text,		summary: 'Reverted edits by ' + user + ' (talk | block) to last version by ' + user2 + '',		token: mw.user.tokens.values.editToken		}) .done(function(d) {			if (!d.error) {				new BannerNotification('Rollback successful!','confirm').show;							}			else				new BannerNotification('Unable to rollback (failed to publish edit): ' + d.error.code,'error').show;		}) .fail(function {			new BannerNotification('Unable to rollback: failed to publish edit!','error').show;		}); } };

main.init; }) (this.jQuery, this.mediaWiki);

/* Disable the automatic insertions in infobox editor */ if (window.ace) { setTimeout(function { ace.edit('editarea').setOption('behavioursEnabled', false); }, 3000); }

/* Undo → undid */ $(function { var $input = $('#wpSummary'), summary = $input.val; if (summary && summary.indexOf('Undo') === 0) { $input.val(summary.replace('Undo', 'Undid')); } });