Участник:Apple-Coffee Well/itogo.js

Материал из Википедии — свободной энциклопедии
/**
 * Проверка доступности необходимых функций и определение, в случае необходимости.
 */

// addFuncBtn - добавление кнопок в monobook
if(typeof addFuncBtn == "undefined") {
 addFuncBtn = function(id, func, img, title) {
  var i=document.createElement('img'); 
  i.className='mw-toolbar-custombutton'; i.id=id;
  i.onclick=func; i.src=wgImg(img); i.title=title; i.alt=title.substr(0,3)
  document.getElementById("toolbar").appendChild(i);
 };
};


/**
 * Функции, используемые в программе.
 */

// Добавление в текстовое поле "Описание изменений"
function addSum(addition) {var sum = document.getElementById("wpSummary"); if(sum) {sum.value = sum.value+addition;};};

// Функция для "Автоитог"
function autoResult() {insertTags("\n=== Автоитог ===\nПричина. ~"+"~"+"~"+"~ \n","",""); addSum(" Автоитог: .");};

// Функция для "Удалено"
function deletedResult() {insertTags("\n=== Итог ===\n"+""+"Причина. Посему, статья {{Удалить|удалена}} за несоответствие правилу [[ВП:Х]]. \n"+"''Итог осуществлен [[Википедия:ПИ|подводящим итоги]]. Для его оспаривания есть [[Википедия:Подводящие итоги#Порядок оспаривания итога|упрощенный порядок]].'' --~"+"~"+"~"+"~","",""); addSum(" Итог: Удалено.");};

// Функция для "Предварительный итог: Удалить"
function freeDelete() {insertTags("\n=== Предварительный итог ===\nПричина. ~"+"~"+"~"+"~ \n","",""); addSum(" Предварительный итог: Удалить.");};

// Функция для "Оставлено"
function keepResult() {insertTags("\n\n=== Итог ===\n"+""+"Причина. Посему, статья {{Оставить|оставлена}}. \n"+"''Итог осуществлен [[Википедия:ПИ|подводящим итоги]]. Для его оспаривания есть [[Википедия:Подводящие итоги#Порядок оспаривания итога|упрощенный порядок]].'' --~"+"~"+"~"+"~","",""); addSum(" Итог: Оставлено.");};

// Функция для "Предварительный итог: Оставить"
function freeKeepResult() {insertTags("\n=== Предварительный итог ===\nПричина. ~"+"~"+"~"+"~ \n","",""); addSum(" Предварительный итог: Оставить.");};

// Функция для добавления одинарного шаблона "Оставлено" на страницу обсуждения
function keep1() {insertTags("{"+"{Оставлено|}}\n","",""); addSum("Оставлено по результатам обсуждения.");};

// Функция добавления двойного шаблона "Оставлено" на страницу обсуждения
function keep2() {insertTags("{"+"{Оставлено||}}\n","",""); addSum("Оставлено по результатам обсуждения.");};

// Функция добавления шаблона "Изменено" на страницу обсуждения
function keep3() {insertTags("{"+"{Изменено|}}\n","",""); addSum("Изменено");};

// Функция добавления шаблона "Снято с удаления" на страницу обсуждения
function keepRemove() {insertTags("{"+"{Снято с удаления|}}\n","",""); addSum("Снято с удаления.");};

// Функция замены Шаблон:К удалению на Шаблон:Sdd 
function placeSdd() {
 var txt = document.getElementById("wpTextbox1");
 if (!txt) return;
 var regexp = /\{\{К[_ ]удалению\|([0-9]{4}(-[0-9]{2}){2})\}\}/;
 if (txt.value.search(regexp) < 0) return;
 txt.value = txt.value.replace(regexp, '\{\{subst:sdd|$1\}\}');
 addSum("Страница удалена по итогам обсуждения.");
 var minorcb = document.getElementById("wpMinoredit");
 if (minorcb && minorcb.checked) {minorcb.checked = false;};
 var reviewcb = document.getElementById("wpReviewEdit");
 if (reviewcb && !reviewcb.checked) {reviewcb.checked = true;};
};

// Функция для подписи
function signResult() {insertTags("''Итог осуществлен [[Википедия:ПИ|подводящим итоги]]. Для его оспаривания есть [[Википедия:Подводящие итоги#Порядок оспаривания итога|упрощенный порядок]].'' --~"+"~"+"~"+"~\n","","");};


/**
 * Подключение функций к панели инструментов
 */

