Benutzer:Schlurcher/monobook.js
aus Wikipedia, der freien Enzyklopädie
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen zu sehen: Mozilla/Firefox: Shift-Strg-R, Internet Explorer: Strg-F5, Opera: F5, Safari: ⌘-R, Konqueror: Strg-R.
// ============================================================ // BEGIN addEditAndRevertLinks // (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) // <nowiki> function addEditAndRevertLinks (revlinkshowuser) { 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, 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 } // revertme by Littl, extended by PDD 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(); } } // END addEditAndRevertLinks // ============================================================ // </nowiki>