மீடியாவிக்கி:Group-sysop.js

கட்டற்ற கலைக்களஞ்சியமான விக்கிப்பீடியாவில் இருந்து.

குறிப்பு - சேமித்த பின்னர், நீங்கள் செய்த மாற்றங்களைக் காண்பதற்கு உங்கள் உலவியின் இடைமாற்று அகற்றப்பட வேண்டும்.

  • மொஸில்லா பயர்பாக்ஸ் / சபாரி: Shift+Reload, அல்லது Ctrl-F5 அல்லது Ctrl-R (⌘-R Mac ல்)
  • கூகிள் குரோம் Ctrl-Shift-R அழுத்தவும். (⌘-Shift-R Mac ல்) ;
  • இண்டர்நெட் எக்ஸ்ப்ளோரர்: Ctrl-Refresh அல்லது Ctrl-F5 ஐ அழுத்தவும்.
  • ஒபேரா: Tools → Preferences இல் இடைமாற்றை அகற்றவும்;
/* Any JavaScript here will be loaded for sysops only */
/** Creates a button to invert checkboxes on Special:Undelete */
if (mw.config.get('wgCanonicalNamespace') == "Special" && mw.config.get('wgCanonicalSpecialPageName') == "Undelete") {
   (function () {
      var form = document.forms["undelete"];
      if (!form) {
         return;
      }
      var elements = form.elements;
      var submitButton = elements["mw-undelete-submit"];
      if (!submitButton) {
         return;
      }
      var toggleButton = document.createElement("input");
      toggleButton.type = "button";
      toggleButton.value = "Invert selection";

      toggleButton.onclick = function () {
         for (var i = 0; i < elements.length; ++i) {
            var input = elements[i];
            if (input.type != "checkbox") {
               continue;
            }
            input.checked = !input.checked;
         }
      };
      submitButton.parentNode.insertBefore(toggleButton, submitButton);
   })();
}

/** Clean CSD G10 deletion summaries ******************************************
 *
 *  Description: Replaces autogenerated deletion summaries for articles tagged
 *               for speedy deletion as attack pages (CSD G10) with a neutral
 *               summary that avoids including any part of the article content
 *               in the deletion log.
 *  Maintainers: [[User:Ilmari Karonen]]
 */
