Benutzer:Mnh/ui.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
/**
 * ui_cleanup: was nicht gebraucht wird: Raus.
 */
var txt_review;           /* Text des Sichten-Knopfes in diffs */
var txt_flagged1;         /* Text für gesichtete Version       */

/* Falls nicht extern definiert, default setzen */
if( (typeof(txt_review)=='undefined') || (strlen(txt_review)==0) )
   txt_review = "☒";
if( (typeof(txt_flagged1)=='undefined') || (strlen(txt_flagged1)==0) )
   txt_flagged1 = "☑";

/* Callback für review-button*/
function cb_review() {
    var tok = api_token(wgPageName, "edit");
    api_post("revid=" + wgCurRevisionId + "&token=" + tok, "review");

    jsMsg(wgTitle + " als gesichtet markiert.");
    setTimeout("window.location.reload();", 150);
}

/* Spezial:Log/move entrümpeln */
function clean_movelog() {
    var elem = document.getElementById('mw_contentholder');
    var pos, pos2, pos3;
    var user;

    /* alle <li>s umbauen */
    for (var i = 0; i < elem.getElementsByTagName("li").length; i++) {
        var lelem = elem.getElementsByTagName('li')[i];
        
        /* Link Benutzer auf Spezial:Beiträge/Benutzer umbiegen */
        pos  = lelem.innerHTML.indexOf('<a href="/') + strlen('<a href="/');
  
        /* Benutzer extrahieren */
        pos3 = lelem.innerHTML.indexOf('</a>', pos);
        pos2 = lelem.innerHTML.lastIndexOf('>', pos3) + 1;
        user = lelem.innerHTML.substr(pos2, pos3-pos2);

        /* href ändern */
        pos2 = lelem.innerHTML.indexOf('"', pos);
        lelem.innerHTML = lelem.innerHTML.substr(0,pos) + 'wiki/Spezial:Beiträge/' + user 
                        + lelem.innerHTML.substr(pos2);

        /* (Disk | Beiträge | Sperren) raus, find ich bei Bedarf auch anders */
        pos  = lelem.innerHTML.indexOf('<span class="mw-usertoollinks">', pos);
        pos2 = lelem.innerHTML.indexOf('</span>', pos);
        lelem.innerHTML = lelem.innerHTML.substr(0, pos) + lelem.innerHTML.substr(pos2);
    }
}

/* Spezial:Beiträge entrümpeln */
function clean_contribs() {
    var pos, pos2, text;
    var form;

    /* 
     * Suchformular 
     */
    if ( !(form=document.getElementsByTagName('form')[0]) ) {
        jsMsg("No form found.");
        return;
    }
        
    /* Umschalten zwischen Benutzern per span unsichtbar machen */
    pos  = form.innerHTML.indexOf('</legend>') + strlen('</legend>');
    text = form.innerHTML.substr(0, pos) + '<span style="display:none;">';
    
    pos2 = form.innerHTML.indexOf('name="target"', pos);
    pos2 = form.innerHTML.indexOf('>', pos2) + 1;
    text+= form.innerHTML.substr(pos, pos2-pos) + '</span>';
    pos  = pos2; 

    /* Namensraumwahl drinlassen */
    pos2 = form.innerHTML.indexOf('</select></span>', pos) + strlen('</select></span>');
    text+= form.innerHTML.substr(pos, pos2-pos);
    pos  = pos2;

    /* Markierungsfilter ausblenden und lästige <p>s loswerden */
    pos = form.innerHTML.indexOf('<span ', pos);
    text+= '<input name="tagfilter" value="" style="display:none;" />&nbsp;&nbsp;&nbsp;';

    /* Rest mitnehmen, aber lästige <p></p>s rauslassen. */
    pos2 = form.innerHTML.indexOf('</select></span>', pos) + strlen('</select></span>');
    text+= form.innerHTML.substr(pos, pos2-pos) + '<input type="submit" value="Suchen" /></fieldset>';

    /* Commit */
    form.innerHTML = text;
}

/* Versionsgeschichte aufhübschen */
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\">")) != NOT_THERE) {
            pos2 = html.indexOf("</a></span>)", pos) + 12;
            has_undo = true;
        } else if( (pos=html.indexOf(" | <span class=\"mw-history-undo\">")) != NOT_THERE) {
            pos2 = html.indexOf("</a></span>)", pos) + 11;
            has_undo = true;           
        }
        if(has_undo)
            lelem[i].innerHTML = html.substr(0, pos) + html.substr(pos2);
    }
}


