MediaWiki:AboutArticle.js

Материал из ЕЖЕВИКИ - EJWiki.org - Академической Вики-энциклопедии по еврейским и израильским темам
Перейти к: навигация, поиск

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

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Выберите очистку кэша в меню Инструменты → Настройки
//  ____________________________________________________________________________________________
// |                                                                                            |
// |                    Основано на версии 264413579 гаджета refToolbar.js                      |
// | (http://en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-refToolbar.js&oldid=264413579) |
// |____________________________________________________________________________________________|
//
// Imported from revision 264412998 as of 2009-01-16T05:53:39 from [[User:Mr.Z-man/refToolbar.js]]
// For a description, see [[User:Mr.Z-man/refToolbar]]
 
//modified to work with new Wiki API - 2014-11-04 - BaruchG
//modified to change the template fields - 2014-11-04 - BaruchG
//modified to change the template fields - 2014-11-13 - BaruchG
 
//var numforms = 0;
//var numforms1 = 0;
//var isIE = detectIE();
 
var supervisors = [
      ["0", ""],
      ["1", "Пинхас Полонский"],
      ["2", "Арье Ольман"],
      ["3", "Шломо Коль-Яаков"],
      ["4", "Александр Черницкий"],
      ["5", "Борис Гулько"],
      ["6", "Леви Китросский"],
      ["7", "Г. Ахиезер"],
      ["8", "Анна Гейфман"],
      ["9", "Ш. Гендельман"],
      ["10", "Илья Дворкин"],
      ["11", "Давид Копелиович"],
      ["12", "М. Левинов"],
      ["13", "Л. Прайсман"],
      ["14", "Михаэль Рыжик"],
      ["15", "Тали Тамарин"],
      ["16", "Яков Файтельсон"],
      ["17", "Зеев Ханин"],
      ["18", "Велвл Чернин"],
      ["19", "М. Шерман"],
      ["20", "Михаил Шнейдер"],
      ["21", "Ася Энтова"],
      ["22", "Моше Гончарок"]
];
 
function Articlebutton() {
   if (document.getElementById('wpTextbox1')) {
//      if (document.getElementById('toolbar')) {
//    var button = document.createElement('a');
//    button.href = "javascript:easyArticleMain()";
//    button.title = "Добавить шаблон О_статье";
//    buttonimage = document.createElement('img');
//    buttonimage.src = "http://upload.wikimedia.org/wikipedia/commons/9/9f/Button_defaultsort.png";
//    buttonimage.alt = "Вставить описание статьи";
//    button.appendChild(buttonimage);
//    var toolbar = document.getElementById('toolbar');
 
      var toolbar = jQuery('#wikiEditor-ui-toolbar').find('.group-insert')[0];
      var buttonTitle = "Добавить шаблон О_статье";
      var buttonImageSrc = "http://upload.wikimedia.org/wikipedia/commons/9/9f/Button_defaultsort.png";
//    var buttonimageAlt = "Вставить описание статьи";
 
 
//      if (!isIE) { //navigator.userAgent.indexOf('MSIE') == -1) {
//         if (toolbar.style != null) {
//            toolbar.style.height = 'auto';
//         }
//         else {
//            toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
//         }
//         toolbar.appendChild(button);
 
      try {
         jQuery('#wpTextbox1').wikiEditor('addToToolbar', {
            section: 'advanced',
            group: 'insert',
            tools: {
               buttonId: {
                  label: buttonTitle,
                  type: 'button',
                  icon: buttonImageSrc,
                  action: {
                     type: 'callback',
                     execute: function(context) {
                        easyArticleMain();
                     }
                  }
               }
            }
         });
      } catch (e) {
         console.log(e.message);
      }
//
      var articlemain = document.createElement('div');
      articlemain.style.display = 'none';
      articlemain.style.margin = '0.2em 0 -0.2em 0';
      articlemain.setAttribute('Id', 'articleselect');
      articlemain.appendChild(addOption("aboutArticle()", "О статье"));
      articlemain.appendChild(addOption("aboutTemplate()", "?"));
      articlemain.appendChild(addOption("hideInit()", "Отмена"));
      toolbar.appendChild(articlemain);
//      }
//      else {
//         toolbar.appendChild(button);
//         selection = '<div id="articleselect" style="display:none"><input type="button" value="О статье" onclick="aboutArticle()" />' +
//            '<input type="button" value="?" onclick="aboutTemplate()" />' +
//            '<input type="button" value="Отмена" onclick="hideInit()" /></div>';
//         document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
//      }
   }
}
 
