Benutzer:Complex/lktools.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
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/*<nowiki>
* ACHTUNG: Testversion. Wenn das Script zwischenzeitlich aus dem Monitor krabbelt
* und den heimischen Hund frisst – ich war's nicht.
*/
/**
* Werkzeugkiste
**/
function strlen(str) {
return(str.length);
}
/* WarLK-Ziegel werfen
* Ausgeführt bei: &keepdate=<Datum> in URL
*/
function hook_keep_brick() {
/* Date given by url argument, extract, replace any %20 w/ spaces */
date = decodeURI(location.href.substr(location.href.indexOf("keepdate=")+strlen("keepdate=")));
/* insert our beloved "this was an rfd"-brick */
document.editform.wpTextbox1.value = "{{War Löschkandidat|"+date+"}}\n\n"+document.editform.wpTextbox1.value;
document.editform.wpSummary.value = "+ War Löschkandidat";
document.editform.wpSave.click();
}
/* Löschbestätigung bauen und – falls bestätigt – übergebene Seite + Disk killen
* Ausgeführt bei: action=confirm
*/
function hook_del_confirm() {
var page;
var reason;
/* MediaWiki kennt die Aktion nicht, das muss der Benutzer aber nicht wissen */
document.title = "Löschen bestätigen";
document.getElementById('firstHeading').innerHTML = "Löschen bestätigen";
var elem = document.getElementById('mw_content');
/* Seite extrahieren */
var pos = location.href.indexOf("wiki/") + 5;
var pos2 = location.href.indexOf("?", pos);
page = decodeURI(location.href.substr(pos, pos2-pos));
/* brauchen eine Begründung */
if( (pos=location.href.indexOf("wpReason=", pos)) == -1) {
elem.innerHTML = "Keine Begründung mitgegeben.";
return;
}
pos += strlen("wpReason=");
if( (pos2=location.href.indexOf("&", pos)) == -1)
reason = decodeURI(location.href.substr(pos));
else
reason = decodeURI(location.href.substr(pos, pos2-pos));
/* Falls Parameter nuke gegeben, löschen ausführen, sonst rückfragen */
if( (pos=location.href.indexOf("&nuke")) == -1) {
elem.innerHTML = "Seite <b>" + page + "</b> und ihre Diskussionsseite mit Begründung <br />„" + reason
+ "“<br />löschen?<br />"
+ '<a href="javascript:void(0);" style="margin-left: 10em; color:#00CD66;" onclick="window.close();">[nicht löschen]</a>'
+ ' '
+ '<a href="' + location.href + '&nuke" style="color:#CD3700;" onclick="">[löschen]</a>';
} else {
elem.innerHTML = "Nuke.";
/* nuke 1, nuke 2 change to whatlinkshere */
/* to whatlinkshere */
}
}
/*
* Button-Callbacks
*/
function cb_del(page, reason, section) {
window.open("http://de.wikipedia.org/wiki/" + page + "?action=confirm&wpReason=" + encodeURI(reason), "_blank");
window.location.href = section + "&delete";
}
function cb_keep(page, section) {
/* + warLK() */
window.open("http://de.wikipedia.org/w/index.php?title=" + page + "&action=edit");
window.location.href = section + "&keep";
}
/* Fügt Knöppches auf den LK ein
* Ausgeführt bei: Wikipedia:Löschkandidaten/ in title
*/
function loescheimer() {
var date; /* LK-Datum */
var reason; /* Löschgrund */
var section; /* edit-Link für Section */
var pos, pos2;
var len = strlen("Wikipedia:Löschkandidaten/");
date = document.title.substring(len).replace(/ [–-] .*/, "");
/* sift through level-2/-3-headings */
len = document.getElementsByTagName("h2").length;
var head = null;
for (var i = 0; i < len + document.getElementsByTagName("h3").length; i++) {
/* Isolate the RfDs title */
if(i < len) {
head = document.getElementsByTagName('h2')[i];
} else {
head = document.getElementsByTagName('h3')[i-len];
}
/* Rotlinks und andere Abschnitte überspringen */
if( ((pos=head.innerHTML.indexOf('editsection')) == -1)
|| (head.innerHTML.indexOf('class="new"') != -1) )
continue;
/* Section-Link extrahieren */
pos = head.innerHTML.indexOf('href="') + strlen('href="');
pos2 = head.innerHTML.indexOf('"', pos);
section = head.innerHTML.substr(pos, pos2-pos);
/* Überschrift und Linktitle extrahieren */
pos = head.innerHTML.indexOf('class="mw-headline"');
pos2 = head.innerHTML.indexOf('</span>', pos);
var span = head.innerHTML.substr(pos, pos2-pos);
if( (pos = span.indexOf('title="')) == -1)
continue; /* Kein Link in Überschrift */
pos+= strlen('title="');
pos2 = span.indexOf('"', pos);
/* um welche Seite es geht */
var page = span.substr(pos, pos2-pos);
/* ist schon was damit passiert? */
pos = span.indexOf('</a>', pos2) + strlen('</a>');
var suffix = span.substr(pos).toLowerCase();
/* kein [keep] wenn schon gelöscht im header */
if(suffix.indexOf("gelöscht") == -1) {
head.innerHTML = '<a href="javascript:void(0);" style="color:#00CD66; font-size:small;"'
+ " onclick=\"cb_keep('" + page +"','"+ section +"')\">[keep]</a> "
+ head.innerHTML;
}
/* wenn bleibt oder erledigt: nix weiter. */
if( (suffix.indexOf('bleibt')!=-1) || (suffix.indexOf('erl')!=-1) )
continue;
/* [hist]-Link nur, wenn noch keine gelöscht-Entscheidung */
if(suffix.indexOf("gelöscht") == -1) {
head.innerHTML = '<a href="/w/index.php?title=' + page + '&action=history" style="font-size:small;">'
+ '[hist]</a> ' + head.innerHTML;
}
/* Löschknopp */
reason = "siehe [[Wikipedia:Löschkandidaten/" + date + "/" + page + " (gelöscht)]]";
head.innerHTML = '<a href="javascript:void(0);" style="color:#CD3700; font-size:small;"'
+ " onclick=\"cb_del('" + page +"', '" + reason + "', '"
+ section + "')\">[del]</a> "
+ head.innerHTML;
}
}
/* Löschdiskussion bearbeiten und automagisch Überschrift anpassen
* Ausgeführt bei: &delete || &keep in URL
*/
function hook_edit(del) {
var box = document.editform.wpTextbox1.value;
var pos = box.indexOf("==", 4); /* Ende der Überschrift finden */
if(del == true) {
box = box.substr(0, pos) + " (gelöscht)" + box.substr(pos);
document.editform.wpSummary.value += " gelöscht";
} else {
box = box.substr(0, pos) + " (bleibt)" + box.substr(pos);
document.editform.wpSummary.value += " bleibt";
}
/* Ans Ende springen und Kasterl einfügen */
box = box + "\n{{Kasten| ~~~~}}";
document.editform.wpTextbox1.value = box;
}
/*
* URL auswerten
*/
function seitenweiche() {
var href = location.href;
/* Vorsicht, Reihenfolge wichtig */
if(href.indexOf("action=confirm") != -1)
hook_del_confirm();
else if(href.indexOf("&delete") != -1)
hook_edit(true);
else if(href.indexOf("&keep") != -1)
hook_edit(false);
else if(href.indexOf("&keepdate=") != -1)
hook_keep_brick();
else if(document.title.indexOf("Wikipedia:Löschkandidaten/") != -1)
loescheimer();
}
$(seitenweiche);
/* </nowiki> */