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>