// Создание дополнительной панели инструментов для нового редактора
function itogoNew() {

 // Check that the toolbar is available
 if(typeof $ != "undefined" && typeof $.fn.wikiEditor!="undefined") {
  // Execute on load
  $(document).ready( 
   function() { 
    // To add a toolbar section:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "sections": {
       "itogoPanel": {
        "type": "toolbar",
        "label": "Итоги"
       }
      }
     } 
    );
 
    // To add a group to an existing toolbar section:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "groups": {
       "templatesItogoPanel": {
        "label": "Вариант итога:"
       }
      }
     } 
    );

    // To add a select list to an existing toolbar group:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "group": "templatesItogoPanel",
      "tools": {
       "itogoPanelSelectTemplate": {
        label: "Выберите из списка",
        type: "select",
        list: {
         "itogoPanel-selectTemplate-keep" : {
          label: "Оставлено",
          action: {type:"callback", execute:keepResult}
         },
         "itogoPanel-selectTemplate-deleted" :  {
          label: "Удалено",
          action: {type:"callback", execute:deletedResult}
         },
         "itogoPanel-selectTemplate-free-keep" :  {
          label: "Предварительный итог: Оставить",
          action: {type:"callback", execute:freeKeepResult}
         },
         "itogoPanel-selectTemplate-free-delete" :  {
          label: "Предварительный итог: Удалить",
          action: {type:"callback", execute:freeDelete}
         },
         "itogoPanel-selectTemplate-auto-result" :  {
          label: "Автоитог",
          action: {type:"callback", execute:autoResult}
         }     
        }
       }
      }
     }
    );
    
    // To add a group to an existing toolbar section:
    $('#wpTextbox1').wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "groups": {
       "buttonsItogoPanel": {
        "label": ""
       }
      }
     } 
    );
    
    // To add a button to an existing toolbar group:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "group": "buttonsItogoPanel",
      "tools": {
       "sign": {
        label: "Подпись подводящего итоги",
        type: "button",
        icon: "http://upload.wikimedia.org/wikipedia/commons/7/7b/Tilde_button.PNG",
        action: {type:"callback", execute:signResult}
       }
      }
     }
    );   
    
    // To add a button to an existing toolbar group:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "group": "buttonsItogoPanel",
      "tools": {
       "btnDbDisc": {
        label: "Удаление по результатам обсуждения",
        type: "button",
        icon: "http://upload.wikimedia.org/wikipedia/commons/a/a2/TrFlameButton.png",
        // action: {type:"callback", execute:function(){placeSdd();}}
        action: {type:"callback", execute:placeSdd}
       }
      }
     }
    );
 
    // To add a group to an existing toolbar section:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "groups": {
       "templatesDiscussionItogoPanel": {
        "label": "Информация об итоге:"
       }
      }
     } 
    );

    // To add a select list to an existing toolbar group:
    $("#wpTextbox1").wikiEditor( 
     "addToToolbar", {
      "section": "itogoPanel",
      "group": "templatesDiscussionItogoPanel",
      "tools": {
       "itogoPanelSelectDiscussionTemplate": {
        label: "Выберите из списка",
        type: "select",
        list: {
         "itogoPanel-selectDiscussionTemplate-keep1" :  {
          label: "Оставлено|dd mmmmm yyyy",
          action: {type:"callback", execute:keep1}
         },
         "itogoPanel-selectDiscussionTemplate-keep2" : {
          label: "Оставлено|dd mmmmm yyyy|dd mmmmm yyyy",
          action: {type:"callback", execute:keep2}
         },
         "itogoPanel-selectDiscussionTemplate-keep3" :  {
          label: "Изменено|dd mmmmm yyyy",
          action: {type:"callback", execute:keep3}
         },
         "itogoPanel-selectDiscussionTemplate-keep-remove" :  {
          label: "Снято с удаления|dd mmmmm yyyy",
          action: {type:"callback", execute:keepRemove}
         }    
        }
       }
      }
     }
    );
        
   } // function()   
  ); // $(document).ready(  
  return true;
 }; // if(typeof $j
 return false;
}; // function itogo()


// Размещение кнопок на панели инструментов старого редактора
function itogoOld() {
 if(!document.getElementById("toolbar")) {return false;};
 addFuncBtn("btnSign", signResult, "http://upload.wikimedia.org/wikipedia/commons/6/66/Button-spi.png", "Подпись подводящего итоги");
 addFuncBtn("btnKept", keepResult, "http://upload.wikimedia.org/wikipedia/commons/9/9d/Button_fait.png", "Итог: Оставлено");
 addFuncBtn("btnDeleted", deletedResult, "http://upload.wikimedia.org/wikipedia/commons/e/e4/Bouton_Vandale3.png", "Итог: Удалено");
 addFuncBtn("btnPlaceFlame", placeSdd, "http://upload.wikimedia.org/wikipedia/commons/1/1c/Button_flamme.png", "Удаление по результатам обсуждения");
 return true;
};

 
/**
 * Запуск программы после полной загрузки страницы
 */
function loadItogo() {
 if(!itogoNew()) {itogoOld();};
};


$(loadItogo);