Zum Inhalt springen

Benutzer:C-M/addEditAndRevertLinks.js

aus Wikipedia, der freien Enzyklopädie

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
 // ============================================================
 // BEGIN addEditAndRevertLinks
 // (ursprünglich von [[Benutzer:Berlin-Jurist]] so weit ich weiß)
 // Revert-Fkt hinzugefügt + Beschränkung auf Seiten wo es Sinn macht. [[Benutzer:Littl]].
 //
 // verschiedene Fixes von [[Benutzer:PDD]]:
 // - verwirrende Extrabuttons auf den Diff-Seiten (oben in den Tabs) entfernt
 // - ausführlichere Revert-Informationen
 // - bessere Erkennung von zu revertierenden/editierenden Links
 // - optional Benutzer-Link in Revertinfo (über var revlinkshowuser)
 // - Anpassung auf neue MediaWiki-Oberfläche (31.5.2006)
 // - Verhinderung zu langer Editkommentare
 
 // <nowiki>
 
 // Variables that should be defined in your monobook
 if (typeof(editlinkoldversion) == 'undefined')
     var editlinkoldversion = true;
 if (typeof(editlinktxt) == 'undefined')
     var editlinktxt = "edit";
 if (typeof(revertwithreason) == 'undefined')
     var revertwithreason = true;
 if (typeof(revlinktxt) == 'undefined')
     var revlinktxt = "rev";
 if (typeof(revlinkshowuser) == 'undefined')
     var revlinkshowuser = true;
 if (typeof(rvisminor) == 'undefined')
     var rvisminor = true;
 if (typeof(aearldefault) == 'undefined')
     var aearldefault = "Grund: Unfug bzw. Vandalismus";
 if (typeof(aearlhere) == 'undefined')
     var aearlhere = false;
 
 // Hauptfunktion: addEditAndRevertLinks
 function addEditAndRevertLinks() {
 
   // alert (for old monobooks)
   if (minimalVersion(40) < 40) return;
 
   var is_history = (UrlParameters['action']=='history');
   var is_diff = (UrlParameters['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);
   }
   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);
   }
 }
 // END addEditAndRevertLinks
 // ============================================================
 
 // tagNodes (tagging descendant nodes of mainNode)

 function tagNodes (mainNode, is_history, is_diff) {
 
   var Edit = "(" + editlinktxt + ")";
   var Rv   = "(" + revlinktxt + ")";
 
   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 ( (href = aNode.getAttribute("href")) && (href.search(/oldid=/) != -1) 
          && (href.search(/diff=/) == -1) && (href.search(/action=edit/) == -1) )
     {
       // Create Edit link (only on history; new MW has edit links on diffpage so we can skip this)
       if (editlinkoldversion  && is_history) {
         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_diff || (is_history && !first))) {  
        var rvtimestamp = aNode.innerHTML.replace(/.*vom /,'');
        var rvtsdate = rvtimestamp.replace(/.*, /,'');
        var rvtstime = rvtimestamp.replace(/, .*/,'');
        // für ISO 8601 datumsformat: erstmal keine Umformung
        if (rvtsdate == rvtstime) rvtstime = '';
 
        // 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;
        
       	 // kleiner Hack für Username mit '&'
        	rvuser = rvuser.split('&amp;').join('&');

        var Rvnode = document.createElement('a');
        Rvnode.setAttribute('href', 'javascript:revertToRevision(\'' + getoldid(encodeURI(href))+ '\')');    
		 
        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
 }
 // END tagNodes
 // ============================================================
 
 // revertme by Littl, extended by PDD
 function getoldid (href) {
	var oldid = href.replace(/.*(oldid)\=/,'');
	return oldid
 }
 // END revertme
 // ============================================================
 
 addOnloadHook(addEditAndRevertLinks);
 
 // </nowiki>