function addOption(script, text) {
  var option = document.createElement('input');
  option.setAttribute('type', 'button');
  option.setAttribute('onclick', script);
  option.setAttribute("value", text);
  return option;
}
 
function hideInit() {
  document.getElementById('articleselect').style.display = 'none';
  oldFormHide1();
}
 
function oldFormHide1() {
//  if (numforms != 0) {
//    document.getElementById('articlediv'+numforms).style.display = 'none';
//  }
//  if (numforms1 != 0) {
//    document.getElementById('helpdiv'+numforms1).style.display = 'none';
//  }
   jQuery('#articlediv1').css("display", 'none');
   jQuery('#helpdiv1').css("display", 'none');
}
 
function easyArticleMain() {
  document.getElementById('articleselect').style.display = '';
}
 
function getTime() {
  var time = new Date();
  var nowdate = time.getUTCDate();
  if (nowdate<10) { nowdate = "0"+ nowdate.toString(); }
  var nowmonth = time.getUTCMonth()+1;
  if (nowmonth<10) { nowmonth = "0"+ nowmonth.toString(); }
  var nowyear = time.getUTCFullYear();
  var newtime =  nowdate + '/' + nowmonth + '/' + nowyear;
  return (newtime);
}
 
function aboutTemplate() {
   oldFormHide1();
   var legend;
 
   legend = "Справка";
//  numforms1++;
 
   var form = '<div id="helpdiv1" style="background-color:white">' +
      '<fieldset><legend>' + legend + '</legend>' +
      '{{О_статье  <br>' +
      '| ТИП СТАТЬИ            =  <br>' +
      '&nbsp;&nbsp;&nbsp;1. Регулярная статья<br>' +
      '&nbsp;&nbsp;&nbsp;2. Регулярная исправленная статья<br>' +
//  '&nbsp;&nbsp;&nbsp;3. Статья-справка<br>'+
//  '&nbsp;&nbsp;&nbsp;4. Текст унаследован из Википедии<br>'+
      '&nbsp;&nbsp;&nbsp;3. Служебная статья<br>' +
      '| АВТОР1                =  <br>' +
      '| АВТОР2                =  <br>' +
      '| АВТОР3                =  <br>' +
      '| СУПЕРВАЙЗЕР           =  <br>' +
      '| ПРОЕКТ                =  <br>' +
//'| ПОДТЕМА               =  <br>'+
//'| КАЧЕСТВО              =  <br>'+
//'| УРОВЕНЬ               =  <br>'+
      '| ДАТА СОЗДАНИЯ         =  <br>' +
//'| ВИКИПЕДИЯ             =  <br>'+
//'| НЕОДНОЗНАЧНОСТЬ       =  <br>'+
      '}} <br> <br>' +
      '</fieldset></div>';
 
   if (jQuery('#helpdiv1').length > 0) {
      jQuery('#helpdiv1').replaceWith(form);
   } else {
      document.getElementById('articleselect').innerHTML += form;
   }
}
 
