Benutzer:Mnh/broken.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
/* 
 * Durch Änderungen an mediawiki kaputtgespielter Code. 
 */
/**
 * bei Bild-SLAs SLA-Grund übernehmen oder JetztSVG übernehmen
 */
function img_speedy() {
    var pos, pos2;
    var text;
    var elem;
 
    if(wgCanonicalNamespace != "File")
        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) + 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) + strlen('src="'); 
        pos2 = elem.innerHTML.indexOf('"', pos);

        if(elem.innerHTML.substr(pos, pos2-pos).indexOf("upload.wikimedia.org/wikipedia/commons") == NOT_THERE)
            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>')) == NOT_THERE)
            return;

        pos += strlen('<b>Begründung:</b> ');
    
        /* nach Unterschriftenende suchen */
        if( (pos2=elem.innerHTML.indexOf('(CEST)', pos)) == NOT_THERE)
            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') + strlen('action=delete');
    elem.innerHTML = elem.innerHTML.substr(0, pos) + "&wpReason=" + text + elem.innerHTML.substr(pos);
}
//addOnloadHook(img_speedy);
/**
 * 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)")) == NOT_THERE)
         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);
     }
 }
//addOnloadHook(sanitize_delete_reason);

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) + strlen("</p>");
    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;
}
/**
 * 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 SnR_form() {
    if(wgAction != "edit")
         return;

    /* Formular am oberen Teil einfügen */
    var elem = document.getElementById("contentSub");
    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>'; 
}
addOnloadHook(function() { SnR_form(); });