if (mw.config.get('wgAction') == "delete") {
   (function () {
      var wpReason = document.getElementById("wpReason");
      if (!wpReason)
         return;
      var regexp = /\{\{\s*(msg:\s*)?(template:\s*)?(db-a(p|tk)?|((csd|db)[-:])?(a6|attack(pages?|template)?|g10))\s*[|}]/i;
      if (regexp.test(wpReason.value))
         wpReason.value = "[[WP:CSD#G10|CSD G10]]: [[Wikipedia:Attack page|Attack Page]]";
   })();
}
/*
 * Note: These are the known redirects to [[Template:Db-attack]] as of 7 Jun 2007.
 * The regexp above should catch these as well as a number of possible variants.
 *
 * [[Template:A6]]
 * [[Template:Attackpage]]
 * [[Template:Attackpages]]
 * [[Template:CSD:G10]]
 * [[Template:Csd-a6]]
 * [[Template:Db-Attack]]
 * [[Template:Db-a]]
 * [[Template:Db-a6]]
 * [[Template:Db-ap]]
 * [[Template:Db-atk]]
 * [[Template:Db-attack]]
 * [[Template:Db-attacktemplate]]
 * [[Template:Db-g10]]
 * [[Template:G10]]
 */

/** Automatic deletion dropdown
 *******************************************************
 *
 *  Description: Augments the drop-down menu of standard deletion reasons
 *               generated from [[MediaWiki:Deletereason-dropdown]], to
 *               automatically pick a reason from the list based on speedy
 *               deletion tags.
 *  Maintainers: [[User:Random832]]
 */
if (mw.config.get('wgAction') == 'delete' && typeof(csdDeleteForm) == 'undefined') {
   (function () { // scope
      var list = document.getElementById('wpDeleteReasonList');
      if (!list)
         return;
      var summaryBox = document.getElementById('wpReason') || document.getElementById('wpComment');
      if (!summaryBox)
         return;
      var re = /\[\[([^\]\|]*\|)?([^\]]*)\]\]/g; // convert pipe links to their display text.
      for (var i = 0; i < list.options.length; i++) {
         var o = list.options[i];
         o.text = o.text.replace(re, '$2');
      }
      function csdChangeBox() {
         if (summaryBox.value.indexOf('content was:') != -1)
            summaryBox.value = '';
      }
      function addEvent(obj, evType, fn, useCapture) {
         //alert(obj);
         if (obj.addEventListener) {
            obj.addEventListener(evType, fn, useCapture);
            return true;
         } else if (obj.attachEvent) {
            var r = obj.attachEvent("on" + evType, fn);
            return r;
         } else {
            alert("Handler could not be attached");
         }
      }
      function findCSD(s) { // s e.g. "U1", "G10"
         for (var i = 0; i < list.options.length; i++) {
            var o = list.options[i];
            if (o.text.indexOf("CSD " + s + ":") == 0)
               return o;
            if (o.text.indexOf(s + ":") == 0)
               return o;
            //TODO fine-tuning for A7 and G6
         }
      }
      var reasons_regex = {
         'G10' : // copied from [[User:Ilmari Karonen]]'s script, covers more bases than the others since it's more important (this script should blank the summary in _all_ cases where the other script does
         /\{\{\s*(msg:\s*)?(template:\s*)?(db-a(p|tk)?|((csd|db)[-:])?(a6|attack(pages?|template)?|g10))\s*[|}]/i,
         // other regexes are simpler and cover probably 99% of actual tags.
         'G1' : /\{\{\s*(db-|csd[-:])?(nonsense|ns|g1)\s*\}\}/i,
         'G2' : /\{\{\s*(db-|csd[-:])?(test|g2)\s*\}\}/i,
         'G3' : /\{\{\s*(db-|csd[-:])?(vandalism|vandal|vand|g3)\s*\}\}/i,
         'G4' : /\{\{\s*((db-|csd[-:])?(repost|g4)|deleteagain)\s*\}\}/i,
         'G5' : /\{\{\s*(db-|csd[-:])?(banned|ban|g5)\s*\}\}/i,
         'G6' : /\{\{\s*(db-|csd[-:])?(maintenance|move|histmerge|g6)\s*\}\}/i, // db-move and db-histmerge should be covered elsewhere if possible
         'G7' : /\{\{\s*(db-|csd[-:])?(author|blanked|g7)\s*\}\}/i,
         'G8' : /\{\{\s*(db-|csd[-:])?(talk|g8)\s*\}\}/i,
         // G9 is for office, there is no tag.
         // G10 is covered above
         'G11' : /\{\{\s*(db-|csd[-:])?(spam|ad|advert|g11)\s*\}\}/i,
         'G12' : /\{\{\s*(db-|csd[-:])?(copyvio|cv|cvio|g12|a8)\s*(\}\}|\|)/i,
         'A1' : /\{\{\s*(db-|csd[-:])?((no)?context|a1)\s*\}\}/i,
         'A3' : /\{\{\s*(db-|csd[-:])?((no)?content|a3|contact|a4)\s*\}\}/i,
         // A4 = A3
         // A6 = G10
         'A7 (bio)' : /\{\{\s*(nn-|db-|csd[-:])?(a7|notability|bio|person)\s*\}\}/i,
         'A7 (web)' : /\{\{\s*(nn-|db-|csd[-:])?(web(site)?|inter(net|tubes))\s*\}\}/i,
         'A7 (group)' : /\{\{\s*(db-|csd[-:]|nn-)?(band|club|music|inc|corp|comp(any)?)\s*\}\}/i,
         // TODO separate for music/band?
         // A8 = G12
         'C1' : /(\{\{\s*(db-|csd[-:])?(emptycat|c1)\s*\}\}|empty category)/i,
         'U1' : /\{\{\s*(db-|csd[-:])?(userreq|u1|user)\s*\}\}/i,
         'I2' : /\{\{\s*(db-|csd[-:])?(noimage|i2)\s*\}\}/i,
         'R1' : /\{\{\s*(db-|csd[-:])?(redirnone|r1)\s*\}\}/i,
         // no point in including the other image categories here, this will only work
         // when deleting a description page with no image
         'dummy' : /this will never be reached, it is there to allow every entry above to end in a comma/
      }
      function autopick_deletion_reason() {
         for (var csd in reasons_regex) {
            if (reasons_regex[csd].test(summaryBox.value)) {
               var option = findCSD(csd);
               if (!option) {
                  if (csd == 'G10')
                     summaryBox.value = "[[WP:CSD#G10|CSD G10]]: [[Wikipedia:Attack page|Attack Page]]"; // last resort, if G10 can't be found in the menu.
                  return;
               }
               list.selectedIndex = option.index;
               csdChangeBox(); // clear summary box
            }
         }
         // TODO "content before blanking" and A7, etc.
         // TODO We can autodetect G8 from the namespace and a redlinked tab.
         var xfdregex = /.*\{\{AfDM\|page=([^\|]*)\|.*/;
         if (xfdregex.test(summaryBox.value)) {
            summaryBox.value = summaryBox.value.replace(xfdregex, '[[Wikipedia:Articles for deletion/$1]]');
            return;
         }
         xfdregex = /.*\{\{mfdtag\|([^}]*)\}\}.*/;
         if (xfdregex.test(summaryBox.value)) {
            summaryBox.value = summaryBox.value.replace(xfdregex, '[[Wikipedia:Miscellany for deletion/$1]]');
            return;
         }
         xfdregex = /.*\{\{dated prod\|concern = (\{\{\{concern\|)?(.*?)(\}\}\})?\|month.*/;
         if (xfdregex.test(summaryBox.value)) {
            summaryBox.value = summaryBox.value.replace(xfdregex, '[[WP:PROD]], reason was \'$2\'.');
            return;
         }
         if (summaryBox.value.indexOf('\{\{rfd\}\}') != -1) {
            // best we can do without a direct link
            summaryBox.value = '[[WP:RFD|RFD]]';
            return;
         }
         xfdregex = /.*\{\{((db|delete).*?)\}\}.*/;
         if (xfdregex.test(summaryBox.value)) { // last resort for unhandled speedy tags
            summaryBox.value = summaryBox.value.replace(xfdregex, '$1');
            return;
         }
      }
      addEvent(list, "change", csdChangeBox, false);
      autopick_deletion_reason();
   })(); // scope
}
"https://ta.wikipedia.org/w/index.php?title=மீடியாவிக்கி:Group-sysop.js&oldid=3109446" இலிருந்து மீள்விக்கப்பட்டது