function aboutArticle() {
   oldFormHide1();
   var legend;
   var template = "О_статье";
 
   legend = "Описание статьи";
   var newtime = getTime();
//   numforms++;
 
   var form = '<div id="articlediv1" style="background-color:white">' +
      '<fieldset><legend>' + legend + '</legend>' +
      '<table cellspacing="6">' +
      '<input type="hidden" value="' + template + '" id="template">' +
 
      '<tr>' +
      '<td width="150"><label for="АВТОР1">&nbsp;основной автор: </label></td>' +
      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="АВТОР1"></td>' +
      '<td width="150"><label for="ТИП СТАТЬИ">&nbsp;&nbsp;&nbsp;тип статьи: </label></td>' +
      '<td width="80">' +
      '<SELECT NAME="ТИП СТАТЬИ" SIZE=0 id="typebox">' +
      '<OPTION VALUE="0"></option>' +
      '<OPTION VALUE="1">1. Регулярная статья</option>' +
      '<OPTION VALUE="2">2. Регулярная исправленная статья</option>' +
      //      '<OPTION VALUE="3">3. Статья-справка</option>' +
      //      '<OPTION VALUE="4">4. Текст унаследован из Википедии</option>' +
      '<OPTION VALUE="3">3. Служебная статья</option>' +
      '</SELECT>' +
      '</td>' +
      '</tr>' +
 
      '<tr>' +
      '<td width="150"><label for="АВТОР2">&nbsp;автор 2: </label></td>' +
      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="АВТОР2"></td>' +
//      '<td width="150"><label for="УРОВЕНЬ">&nbsp;&nbsp;&nbsp;энциклопедический &nbsp;&nbsp;&nbsp;уровень: </label></td>' +
//      '<td width="80"><SELECT NAME="УРОВЕНЬ" SIZE=0 id="level">' +
//      '<OPTION VALUE="0"></option>' +
//      '<OPTION VALUE="1">I. Обычная статья</option>' +
//      '<OPTION VALUE="2">II. Корневая статья</option>' +
//      '<OPTION VALUE="3">III. Краткое общее объяснение</option>' +
//      '<OPTION VALUE="4">IV. Детальное и техническое обсуждение</option></SELECT></td>' +
      '</tr>' +
 
      '<tr>' +
      '<td width="150"><label for="АВТОР3">&nbsp;автор 3: </label></td>' +
      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="АВТОР3"></td>' +
//      '<td width="150"><label for="КАЧЕСТВО">&nbsp;&nbsp;&nbsp;качество: </label></td>' +
//      '<td width="80"><SELECT NAME="КАЧЕСТВО" SIZE=0 id="quality">' +
//      '<OPTION VALUE="0"></option>' +
//      '<OPTION VALUE="1">25%</option>' +
//      '<OPTION VALUE="2">50%</option>' +
//      '<OPTION VALUE="3">75%</option>' +
//      '<OPTION VALUE="4">100%</option></SELECT></td>' +
      '</tr>' +
 
      '<tr><td width="200"><label for="СУПЕРВАЙЗЕР">&nbsp;академический &nbsp;супервайзер: </label></td>' +
      '<td width="100">' +
 
      '<SELECT NAME="СУПЕРВАЙЗЕР" SIZE=0 id="supervisor">';
      for (var i = 0; i < supervisors.length; i++) {
         form += '<OPTION VALUE="' + supervisors[i][0] + '">' + supervisors[i][1] + '</option>';
      }
      form += '</SELECT>' +
 
      '</td>' +
//      '<td width="150"><label for="ВИКИПЕДИЯ">&nbsp;&nbsp;&nbsp;в Википедии: </label></td>' +
//      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="ВИКИПЕДИЯ"></td>' +
      '</tr>' +
 
      '<tr>' +
      '<td width="150"><label for="ПРОЕКТ">&nbsp;тематический &nbsp;проект: </label></td>' +
      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="ПРОЕКТ"></td>' +
//      '<td width="150"><label for="НЕОДНОЗНАЧНОСТЬ">&nbsp;&nbsp;&nbsp;разрешение &nbsp;&nbsp;&nbsp;неоднозначности: </label></td>' +
//      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="НЕОДНОЗНАЧНОСТЬ"></td>' +
      '</tr>' +
 
      '<tr>' +
//      '<td width="150"><label for="ПОДТЕМА">&nbsp;подтема: </label></td>' +
//      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="ПОДТЕМА"></td>' +
      '<td width="150"><label for="ДАТА СОЗДАНИЯ">&nbsp;&nbsp;&nbsp;дата &nbsp;&nbsp;&nbsp;создания: </label></td>' +
      '<td width="300"><input type="text" tabindex=1 style="width:100%" id="ДАТА СОЗДАНИЯ" value="' + newtime + '"></td>' +
      '</tr>' +
 
      '</table>' +
      '<input type="button" value="Добавить" onClick="addtemplate()">' +
      '</fieldset></div>';
 
   if (jQuery('#articlediv1').length > 0) {
      jQuery('#articlediv1').replaceWith(form);
   } else {
      document.getElementById('articleselect').innerHTML += form;
   }
}
 
