Участник:Tachikoma/edittools.js

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

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

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
// Powered by [[User:Tachikoma|СделаноНаКоленке™]]
// Everything is preliminary and is subject to change without notice

// <source lang="javascript">
var TabSwitchTimer=null;
var TabSwitchFixed=[];
var TabSwitchShowAll=false;

var MyEditTools = {
  extraCSS : '\
    #switcher { font-family: sans-serif; }\
    #switcher div { padding: 5px; display: inline-block;}\
    #switcher div.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; border: 1px solid #aaa; border-top: none; top: 1px; padding-top: 2px; margin-right: -3px; }\
    #switcher div u { text-decoration:none; }\
    #editpage-specialchars tr { height: 65px; }\
    #editpage-specialchars table { width: 100%; }\
  ',
  show : function(t) {
    var table=document.getElementById("editpage-specialchars").getElementsByTagName("table")[0];
    var rows=table.getElementsByTagName("tr");
    var sw=document.getElementById("switcher").getElementsByTagName("div");
    for(i=0;i<rows.length;i++) {
      var row_selected=TabSwitchShowAll||(t==i)||TabSwitchFixed[i];
      rows[i].style.display=row_selected?"table-row":"none";
      sw[i].className=row_selected?"selected":"";
    };
  },
  clearTimer : function(){
    if(TabSwitchTimer)window.clearTimeout(TabSwitchTimer); TabSwitchTimer=null;
  },
  init : function() {
    var switcher=document.createElement("div");
    switcher.setAttribute("id","switcher");

    var table=document.getElementById("editpage-specialchars").getElementsByTagName("table")[0];
    var rows=table.getElementsByTagName("tr")
    for(i=0;i<rows.length;i++) {
        function createHoverCallback(i) {
            return function() {
                if(TabSwitchTimer) window.clearTimeout(TabSwitchTimer);
                TabSwitchTimer=window.setTimeout(MyEditTools.show,150,i);
            };
        };
        function createClickCallback(i) {
            return function() {
                TabSwitchFixed[i]=!TabSwitchFixed[i];
            };
        };

	var d=document.createElement("div");
        var td=rows[i].getElementsByTagName("td")[0];
	d.innerHTML=td.innerHTML.replace(/:/,'');
	d.onmouseover=createHoverCallback(i);
        d.onmouseout=MyEditTools.clearTimer;
        d.onclick=createClickCallback(i);
	d.setAttribute("id","page"+i);
	switcher.appendChild(d);
	if(i!=0)rows[i].style.display='none';
        if(i==0)d.className="selected"
    };
    var d=document.createElement("div");
    d.onclick=function() {if(TabSwitchTimer) window.clearTimeout(TabSwitchTimer);TabSwitchShowAll=!TabSwitchShowAll;};
    d.innerText="Show All";
    switcher.appendChild(d);

//    table.parentNode.insertbefore(switcher, table);
    table.appendChild(switcher);
    appendCSS(MyEditTools.extraCSS);
  }
};
MyEditTools.init();

// </source>