User:No35612/monobook.js

From Wikipedia

< User:No35612

Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror:: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences.

document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

 // <nowiki>
var editlinkoldversion = true;  // Bearbeiten-Link für ältere Versionen auf Versionshistorie anzeigen
var revertwithreason = true;    // Revert-Link mit Grund-Eingabe auf Versionshistorie anzeigen
var revlinkshowuser = true;     // beim Revertieren über (Rev)-Link letzten Benutzer angeben?

var rvisminor = true; 

 // uri-parameter
 // benutzt in aktion() aus eintragen.js und revertme() aus addEditAndRevertLinks.js
 var subjp      = 'subj';       //Subject
 var textp      = 'txt';        //Für Text-Austausch
 var insp       = 'ins';        //Vor dem Text einfügen
 var addp       = 'add';        //an Text anhängen
 var minorp     = 'minor';      //(k)leine Änderung
 var speichernp = 'submit';  //Auf "Speichern" klicken 
 
 var reloadme   = 'reload';   //merker für reload


function trim(par)
{
  return par; 
}

function getUrlParameter(par)  
{ 
  var value=''; 
  var UrlParameter = window.location.search; 
   
  if(UrlParameter != ""){ 
    var i = UrlParameter.indexOf(par+"="); 
    if(i >= 0){ 
      i = i+par.length+1; 
      var k = UrlParameter.indexOf("&", i); 
      if(k < 0){ 
        k = UrlParameter.length; 
      } 
      value = UrlParameter.substring(i, k); 
    } 
  } 
  return unescape(value); 
}





 function addEditAndRevertLinks (revlinkshowuser) {

   var is_history = (getUrlParameter("action")=='history');
   var is_diff = (getUrlParameter("diff")>'');
   var mainNode = document;
 
   if (is_history) {
     for (var i=0; mainNode = document.body.getElementsByTagName("UL")[i]; i++)
        if (mainNode.id == "pagehistory")
            tagNodes (mainNode, is_history, is_diff, revlinkshowuser);
   }
   else if (is_diff) {
     for (var i=0; mainNode = document.body.getElementsByTagName("TD")[i]; i++)
        if ((mainNode.className == "diff-otitle") || (mainNode.className == "diff-ntitle"))
            tagNodes (mainNode, is_history, is_diff, revlinkshowuser);
   }
 }
 
 // tagNodes (tagging descendant nodes of mainNode)
 function tagNodes (mainNode, is_history, is_diff, revlinkshowuser) {
 
   var Edit = '(edit)';
   var Rv   = '(rev)';
 
   var first= true;
   for (var i=0; aNode = mainNode.getElementsByTagName("A")[i]; i++)
   {
     // if it's a link to an old version but not a diff-link and not already an edit link
     if (editlinkoldversion && (href = aNode.getAttribute("href")) && (href.search(/oldid=/) != -1) 
          && (href.search(/diff=/) == -1) && (href.search(/action=edit/) == -1) )
     {
       if (is_history) {
         // Create Edit Link (new skin has edit links on diffpage so we can skip this)
         var EditNode = document.createElement('a');
         EditNode.setAttribute('href', href + '&action=edit#summary'); 
         var EditTextNode = document.createTextNode(Edit);
         EditNode.appendChild(EditTextNode);
         // Add Edit Link To Old Version Link
         aNode.parentNode.insertBefore( EditNode, aNode.nextSibling );
         // Insert whitespace before Edit Link
         aNode.parentNode.insertBefore( document.createTextNode(' '), aNode.nextSibling );
         // jump over inserted (edit) anchor
         i++;
       }
 
       // Create RV Link
       if (revertwithreason && ((is_history && !first) || (!is_history))) {  
        var rvtimestamp = aNode.innerHTML.replace(/.*vom /,'');
        var rvtsdate = rvtimestamp.replace(/.*, /,'');
        var rvtstime = rvtimestamp.replace(/, .*/,'');
        // Benutzernamen müsste man eigtl. aus dem href nehmen (um UTF8-Namen korrekt zu übernehmen),
        // aber dann brauchen wieder IPs eine Sonderbehandlung. Vielleicht später...
        var rvuser;
        if (is_history)
           rvuser = mainNode.getElementsByTagName("A")[i+1].innerHTML;
        else  // is_diff
           rvuser = mainNode.getElementsByTagName("A")[i+2].innerHTML;
 
        var defaultgrund = 'Revert auf Version vom ' + rvtsdate + ' (' + rvtstime + ')';
        if (revlinkshowuser)
            defaultgrund = 'Revert auf Version von [[Benutzer:' + rvuser + ']] (' + rvtsdate + ', ' + rvtstime + ')';
 
        var Rvnode = document.createElement('a');
        Rvnode.setAttribute('href', 'javascript:revertme("' + encodeURI(href) + '", "' + defaultgrund + '")');     
        var RvTextNode = document.createTextNode(Rv);
        Rvnode.appendChild(RvTextNode);
        aNode.parentNode.insertBefore( Rvnode, aNode.nextSibling );
        aNode.parentNode.insertBefore( document.createTextNode(' '), aNode.nextSibling );
        // jump over inserted (rev) anchor
        i++;
       } // END if2
       first=false;
     } // END if1
   } // END for
 }
 
 function revertme (href, defaultgrund) {
   var detailgrund = prompt(defaultgrund, 'Grund: Unfug bzw. Vandalismus');
   if (detailgrund != null) {
    grund=defaultgrund + '. ' + trim(detailgrund);
    if (detailgrund=='') grund=trim(defaultgrund);
    href=href + "&action=edit&" + speichernp + "=1&" + subjp + "=" + encodeURIComponent(grund);
    if (rvisminor) href = href + "&" + minorp + "=1";
    window.open (href);
    window.focus();
   }
 }



// *** Initialisierung ***
function Init() {     
   if (editlinkoldversion || revertwithreason) {
      addEditAndRevertLinks (revlinkshowuser);
   }
}

aOnloadFunctions[aOnloadFunctions.length] = Init;

// </nowiki>
Navigation
generic heading