Benutzer:CF/monobook.js: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Zur Navigation springen Zur Suche springen
CF (Diskussion | Beiträge)
 
CF (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
 
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
    /**
revisionCounter.checkOnlyOnHistory = false;
        Toggles the display of elements on a page
        Author/contact: Austin Che http://openwetware.org/wiki/User:Austin
    */


// indexed array of toggler ids to array of associated toggle operations
addOnloadHook(function()
// each operation is a two element array, the first being the type, the second a class name or array of elements
// operation types are strings like "_reset" or "" for the default toggle operation
var togglers = new Array();   
var allClasses = new Object(); // associative map of class names to page elements
 
function toggler(id)
{
{
     var toBeToggled = togglers[id];
  if(document.getElementById('toc'))
     if (!toBeToggled)
  {
         return;
     var toc = document.getElementById('toc').getElementsByTagName('ul')[0];
 
    var toggleLink = document.getElementById('togglelink');
     // if some element is in list more than once, it will be toggled multiple times
     if ($j("span.showtoc").size()>0)
     for (var i = 0; i < toBeToggled.length; i++)
    {
      if(toc.style.display != 'block')
      {
         changeText(toggleLink, tocHideText);
        toc.style.display = 'block';
      }
     }
     else if ($j("span.hidetoc").size()>0)
     {
     {
        // get array of elements to operate on
      if(toc.style.display != 'none')
        var toggles = toBeToggled[i][1];
      {
        if (typeof(toggles) == "string")
         changeText(toggleLink, tocShowText);
        {
         toc.style.display = 'none';
            if (toggles.charAt(0) == '-')
      }
            {
                // treat as an element ID, not as class
                toggles = document.getElementById(toggles.substring(1));
                if (toggles)
                    toggles = new Array(toggles);
            }
            else
                toggles = allClasses[toggles];
        }
         if (!toggles || !toggles.length)
            continue;
 
         var op = toBeToggled[i][0]; // what the operation will be
 
        switch (op)
        {
            case "_reset":
                for (var j in toggles)
                    toggles[j].style.display = toggles[j]._toggle_original_display;
                break;
            case "_show":
                for (var j in toggles)
                    toggles[j].style.display = '';
                break;
            case "_hide":
                for (var j in toggles)
                    toggles[j].style.display = 'none';
                break;
            case "":
            default:
                // Toggle
                for (var j in toggles)
                    toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
                break;
        }
     }
     }
}
  }
});


function createTogglerLink(toggler, id)
addOnloadHook(function()
{
{
     var toggle = document.createElement("a");
  $j("select[name='Auswahl']").each(function(i)
     toggle.className = 'toggler-link';
  {
    toggle.setAttribute('id', 'toggler' + id);
     this.onchange = function()
    toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
     {
     var child = toggler.firstChild;
      if (this.options[this.options.selectedIndex].value == '%7B%7Bsubst%3AIP-Signaturnachtrag%7C%2B%7C%7C%7D%7D%2B')
    toggler.removeChild(child);
        $j.get('http://www.stargate-wiki.de/w/api.php?action=query&format=json&titles='+encodeURIComponent(wgPageName)+'&prop=revisions&meta=siteinfo|allmessages&ammessages=jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec',
    toggle.appendChild(child);
    function(data)
    toggler.insertBefore(toggle, toggler.firstChild);
    {
}
      var zeit =
        new Date(Date.parse(data.query.pages[wgArticleId].revisions[0].timestamp)+data.query.general.timeoffset*60*1000);
      insertTags("{"+"{"+"subst:"+(data.query.pages[wgArticleId].revisions[0].anon===''?"IP-":"")+"Signaturnachtrag|"+data.query.pages[wgArticleId].revisions[0].user+"|"+(zeit.getUTCHours()<10?"0":"")+zeit.getUTCHours()+":"+(zeit.getUTCMinutes()<10?"0":"")+zeit.getUTCMinutes()+", "+zeit.getUTCDate()+". "+data.query.allmessages[zeit.getUTCMonth()]["*"]+" "+zeit.getUTCFullYear()+" (CE"+(data.query.general.timeoffset==120?"S":"")+"T)|"+wgUserName+"}"+"}", '', '');
     }, 'json');
      else
        insertTags(unescape(this.options[this.options.selectedIndex].value).split('+')[0],unescape(this.options[this.options.selectedIndex].value).split('+')[1],unescape(this.options[this.options.selectedIndex].value).split('+')[2]);
      this.options.selectedIndex=0;
    };
  });
});


function toggleInit()
//Gelöschte Seiten auf Existenz überprüfen:
addOnloadHook(function()
{
{
    var togglerElems = new Array();
  var s=$j(".geloeschteSeite").map(function(){return this.title;}).get().join("|");
    var toggleGroup = new Array();
  if (s != "")
       
     $j.get(wgServer+wgScriptPath+"/api.php?action=query&prop=info&format=json&titles="+encodeURIComponent(s), function(x)
    // make list of all document classes
    var elems = document.getElementsByTagName("*");
    var numelems = elems.length;
     for (var i = 0; i < elems.length; i++)
     {
     {
        var elem = elems[i];
      for (a in x.query.pages)
        if (!elem.className)
         if (x.query.pages[a].missing !== "")
            continue;
 
         elem._toggle_original_display = elem.style.display;
        var togglerID = -1;
        var elemClasses = elem.className.split(' '); // get list of classes
        for (var j = 0; j < elemClasses.length; j++)
         {
         {
            var elemClass = elemClasses[j];
          var s = x.query.pages[a].title
            if (! allClasses[elemClass])
          if (typeof x.query.normalized != "undefined")
                allClasses[elemClass] = new Array();
             for (n in x.query.normalized)
            allClasses[elemClass].push(elem);
              if (x.query.normalized[n].to === s)
 
                 s = x.query.normalized[n].from;
            // all the special classes begin with _toggle
          $j('.geloeschteSeite[title="'+s+'"]').css("color", "green");
            if (elemClass.substring(0, 7) != "_toggle")
                continue;
 
             if (elemClass == "_togglegroup")
                toggleGroup = new Array();
            else if (elemClass == "_toggle")
                toggleGroup.push(elem);
            else if (elemClass.substring(0, 12) == "_toggle_init")
            {
                // set initial value for display (ignore the original CSS set value)
                // understands _toggle_initshow and _toggle_inithide
                var disp = elemClass.substring(12);
                if (disp == "show")
                    elem.style.display = '';
                else if (disp == "hide")
                    elem.style.display = 'none';
                 elem._toggle_original_display = disp;
            }
            else if (elemClass.substring(0, 8) == "_toggler")
            {
                if (togglerID == -1)
                {
                    togglerID = togglers.length;
                    togglers[togglerID] = new Array();
                    togglerElems[togglerID] = elem;
                }
 
                // all classes are of form _toggler_op-CLASS
                // figure out what class we're toggling
                // if none is specified, then we use the current toggle group
                var toBeToggled;
                var hyphen = elemClass.indexOf('-');
                if (hyphen != -1)
                    toBeToggled = elemClass.substring(hyphen+1);
                else
                {
                    toBeToggled = toggleGroup;
                    hyphen = elemClass.length;
                }
 
                var op = elemClass.substring(8, hyphen);
                togglers[togglerID].push(new Array(op, toBeToggled));
            }
         }
         }
     }
     }, "json");
 
});
    // add javascript links to all toggler elements
    for (var i = 0; i < togglerElems.length; i++)
        createTogglerLink(togglerElems[i], i);
}
 
addOnloadHook(toggleInit);
 
function unToggle()
{   
  var path=window.location.href;
  var parts=path.split("#");
  if(parts.length > 1)
  {
      path=parts[parts.length-1];
      parts=path.split(".23");
     
      var untogglerGroup = new Array();
      var untogglerClass = new Array();
         
      // make list of all document classes
      var elems = document.getElementsByTagName("*");
      var numelems = elems.length;
      for (var c=0; c < parts.length; c++)
      {
        for (var i = 0; i < elems.length; i++)
        {
            var elem = elems[i];
            if (!elem.className)
                continue;
   
            var elemClasses = elem.className.split(' '); // get list of classes
           
            for (var j = 0; j < elemClasses.length; j++)
            {
              var elemClass=elemClasses[j];
              if (elemClass != parts[c])
                  continue; 
              else
              {
                  untogglerGroup.push(elem);
                  untogglerClass.push(elemClass);
              }
            }
        }
      }
 
      // add javascript links to all toggler elements
      for (var i = 0; i < untogglerGroup.length; i++)
      {
          untogglerGroup[i].style.display = '';
      }
  }
}

Aktuelle Version vom 30. September 2010, 00:27 Uhr

revisionCounter.checkOnlyOnHistory = false;

addOnloadHook(function()
{
  if(document.getElementById('toc'))
  {
    var toc = document.getElementById('toc').getElementsByTagName('ul')[0];
    var toggleLink = document.getElementById('togglelink');
    if ($j("span.showtoc").size()>0)
    {
      if(toc.style.display != 'block')
      {
        changeText(toggleLink, tocHideText);
        toc.style.display = 'block';
      }
    }
    else if ($j("span.hidetoc").size()>0)
    {
      if(toc.style.display != 'none')
      {
        changeText(toggleLink, tocShowText);
        toc.style.display = 'none';
      }
    }
  }
});

addOnloadHook(function()
{
  $j("select[name='Auswahl']").each(function(i)
  {
    this.onchange = function()
    {
      if (this.options[this.options.selectedIndex].value == '%7B%7Bsubst%3AIP-Signaturnachtrag%7C%2B%7C%7C%7D%7D%2B')
        $j.get('http://www.stargate-wiki.de/w/api.php?action=query&format=json&titles='+encodeURIComponent(wgPageName)+'&prop=revisions&meta=siteinfo|allmessages&ammessages=jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec',
    function(data)
    {
      var zeit =
        new Date(Date.parse(data.query.pages[wgArticleId].revisions[0].timestamp)+data.query.general.timeoffset*60*1000);
      insertTags("{"+"{"+"subst:"+(data.query.pages[wgArticleId].revisions[0].anon===''?"IP-":"")+"Signaturnachtrag|"+data.query.pages[wgArticleId].revisions[0].user+"|"+(zeit.getUTCHours()<10?"0":"")+zeit.getUTCHours()+":"+(zeit.getUTCMinutes()<10?"0":"")+zeit.getUTCMinutes()+", "+zeit.getUTCDate()+". "+data.query.allmessages[zeit.getUTCMonth()]["*"]+" "+zeit.getUTCFullYear()+" (CE"+(data.query.general.timeoffset==120?"S":"")+"T)|"+wgUserName+"}"+"}", '', '');
    }, 'json');
      else
        insertTags(unescape(this.options[this.options.selectedIndex].value).split('+')[0],unescape(this.options[this.options.selectedIndex].value).split('+')[1],unescape(this.options[this.options.selectedIndex].value).split('+')[2]);
      this.options.selectedIndex=0;
    };
  });
});

//Gelöschte Seiten auf Existenz überprüfen:
addOnloadHook(function()
{
  var s=$j(".geloeschteSeite").map(function(){return this.title;}).get().join("|");
  if (s != "")
    $j.get(wgServer+wgScriptPath+"/api.php?action=query&prop=info&format=json&titles="+encodeURIComponent(s), function(x)
    {
      for (a in x.query.pages)
        if (x.query.pages[a].missing !== "")
        {
          var s = x.query.pages[a].title
          if (typeof x.query.normalized != "undefined")
            for (n in x.query.normalized)
              if (x.query.normalized[n].to === s)
                s = x.query.normalized[n].from;
          $j('.geloeschteSeite[title="'+s+'"]').css("color", "green");
        }
    }, "json");
});