MediaWiki:Gadget-patroller.js

Материал из Абсурдопедии
Перейти к навигацииПерейти к поиску

Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
/** <pre>
   Patroller Interface -- 26 October 2021.
   Автор: [[Участник:Edward Chernenko]].

   Вспомогательный инструмент для администраторов и откатывающих.

   При редактировании добавляет кнопку, нажатие на которую установит на статью
   отметку «качество проверено — как минимум нормально».

   Настройки:
добавьте в свой monobook.js ([[Special:Mypage/monobook.js]]) строку
 var patroller_nodiff = 1;
, чтобы страница сохранялась сразу после установки отметки (без предпросмотра).
*/

window.customizeToolbar = function() {
         $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'advanced',
		'group': 'format',
		'tools': {
			'section': {
				label: 'Метка «досмотрено»',
				type: 'button',
				icon: '//i.absurdopedia.net/7/73/22px-Gtk-ok.png',
				action: { type: 'callback', execute: window.markR }
			}
		}
	});
};
 

window.addFuncButton = function(img, tip, func){
 var toolbar = $('#toolbar')
 if(!toolbar[0]) return;
 
 toolbar.prepend(
  $('<img/>').attr('src', img).attr('alt', tip)
    .attr('title', tip).attr('style', 'cursor:pointer').click(func)
 );
}

$(function() {
   if(document.getElementById('R')) return;

   text = document.getElementById('wpTextbox1');
   if(!text) return;

   var ns = mw.config.get('wgNamespaceNumber');

   if(ns != 0 && ns != 114 && ns != 116 && ns != 120) return;
   if(mw.config.get('wgTitle').match(/^Несловарь:/)) return;

   var groups = mw.config.get('wgUserGroups');
   if(groups.indexOf('sysop') == -1 &&
         groups.indexOf('rollback') == -1) return;

   var section = '';
   ef = document.getElementById('editform');
   if(ef) section = ef.wpSection;

   if(section) {
      if(section.value != '') return;
   }

   if(text.value.match(/^#(redirect|перенаправление )/i)) return;
   if(text.value.match(/\{\{(R|Featured(\-[12]|)|Highlighted|ИС|ХС|Best of all)[\|\}]/i)) return;
 
   mw.loader.using( 'user.options', function () {
                if ( mw.user.options.get('usebetatoolbar') ) {
                        mw.loader.using( 'ext.wikiEditor', function () {
                              $(customizeToolbar);
                        });
                }
                else window.addFuncButton('//i.absurdopedia.net/7/73/22px-Gtk-ok.png', 'Метка «досмотрено»', window.markR);
        } );

   
});

window.markR = function()
{
   var groups = mw.config.get('wgUserGroups');
   if(groups.indexOf('sysop') == -1 && groups.indexOf('rollback') == -1) return;
  
   text = document.getElementById('wpTextbox1');
   if(!text) return;

   var limbo = text.value.match(/\{Limbo[\|\}]/i);
   if(!confirm((limbo ? "Вы действительно хотите выпустить статью из Абсурдилища?" :
      "Вы действительно хотите отметить эту версию статьи как нормальную ({{R}})?")
      + " После этого она станет попадаться в случайных статьях.")) return;

   wikifier.Wikify();

   text.value = text.value.replace(/\{\{(R|Limbo)(|\|[^}]*)\}\}\n?/ig, "");
   text.value += "{{R|oldid=" + mw.config.get('wgCurRevisionId') + "|user=" + mw.config.get('wgUserName') + "}}";

   sum = document.getElementById('wpSummary');
  
   if(sum.value == '')
   {
      sum.value = "Статья проверена и добавлена в случайные: + {{R}}";
      document.getElementById('wpMinoredit').checked = 1;
   }
   else
      sum.value += ", + {{R}}";

   if(limbo)
      sum.value += ", - {{Limbo}}";

   patroller_nodiff = window.patroller_nodiff || 0
   document.getElementById((patroller_nodiff && !limbo) ? 'wpSave' : 'wpDiff').click();
}

/* </pre> */