Benutzer:Complex/mnh-modern.js
Erscheinungsbild
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
// <nowiki>
/**
* prefixindex-Tab auf Benutzerseiten
*/
function tab_prefix() {
var pos, pos2;
var user;
var page = document.getElementById('firstHeading').innerHTML;
if( (pos=page.toLowerCase().indexOf("benutzer")) == -1)
if( (pos=page.toLowerCase().indexOf("user")) == -1)
return;
/* Benutzernamen extrahieren */
pos = page.indexOf(":", pos) + 1;
if( (pos2 = page.indexOf("/", pos)) == -1)
user = page.substr(pos) + '/';
else
user = page.substr(pos, pos2-pos+1);
var elem = document.getElementById('p-cactions');
pos = elem.innerHTML.indexOf('</ul>');
elem.innerHTML = elem.innerHTML.substr(0, pos) + '<li id="ca-prefix"><a href="/wiki/Special:Prefixindex/Benutzer:'
+ user + '">Unterseiten</a></li>' + elem.innerHTML.substr(pos);
}
$(tab_prefix);
/**
* importhelfer
*/
function impy () {
if( (location.href.indexOf("Spezial:Import") == -1)
|| (location.href.indexOf("action=submit") == -1) )
return;
var elem = document.getElementById('mw_contentholder');
var form = elem.getElementsByTagName("form")[0];
form.submit();
}
//addOnloadHook(impy);
/**
* bei Bild-SLAs SLA-Grund übernehmen oder JetztSVG übernehmen
*/
function img_speedy() {
var pos, pos2;
var text;
var elem;
if(location.href.indexOf('Bild:') == -1)
return;
/* falls SVG da ist, neuen Namen rausprokeln, Rest ignorieren */
if( (elem=document.getElementById('Vorlage_JetztSVG')) != null) {
pos = elem.innerHTML.indexOf("</center>");
pos = elem.innerHTML.indexOf('title="', pos) + 7; /* = strlen('title="'); */
pos2 = elem.innerHTML.indexOf('"', pos);
text = elem.innerHTML.substr(pos, pos2-pos);
/* Link variieren, falls lokal => Bild:, sonst commons:Image:
* feststellbar an der URL des thumbnails
*/
pos = elem.innerHTML.indexOf('src="', pos2) + 5; /* = strlen('src="'); */
pos2 = elem.innerHTML.indexOf('"', pos);
if(elem.innerHTML.substr(pos, pos2-pos).indexOf("upload.wikimedia.org/wikipedia/commons") == -1) {
text = "Ersetzt durch SVG: [[Bild:" + text + "]]";
} else {
text = "Ersetzt durch SVG: [[commons:Image:" + text + "|Bild:" + text + "]]";
}
} else {
elem = document.getElementById('mw_contentholder');
/* nach SLA-Marker-Begründung suchen */
if( (pos=elem.innerHTML.indexOf('<b>Begründung:</b>')) == -1)
return;
pos += 19; /* = strlen('<b>Begründung:</b> ') */
/* nach Unterschriftenende suchen */
if( (pos2=elem.innerHTML.indexOf('(CEST)', pos)) == -1)
pos2 = elem.innerHTML.indexOf('(CET)', pos);
if(pos2 == -1)
return;
text = elem.innerHTML.substr(pos, pos2-pos);
/* HTML raus, Grund rein */
text = "SLA: " + text.replace(/<[^>]*>/g, '');
}
elem = document.getElementById('ca-delete');
pos = elem.innerHTML.indexOf('action=delete') + 13; /* = strlen('action=delete') */
elem.innerHTML = elem.innerHTML.substr(0, pos) + "&wpReason=" + text + elem.innerHTML.substr(pos);
}
$(img_speedy);
/**
* ui_cleanup: was nicht gebraucht wird: Raus.
*/
function clean_movelog() {
var elem = document.getElementById('mw_contentholder');
/* alle <li>s umbauen */
for (var i = 0; i < elem.getElementsByTagName("li").length; i++) {
var lelem = elem.getElementsByTagName('li')[i];
/* brauch ich Diskussion | … | Sperren in dem Log? Ne. Nur Beiträge lassen, Rest find ich bei Bedarf auch so. Raus. */
var pos = lelem.innerHTML.indexOf("(<a href");
var text = lelem.innerHTML.substr(0, pos);
pos = lelem.innerHTML.indexOf('<a href="/wiki/Spezial:Beitr%C3%A4ge', pos);
text+= "· " + lelem.innerHTML.substr(pos);
lelem.innerHTML = text;
pos = lelem.innerHTML.indexOf('Beiträge</a>'); /* = strlen("Beiträge</a>") */
text = lelem.innerHTML.substr(0, pos) + "b</a>: ";
pos = lelem.innerHTML.indexOf("„", pos) + 1;
text+= lelem.innerHTML.substr(pos);
lelem.innerHTML = text;
/* hat „[[foo]]“ nach „[[Bar]]“ verschoben geht kürzer */
pos = lelem.innerHTML.indexOf("“");
text = lelem.innerHTML.substr(0, pos) + " → ";
pos = lelem.innerHTML.indexOf("„", pos) + 1;
text+= lelem.innerHTML.substr(pos);
lelem.innerHTML = text;
pos = lelem.innerHTML.indexOf("“");
text = lelem.innerHTML.substr(0, pos);
/* Kein Kommentar da? Bis Zurückschieben springen. Zurückschieben nicht da? Bis </li> springen. */
if( (pos = lelem.innerHTML.indexOf("<span", pos)) == -1)
pos = lelem.innerHTML.indexOf('(<a href="/w/index.php?title=Spezial:Verschieben');
if(pos == -1)
pos = lelem.innerHTML.indexOf('</li>');
text+= " " + lelem.innerHTML.substr(pos);
lelem.innerHTML = text;
}
}
function clean_contribs() {
/* Junge, ist das Suchformular hässlich */
var elem = document.getElementById('mw_contentholder');
/* Umschalten zwischen „Nur Neulinge und Benutzer, den ich gewählt hab? Brauch ich nich,
* per span unsichtbar machen
*/
var pos = elem.innerHTML.indexOf('</legend>') + 9; /* = strlen("</legend>") */
elem.innerHTML = elem.innerHTML.substr(0, pos) + '<span style="display:none;">' + elem.innerHTML.substr(pos);
pos = elem.innerHTML.indexOf('<input name="target"', pos);
pos = elem.innerHTML.indexOf('>', pos) + 1;
elem.innerHTML = elem.innerHTML.substr(0, pos) + '</span>' + elem.innerHTML.substr(pos);
pos = elem.innerHTML.indexOf('<p>', pos);
elem.innerHTML = elem.innerHTML.substr(0, pos) + " " + elem.innerHTML.substr(pos+3);
pos = elem.innerHTML.indexOf('</p>', pos);
elem.innerHTML = elem.innerHTML.substr(0, pos) + elem.innerHTML.substr(pos+4);
}
function clean_history() {
var lelem = document.getElementsByTagName('li')
/* remove undo */
for(var i=0; i<lelem.length; i++) {
var html = lelem[i].innerHTML;
/* undo button alone */
var pos, pos2, has_undo=false;
if( (pos=html.indexOf(" (<span class=\"mw-history-undo\">")) != -1) {
pos2 = html.indexOf("</a></span>)", pos) + 12;
has_undo = true;
} else if( (pos=html.indexOf(" | <span class=\"mw-history-undo\">")) != -1) {
pos2 = html.indexOf("</a></span>)", pos) + 11;
has_undo = true;
}
if(has_undo) {
lelem[i].innerHTML = html.substr(0, pos) + html.substr(pos2);
}
}
}
function clean_delform() {
/* Liste mit Gründen – nach dem Löschen immer noch action=delete, dann drop==null */
var drop = document.getElementById('wpDeleteReasonList');
if(drop == null)
return;
/* Gequassel raus */
var elem = document.getElementById('mw_contentholder');
var pos = elem.innerHTML.indexOf("<strong>Achtung");
var text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf("</p>", pos) + 4;
text+= elem.innerHTML.substr(pos);
elem.innerHTML = text;
drop.innerHTML = '<option value="other">Anderer Grund</option><optgroup label="Richtlinienkram"><option value="[[WP:ART|Kein Artikel]]">[[WP:ART|Kein Artikel]]</option><option value="[[WP:WWNI|Kein enzyklopädischer Inhalt]]">[[WP:WWNI|Kein enzyklopädischer Inhalt]]</option><option value="[[WP:RK|Fehlende Relevanz bzw. Darstellung selbiger]]">[[WP:RK|Fehlende Relevanz bzw. Darstellung selbiger]]</option><option value="Missachtung der [[WP:BNR|Konventionen]] für den Benutzernamensraum">Missachtung der [[WP:BNR|Konventionen]] für den Benutzernamensraum</option></optgroup><optgroup label="Putzen"><option value="Unnötiger [[WP:WL|Redirect]]">Unnötiger [[WP:WL|Redirect]]</option><option value="Kein Redirect für [[WP:WL#Falschschreibungen|Falschschreibungen]]">Kein Redirect für [[WP:WL#Falschschreibungen|Falschschreibungen]]</option><option value="Auf Wunsch">Auf Wunsch</option></optgroup>';
}
function clean_protform() {
/* Gequassel raus */
var elem = document.getElementById('mw_contentholder');
var pos = elem.innerHTML.indexOf("<p>Hier kannst");
var text = elem.innerHTML.substr(0, pos);
/* zum richtigen </p> vorwandern */
pos = elem.innerHTML.indexOf("gilt der Seitenschutz unbeschränkt.", pos);
pos = elem.innerHTML.indexOf("</p>", pos) + 4;
text+= elem.innerHTML.substr(pos);
elem.innerHTML = text;
/* Kaskadierende blablablabla -> kurz */
pos = elem.innerHTML.indexOf(" – alle in diese Seite");
text = elem.innerHTML.substr(0,pos);
pos = elem.innerHTML.indexOf("</label>", pos);
text+= elem.innerHTML.substr(pos);
elem.innerHTML = text;
/* [x] Beobachten raus, noch nie da gebraucht */
pos = elem.innerHTML.indexOf("<input name=\"mwProtectWatch\"");
text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf("</td>", pos);
text+= elem.innerHTML.substr(pos);
elem.innerHTML = text;
}
function clean_watchlist() {
var elem = document.getElementById('contentSub');
elem.innerHTML = '<a href="/wiki/Spezial:Beobachtungsliste/edit" title="Spezial:Beobachtungsliste/edit">[edit]</a>';
elem.setAttribute("style", "float:right;");
elem = document.getElementById('mw_contentholder');
var pos = elem.innerHTML.indexOf("beobachtete Seiten") + 18; /* = strlen("beobachtete Seiten") */
var text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf('</div>', pos) + 6;
text+= " – Letzte " + elem.innerHTML.substr(pos);
elem.innerHTML = text;
pos = elem.innerHTML.indexOf('(Stand:');
text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf("<h4>", pos);
text+= "<hr />" + elem.innerHTML.substr(pos);
elem.innerHTML = text;
}
function clean_diff() {
var elem = document.getElementById('contentSub');
/* „(Unterschied zwischen Versionen)“ Nein, wirklich? Wäre mir fast entgangen. Raus. */
var pos = elem.innerHTML.indexOf("(Unterschied");
var text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf(")", pos);
text+= elem.innerHTML.substr(pos + 1);
elem.innerHTML = text;
}
function clean_speedycat() {
/* Endlosgeschwafel raus, ich will nicht scrollen */
var elem = document.getElementById('mw_contentholder');
var pos = elem.innerHTML.indexOf('<div class="wp_intro">');
var text = elem.innerHTML.substr(0, pos);
pos = elem.innerHTML.indexOf('entfernt.', pos);
pos = elem.innerHTML.indexOf('</div>', pos) + 6;
text = elem.innerHTML.substr(pos);
elem.innerHTML = text;
/* Nich den Mülleimer wegschmeißen... */
document.getElementById('ca-delete').setAttribute("style", "display:none");
}
function ui_cleanup() {
var href = location.href;
if(href.indexOf("action=history") != -1)
clean_history();
if( (href.indexOf("action=delete")!=-1) && (href.indexOf("Bild:")==-1) )
clean_delform();
if(href.indexOf("action=protect") != -1)
clean_protform();
if( (href.indexOf("Spezial:Beobachtungsliste")!=-1)
&& (href.indexOf("edit") == -1) )
clean_watchlist();
if(href.indexOf("diff=") != -1)
clean_diff();
if(href.match(/Spezial:Beitr.*ge\//) || (href.indexOf("contribs=user") != -1))
clean_contribs();
if(href.indexOf("Kategorie:Wikipedia:Schnelll") != -1)
clean_speedycat();
if((href.indexOf("Spezial:Logbuch") != -1) && (href.indexOf("move") != -1))
clean_movelog();
}
//addOnloadHook(ui_cleanup);
/**
* sanitize_delete_reason: Falls vorhanden, Löschtext nach erster Sig abschneiden.
*/
function sanitize_delete_reason() {
var reason;
var pos;
if(!location.href.match(/action=delete/))
return;
if( (reason=document.getElementById('wpReason')) == null)
return;
/* SLAs */
if( (pos=reason.value.indexOf("(CEST)")) == -1)
pos = reason.value.indexOf("(CET)");
/* Redirects anders behandeln */
var prefix = "";
var rpos = reason.value.toLowerCase().indexOf("#redirect");
if(rpos != -1) {
/* Link des Redirects extrahieren, normale Begründung abschneiden */
prefix = reason.value.substr(0, reason.value.indexOf("]]", rpos));
reason.value = reason.value.substr(0, rpos);
rpos = prefix.lastIndexOf("[[");
prefix = "Unnötige Weiterleitung nach " + prefix.substr(rpos) +"]] ";
}
/* kein SLA? Nix tun, außer es ist ein Redir. Sonst kürzen. */
if(pos == -1) {
if(prefix.length > 0)
reason.value = prefix;
} else {
/* HTML-Tags raus, gern in sigs verwendet und im Log unnütz */
reason.value = reason.value.replace(/<[^>]*>/g, '');
if(prefix.length + pos > 255) {
pos = 255 - prefix.length;
}
reason.value = prefix + reason.value.substr(0, pos);
}
}
$(function() { sanitize_delete_reason(); });
/**
* SnR – Search'n'Replace mit regulären Ausdrücken. Fügt zusätzliche Boxen im Editmodus ein
*/
function SnR () {
var haystack = document.getElementById("wpTextbox1");
var needle = document.getElementById("mnh_snr_s").value;
var replace = document.getElementById("mnh_snr_r").value;
var txt = haystack.value.replace(new RegExp(""+needle, "g"), replace);
haystack.value = txt;
}
function killDates() {
var haystack = document.getElementById("wpTextbox1");
haystack.value = haystack.value.replace(/\[\[([0-9]{3,4})\]\]/g,"$1");
haystack.value = haystack.value.replace(/\[\[([0-9]{1,2}\. (Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))\]\]/g, "$1");
document.getElementById("wpSummary").value+= "Daten gemäß [[WP:Verlinken#Daten verlinken]] entlinkt";
}
function SnR_form() {
if(!location.href.match(/action=edit/))
return;
var elem = document.getElementById("contentSub");
// create form element
elem.innerHTML+= '<form><input type="text" name="search" id="mnh_snr_s" /><input type="text" name="replace" id="mnh_snr_r" tabindex="0" /><input type="button" value="S+R" onClick="SnR()" /><input type="button" value="Kill Dates" onClick="killDates()" style="float:right" /></form>';
}
$(function() { SnR_form(); });
/** TOC-Filter
* Entfernt auf LK-Seiten erledigte Diskussionen aus dem Inhaltsverzeichnis
**/
/* Benutzeroptionen */
var txt_show = "[alle zeigen]";/* Defaulttext für TOC-Button, falls gefiltert */
var txt_hide = "[filtern]"; /* Defaulttext sonst */
var filter_by_default = true; /* Standardansicht gefiltert? */
/* Ende der Benutzeroptionen */
var nfiltered = 0; /* wie viele werden auf der Seite gefiltert? */
/* Wechselt zwischen voller und gefilterter TOC */
function togglefilter() {
var display;
var link = document.anchors.toc_toggler.firstChild;
/* TOC normal oder gefiltert? */
if (link.nodeValue == txt_show) {
display = "";
link.nodeValue = txt_hide;
} else {
display = "none";
link.nodeValue = txt_show;
}
/* Sichtbarkeit der Elemente ändern */
for(var i=0; i<nfiltered; i++)
document.getElementById("invisible_toc"+i).style.display= display;
return false;
}
function filtertoc() {
/* nur auf LK-Seiten ausführen */
var pfx = "Wikipedia:Löschkandidaten/";
var len = pfx.length;
if((document.title.length < len) || (document.title.substring(0, len).indexOf(pfx) != 0))
return;
/* Link zum Umschalten normal/gefiltert in die TOC einfügen */
toc_head = document.getElementsByTagName('h2')[0];
link = document.createElement("a");
link.href="javascript:void(0);";
link.onclick = togglefilter;
link.name = "toc_toggler";
link.setAttribute("style", "float:right;");
if(filter_by_default)
link.appendChild(document.createTextNode(txt_show));
else
link.appendChild(document.createTextNode(txt_hide));
toc_head.insertBefore(link, toc_head.firstChild.nextSibling);
/* TOC-Elemente nach üblichen Zusätzen durchgehen und gefundene Elemente
* mit ID ausstatten
*/
for (var i = 0; i < document.getElementsByTagName("li").length; i++) {
var lelem = document.getElementsByTagName('li')[i];
/* nichts außerhalb der TOC */
var class = lelem.getAttribute("class");
if(!class || !class.match(/toclevel/)) {
continue;
}
var toctxt = lelem.getElementsByTagName('span')[1].firstChild.nodeValue;
/* abgearbeitet? */
if(toctxt.match(/gelöscht/i)
|| toctxt.match(/\([^\)]*erl/i)
|| toctxt.match(/\([^\)]*bleib/i)
|| toctxt.match(/\(.*redir/i)
|| toctxt.match(/URV/)
|| toctxt.match(/zurück(gezogen|genommen)/i)
|| toctxt.match(/:LAE/)
|| toctxt.match(/\([^\)]*QS[^\)]*\)/)
|| toctxt.match(/\([^\)]*SLA.*\)/i)
|| toctxt.match(/\([^\)]*LAE.*\)/)
|| toctxt.match(/\([^\)]*LA entfernt[^\)]*\)/) ) {
/* Ja, ID zuweisen und ausblenden, falls standardmäßig gefiltert */
lelem.id = "invisible_toc" + nfiltered;
if(filter_by_default)
lelem.style.display = "none";
nfiltered += 1;
}
}
}
$(function() { filtertoc(); });
/** Ende des Filters **/
/* Knopfbeschriftungen */
var portletLabels = {
'ca-talk': "Disk",
'ca-edit': "Edit",
'ca-viewsource': "Quelltext",
'ca-history': "Wer war das?",
'ca-protect': "Schützen",
'ca-unprotect': "Freigeben",
'ca-delete': "Löschen",
'ca-undelete': "Gelöschtes",
'ca-move': "Schubsen",
'ca-watch': "Merken",
'ca-unwatch': "Vergessen",
'ca-nstab-user' : "Seite",
'pt-mytalk': "Disk",
'pt-watchlist': "Beo",
'pt-preferences': "Conf",
'pt-mycontris': "Contribs",
'pt-logout': "Logout",
't-permalink': "Perma",
't-contributions': "Beiträge",
't-blockip': "Sperren",
't-log': "Logs",
't-whatlinkshere': "Links hierhin"
};
function labelItems(labels) {
for (var id in labels) {
var el = document.getElementById(id);
if (!el) continue;
var a = el.getElementsByTagName("a")[0];
if (!a) continue;
a.textContent = labels[id];
}
}
$(function() { labelItems(portletLabels); });
/**
Imports a user javascript page from any wikipedia project into the actual document.
@version 0.1
@date 2007/03/22
@author: based on function importPage from [[de:User:PDD]]s monobook.js, extended by [[de:User:Revvar]]
@param page Name of the user page without the "user:" prefix and the ".js" appendix
@param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
@return "true" on success, "false" otherwise
*/
function importJavascriptL(page, lang)
{
try {
/* check the parameters and set defaults */
if(!page) throw("importJavascriptL: Missing parameter page.");
if(!lang) lang = wgContentLanguage;
/* create import url */
var import_url = 'http://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
'.js&action=raw&ctype=text/javascript&smaxage=0';
/* import page */
var Head = document.getElementsByTagName('head').item(0);
var Script = document.createElement('script');
Script.setAttribute('type', 'text/javascript');
Script.setAttribute('src', import_url);
Script.setAttribute('charset', 'utf-8');
Head.appendChild(Script);
return true;
} catch(e) {
alert(e.message);
return false;
}
}
/** Jump to TOC: Fügt an fester Position einen Link ein, der einen direkten Sprung zum Inhaltsverzeichnis erlaubt **/
function jumptotoc() {
var link = null;
var div = null;
var toc = null;
if(! (toc=document.getElementById("toctitle")))
return;
div = document.createElement("div");
div.setAttribute("style", "position:fixed; bottom:1px; left:1px;");
link = document.createElement("a");
link.setAttribute("href", "#toc");
link.setAttribute("style", "font-size:x-large; border: 1px solid gray;");
link.appendChild( document.createTextNode(" ↑ "));
div.appendChild(link);
toc.appendChild(div);
}
$(function() { jumptotoc(); });
importJavascriptL('Complex/revlinks','de');
//importJavascriptL('Complex/lktools','de');
// </nowiki>