User:RisenPhoenix/WHAM Rangers ver.js

/*  var ug = mw.config.get("wgUserGroups").join(' '); if (mw.config.get("wgCanonicalSpecialPageName") === "Contributions" && (ug.indexOf('rollback') + ug.indexOf('sysop') + ug.indexOf('vstf') + ug.indexOf('staff') + ug.indexOf('helper') > -5)) { /*    var threads = [ "Thread", "Board Thread", "Diskussionsfaden", "Forum-Diskussionsfaden", "Hilo", "Tema del foro", "Ketju", "Palstanketju", "Fil", "Fildeforum", "Beszélgetésfolyam", "Aloldalibeszélgetésfolyam", "Conversazione", "Discussioneforum", "スレッド", "ボードスレッド", "Boardthread", "Wątek", "Wątekforum", "Conversa", "Conversanoquadro", "Тема", "Темафорума", "帖子", "版块帖子" ],		   username = mw.config.get("wgPageName").split("/")[1], token = mw.user.tokens.get("editToken"); $("#contentSub").append(' Quick Tools'); $('#contribs-wham').click(function {     $.showCustomModal('WHAM!', '', { id: 'form-main', width: 550, buttons: [{ message: 'Delete all pages', defaultButton: true, handler: function { doDelete; }	       },{		           message: 'Rollback all edits', defaultButton: true, handler: function { doRollback; }       },{		           message: 'Quick block', defaultButton: true, handler: function { doBlock; }       },{		           message: 'All of the options', defaultButton: true, handler: function { doRollback; doDelete; doBlock; closeRefresh; }       },{          message: 'Cancel', handler: function { closeRefresh; }       }]      });      $(".close").click(closeRefresh);      mw.util.addCSS('.modalWrapper .modalContent .modalToolbar {text-align:left;}');    }); function apiDelete(page,reason) { new mw.Api.post({     format: 'json',      action: 'delete',      title: page,      reason: reason,      token: token      }) .done(function(d) {        if (!d.error) {          console.log('Deletion of '+page+' successful!');        } else {          console.log('Failed to delete '+page+': '+ d.error.code);        }      }) .fail(function {       console.log('Failed to delete '+page+'!');      }); }   function closeRefresh { $('#form-main').closeModal; setTimeout((function{ location.reload; }), 1000);   }    function doRollback { $('.mw-rollback-link a').each(function {       var href = $(this).attr('href');	$.get(href);        $(this).text('gone!').css('color','grey').removeAttr('href');      }); }   function doDelete { var deleteReason = prompt('Please enter the delete reason','cleanup'), filter = new RegExp(threads); $('li .newpage ~ a').each(function {       var title = $(this).attr('title');        apiDelete(title,deleteReason);        $(this).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');      }); $('#mw-content-text ul li a').each(function {       var title = $(this).attr('title');	if (title.split('-').length == 1)	  return;           if (title.match(filter) !== -1) {          apiDelete(title,deleteReason);          $(this).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');        }      }); }   function doBlock { var duration = prompt('Please state the block duration','2 weeks'), blockReason = prompt('Please state the block reason','Vandalism'); new mw.Api.post({     format: 'json',      action: 'block',      user: username,      expiry: duration,      nocreate: 0,      autoblock: 0,      hardBlock: 0,      reason: blockReason,      token: token      }) .done(function(d) {        if (!d.error) {          console.log(username+' has been blocked successfully!');        }         else {          alert('Failed to block '+username+': '+ d.error.code);        }      }) .fail(function {       alert('Failed to block '+username+'!');      }); } } }) (this.jQuery, this.mediaWiki); //
 * A modified version of WHAM with a more up-to-date modal, as well as less coding
 * Includes ability to delete forum/message wall threads, which the original doesn't support
 * Original "WHAM" - http://dev.wikia.com/wiki/WHAM/code.js
 * @author Ozuzanna
 * @TODO add monobook support, interlang message translations, other interlang thread/message wall post names (see below)
 * (function($, mw) {
 * Interlang thread/message wall list of names, used for thread deletion
 * Acquired from https://github.com/Wikia/app/blob/ae6cd75a04ba92270931d8fee70f14d40146091b/extensions/wikia/Forum/Forum.namespaces.php
 * and https://github.com/Wikia/app/blob/ae6cd75a04ba92270931d8fee70f14d40146091b/extensions/wikia/Wall/Wall.namespaces.php
 * Feel free to add any missing ones