„Benutzer:Schnark/js/topcontrib.js“ – Versionsunterschied

Inhalt gelöscht Inhalt hinzugefügt
K neue Version, die auch in anderen Browsern funktioniert
K etwas eleganter
Zeile 12:Zeile 12:
if (wgCanonicalNamespace === "Special" && wgCanonicalSpecialPageName === "Contributions") //Benutzerbeiträge ?
if (wgCanonicalNamespace === "Special" && wgCanonicalSpecialPageName === "Contributions") //Benutzerbeiträge ?
{
{
var ich_top ='#7FFFD0'; //verschiedene Farben, bei Bedarf anpassen, müssen alle
var ich_top ='#7FFFD0'; //verschiedene Farben, bei Bedarf anpassen, ich_top und fremd_top
var ich ='#C0FFC0'; //verschieden sein, immer heller wählen als man eigentlich
var ich ='#C0FFC0'; //müssen verschieden sein, immer heller wählen als man eigentlich
var fremd_top='#FFD0A0'; //vorhat, sie wirken erdrückend genug
var fremd_top='#FFD0A0'; //vorhat, sie wirken erdrückend genug
var fremd ='#FFEEBA'; //"ich" und "fremd" bezieht sich auf den Benutzer, dessen
var fremd ='#FFEEBA'; //"ich" und "fremd" bezieht sich auf den Benutzer, dessen
//Beiträge betrachtet werden, nicht auf einen selbst.
//Beiträge betrachtet werden, nicht auf einen selbst.

var ausruf='<span class="unpatrolled">!</span>&nbsp;'; //Ausrufszeichen für ungesichtet
var ausruf='<span class="unpatrolled">!</span>&nbsp;'; //Ausrufszeichen für ungesichtet
var frage='<span class="unpatrolled">?</span>&nbsp;'; //Fragezeichen für nie gesichtet
var frage='<span class="unpatrolled">?</span>&nbsp;'; //Fragezeichen für nie gesichtet
//var haken='<span style="color:#0F0;">✓</span>&nbsp;'; //Häkchen für gesichtet
//var haken='<span style="color:#0F0;">✓</span>&nbsp;'; //Häkchen für gesichtet
var haken=''; //gesichtete nicht extra markieren
var haken=''; //gesichtete nicht extra markieren

var i,li,a;
var li=document.getElementById("bodyContent");
li=document.getElementById("bodyContent");
li=li.getElementsByTagName("li"); //Liste mit Bearbeitungen
li=li.getElementsByTagName("li"); //Liste mit Bearbeitungen

var a=new Array(); //wird mit allen Seiten gefüllt
i=-1;
a=new Array();
var i=-1;
while(++i<li.length)
while(++i<li.length)
{
{
var titel = li[i].getElementsByTagName("a")[0].title;//Der Titel steht als title im ersten Link
var farbe,titel,span_anf;

var html = li[i].innerHTML;
var match = html.match(/"\/w\/index.php\?title=([^"]*)&amp;redirect=no"/); //"//suche nach Titel, zunächst Redirects
//Vorsicht: Fehler, falls ein solcher in
//Zusammenfassung
if (!match)
match = html.match(/"\/wiki\/([^"]*)"/); //"//immer noch Titelsuche
titel = match[1];
var spans = li[i].getElementsByTagName("span"); //existiert ein "(aktuell)" ?
var spans = li[i].getElementsByTagName("span"); //existiert ein "(aktuell)" ?
var aktuell = false;
var aktuell = false;
Zeile 44:Zeile 37:
{
{
if (spans[j].className == "mw-uctop")
if (spans[j].className == "mw-uctop")
{
{ aktuell = true;
aktuell = true;
break; }
break;
}
}
}

var farbe;
if(aktuell) //falls "(aktuell)" gefunden
if(aktuell) //falls "(aktuell)" gefunden
{farbe=ich_top;}
{farbe=ich_top;}
Zeile 60:Zeile 53:
{
{
if (spans[j].className == "flaggedrevs-unreviewed")
if (spans[j].className == "flaggedrevs-unreviewed")
{ status=1; //ungesichtet
{
break; }
status=1; //ungesichtet
break;
}
if (spans[j].className == "flaggedrevs-unreviewed2")
if (spans[j].className == "flaggedrevs-unreviewed2")
{ status=2; //noch nie gesichtet
{
break; }
status=2; //noch nie gesichtet
break;
}
if (spans[j].className == "flaggedrevs-color-1")
if (spans[j].className == "flaggedrevs-color-1")
{ status=3; //gesichtet
{
break; }
status=3; //gesichtet
break;
}
}
}
if (status!=0) {
if (status!=0) {

Version vom 20. August 2009, 09:19 Uhr

// kopiert und angepasst von [[:en:User:Ais523/topcontrib.js]]
//
// Farbcodiert Benutzerbeiträge, wandelt dabei die farblichen Hinterlegungen der gesichteten Versionen in Symbole um
//
// Funktioniert inzwischen nicht nur mit dem Firefox, sondern auch mit Konqueror und sogar dem IE.
//
//[[Benutzer:Schnark/topcontrib.js]]
// 
//<nowiki>
 
addOnloadHook(function () {
  if (wgCanonicalNamespace === "Special" && wgCanonicalSpecialPageName === "Contributions")  //Benutzerbeiträge ?
   {
    var ich_top  ='#7FFFD0';                               //verschiedene Farben, bei Bedarf anpassen, ich_top und fremd_top
    var ich      ='#C0FFC0';                               //müssen verschieden sein, immer heller wählen als man eigentlich
    var fremd_top='#FFD0A0';                               //vorhat, sie wirken erdrückend genug
    var fremd    ='#FFEEBA';                               //"ich" und "fremd" bezieht sich auf den Benutzer, dessen
                                                           //Beiträge betrachtet werden, nicht auf einen selbst.

    var ausruf='<span class="unpatrolled">!</span>&nbsp;'; //Ausrufszeichen für ungesichtet
    var  frage='<span class="unpatrolled">?</span>&nbsp;'; //Fragezeichen für  nie gesichtet
    //var  haken='<span style="color:#0F0;">✓</span>&nbsp;'; //Häkchen für gesichtet
    var haken='';                                          //gesichtete nicht extra markieren

    var li=document.getElementById("bodyContent");
    li=li.getElementsByTagName("li");                      //Liste mit Bearbeitungen

    var a=new Array();                                     //wird mit allen Seiten gefüllt
    var i=-1;
    while(++i<li.length)
    {
      var titel = li[i].getElementsByTagName("a")[0].title;//Der Titel steht als title im ersten Link

      var spans = li[i].getElementsByTagName("span");      //existiert ein "(aktuell)" ?
      var aktuell = false;
      for (var j = 0; j < spans.length; j++)
      {
        if (spans[j].className == "mw-uctop")
        { aktuell = true;
          break; }
      }

      var farbe;
      if(aktuell)                                          //falls "(aktuell)" gefunden
        {farbe=ich_top;}
      else
        {farbe=fremd_top;}
      if(a[titel]!=undefined) farbe=(a[titel]==ich_top?ich:fremd); else a[titel]=farbe;  //Titel zum wiederholten Mal ?
      li[i].style.backgroundColor=farbe;

      var status = 0;                                      //gesichtet oder ungesichtet?
      for (var j = 0; j < spans.length; j++)
      {
        if (spans[j].className == "flaggedrevs-unreviewed")
        { status=1;                                        //ungesichtet
          break; }
        if (spans[j].className == "flaggedrevs-unreviewed2")
        { status=2;                                        //noch nie gesichtet
          break; }
        if (spans[j].className == "flaggedrevs-color-1")
        { status=3;                                        //gesichtet
          break; }
      }
      if (status!=0) {
          spans[j].className = "";                         //Farbmarkierung entfernen ...
          if (status==1) li[i].innerHTML=ausruf+li[i].innerHTML; //... und stattdessen
          if (status==2) li[i].innerHTML=frage+li[i].innerHTML;  //das entsprechende
          if (status==3) li[i].innerHTML=haken+li[i].innerHTML;  //Symbol voranstellen
      }
    }
   }});
//</nowiki>