/* Beobachtungsliste kürzen */
function clean_watchlist() {
return;
    var elem, pos, pos2, nwatched, timestamp;

    /* Legende raus, aber vorher Anzahl der beobachteten Seiten und Stand sichern */
    elem = document.getElementById('mw_contentholder');
    
    pos  = elem.innerHTML.indexOf("</legend>") + strlen("</legend>");

    pos2 = elem.innerHTML.indexOf("beobachtete Seiten", pos);
    nwatched = elem.innerHTML.substr(pos, pos2-pos); 

    pos  = elem.innerHTML.indexOf("(Stand:", pos2) + strlen("(Stand:");
    pos2 = elem.innerHTML.indexOf(" Uhr", pos);
    timestamp = elem.innerHTML.substr(pos, pos2-pos);

    pos  = elem.innerHTML.indexOf("<h4>", pos2);
    elem.innerHTML = '<div style="float:right"><a href="/wiki/Spezial:Beobachtungsliste/edit" title="Spezial:Beobachtungsliste/edit">[edit]</a></div>'
                   + '<span style="font-weight:bold; font-size:large;">'
                   + "Stand: " + timestamp + " – " + nwatched + " beobachtete Seiten</span><hr />" 
                   + elem.innerHTML.substr(pos);

    for (var i = 0; i < document.getElementsByTagName('li').length; i++) {  
        var lelem = document.getElementsByTagName('li')[i];

        /* wer braucht eigentlich [zurücksetzen] in der Beo? Blind-Reverts ftw?*/
        if( (pos=lelem.innerHTML.indexOf('<span class="mw-rollback-link">')) != NOT_THERE)
            lelem.innerHTML = lelem.innerHTML.substr(0, pos);
    }    
}

/* diffs umpuzzeln */
function clean_diff() {
    document.getElementById('contentSub').innerHTML = "&nbsp;";
    
    /* [Entwurfsversion] / [gesichtete Version] vereinfachen */
    var left, right; 
    var pos, pos2;
    
    var div = document.getElementById('mw_contentholder');
    if( (pos=div.innerHTML.indexOf('flaggedrevs-color-')) == NOT_THERE) 
        return;
 
    pos  += strlen('flaggedrevs-color-');
    left  = div.innerHTML.substr(pos, 1);
    pos   = div.innerHTML.indexOf('flaggedrevs-color-', pos) + strlen('flaggedrevs-color-');
    right = div.innerHTML.substr(pos, 1);
                 
    /* Geraffel raus */
    pos  = div.innerHTML.indexOf('<div class="fr-diff-to-stable"');
    pos2 = div.innerHTML.indexOf('</table>') + strlen('</table>');
    div.innerHTML = div.innerHTML.substr(0,pos) + div.innerHTML.substr(pos2);

    /* 1 = gesichtet, 0 = entwurf */
    if(left == "1") {
        div = document.getElementById('mw-diff-otitle1');
        div.innerHTML =  txt_flagged1 + div.innerHTML;
    }
    if(right == "1") {
        div = document.getElementById('mw-diff-ntitle1');
        div.innerHTML =  txt_flagged1 + div.innerHTML;
    }

    /* falls links gesichtet und rechts nicht, Sichtknopf anbieten */
    if( (left=="1") && (right=="0") ) {
        div = document.getElementById('mw-diff-ntitle1');
        
        /* Keinen Knopf, falls rechts nicht aktuellste Version */
        if(document.getElementById('differences-nextlink') != null)
            return;

        div.innerHTML = '<a href="javascript:void(0);" onclick="cb_review()">' 
                      + txt_review + '</a>&nbsp;&nbsp;'
                      + div.innerHTML;
    }
}


/* Spezial:Letzte Änderungen entrümpeln */
function clean_rc() {
    document.getElementById('recentchangestable').innerHTML = "";
    
    var pos, pos2;

    for (var i = 0; i < document.getElementsByTagName('li').length; i++) {  
        var lelem = document.getElementsByTagName('li')[i];         
   
        /* [Zurücksetzen] raus, an der Stelle nur 'ne Klickfalle */
        if( (pos=lelem.innerHTML.indexOf('<span class="mw-rollback-link">')) != NOT_THERE)
            lelem.innerHTML = lelem.innerHTML.substr(0, pos);
    }
}

/* Weiche für die verschiedenen Entrümpelfunktionen */
function ui_cleanup() {
    var href = location.href;

    if(wgAction == "history")
         clean_history();
     if( (wgPageName == "Spezial:Beobachtungsliste") && (href.indexOf("edit") == NOT_THERE) )
         clean_watchlist();
    if(href.indexOf("diff=") != NOT_THERE)
         clean_diff();
    if(wgPageName == "Spezial:Beiträge")
         clean_contribs();
    if((wgPageName == "Spezial:Logbuch") && (href.indexOf("move") != NOT_THERE))
         clean_movelog();
    if( (wgCanonicalNamespace == "Special") && (wgCanonicalSpecialPageName=="Recentchanges") )
         clean_rc();
}
$(ui_cleanup);