function addtemplate() {
   var cites = document.getElementById('articlediv1').getElementsByTagName('input');
   var citebegin = '';
   var citeinner = '';
 
   if (document.getElementById('typebox').selectedIndex != "0") {
      citeinner += "\n|" + document.getElementById('typebox').name + "=" + document.getElementById('typebox').selectedIndex;
   }
   else {
      citeinner += "\n|" + document.getElementById('typebox').name + "="
   }
   if (document.getElementById('supervisor').selectedIndex != "0") {
      citeinner += "\n|" + document.getElementById('supervisor').name + "=" + document.getElementById('supervisor').selectedIndex;
   }
   else {
      citeinner += "\n|" + document.getElementById('supervisor').name + "="
   }
//   if (document.getElementById('level').selectedIndex != "0") {
//      citeinner += "\n|" + document.getElementById('level').name + "=" + document.getElementById('level').selectedIndex;
//   }
//   else {
//      citeinner += "\n|" + document.getElementById('level').name + "="
//   }
//   if (document.getElementById('quality').selectedIndex != "0") {
//      citeinner += "\n|" + document.getElementById('quality').name + "=" + document.getElementById('quality').selectedIndex;
//   }
//   else {
//      citeinner += "\n|" + document.getElementById('quality').name + "="
//   }
 
   for (var i = 0; i < cites.length - 1; i++) {
      if (cites[i].id != "template") {
         citeinner += "\n|" + cites[i].id + "=" + cites[i].value;
      }
      else if (cites[i].id == "template") {
         citebegin = '{{' + cites[i].value;
      }
   }
 
   var cite = citebegin + citeinner + "\n}}\n";
   insertTags(cite, '', '');
//   insertFilledTemplate(cite);
   document.getElementById('articlediv1').style.display = 'none';
}
 
//function detectIE() {
////  return doXjo.isIE;
//  var ieVersion;
//  try {
//    if (jQuery.browser.msie) {
//      ieVersion = jQuery.browser.version;
//      ieVersion = parseInt(extractSubstring(ieVersion, "", "."));
////      console.debug("!!!!");
//    }
//    else if (jQuery.browser.mozilla && jQuery.browser.version === "11.0") {
//       ieVersion = 11;
//    }
//  } catch (e) {
////    console.debug("----");
//  }
//
//  return ieVersion;
//}
//
//function extractSubstring(value,startstring,endstring, ignoreCase){
//   var valueString;
//   if (ignoreCase) {
//    valueString = value.toLowerCase();
//    startstring = startstring.toLowerCase();
//    endstring = endstring.toLowerCase();
//   } else {
//    valueString = value;
//   }
//   var startIndex = valueString.indexOf(startstring);
//   var endIndex = valueString.indexOf(endstring, startIndex+1);
//   if(startIndex != -1){
//     if(endIndex != null && endIndex > startIndex)
//  	   return value.substring(startIndex + startstring.length,endIndex);
//     else
//  	   return value.substring(startIndex + startstring.length);
//   }
//   else
//     return value;
//}// end function
 
//function insertFilledTemplate(filledTemplate) {
//     jQuery('#wpTextbox1').wikiEditor("setContent", filledTemplate);
//}
 
//hookEvent("load", Articlebutton);
//addOnloadHook(Articlebutton);
//$(document).ready(function(){
//   setTimeout(Articlebutton, 1000);
//});
 
jQuery( '#wpTextbox1' ).on('wikiEditor-toolbar-doneInitialSections', function () {
    Articlebutton();
});