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>

