Benutzer:Umherirrender/monobook-flaggedrevs.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
/*
 * @author Umherirrender - [[:de:User:Umherirrender]]
 * develop with and for Internet Explorer 11+
 *
 * gegen Übernahmen spricht nichts, nur bitte nicht diese JavaScript-Seite direkt einbinden
 * ohne Gewähr und ohne Support
 * 
 * verändert die Oberfläche von FlaggedRevs, damit so wenig wie möglich und nötige Elemente dieser Erweiterung sichtbar sind
 * spielt auch mit Extra-CSS zusammen ([[Benutzer:Umherirrender/monobook-flaggedrevs.css]])
 */

//<nowiki>

mw.loader.using( [ 'mediawiki.util' ], function() { $( function () {
 var contentElement = document.getElementById("bodyContent");
 /* abhängig vom Namensraum */
 var namespaceNumber = mw.config.get( 'wgNamespaceNumber' );
 var title = mw.config.get( 'wgTitle' );
 //nur Artikel und Dateien (und deren Diskussionseiten)
 if (namespaceNumber == 0 || namespaceNumber == 1
  || namespaceNumber == 6 || namespaceNumber == 7
  || ((namespaceNumber == 14 || namespaceNumber == 15) && title.substring( 0, 8 ) != "Vorlage:")
  )
 {
  /* sortiert die Tabs wieder richtig */
  var cactions = document.getElementById("p-cactions");
  var ul = cactions.getElementsByTagName("ul");
  var li = ul[0].getElementsByTagName("li");
  //nur wenn Entwurf vorhanden
  var unstableTabIndex = 3;
  if (li[unstableTabIndex].firstChild.firstChild.data == 'Ungesichtete Änderungen') {
   //link umbiegen
   li[0].firstChild.href = li[unstableTabIndex].firstChild.href;
   //zusätzlichen tab auf ungesichtete Änderungen entfernen
   ul[0].removeChild(li[unstableTabIndex]);
  }
  var stableTabIndex = 2;
  if (li[stableTabIndex].firstChild.firstChild.data == 'Lesen') {
   //zusätzlichen tab auf stablie Version entfernen
   ul[0].removeChild(li[stableTabIndex]);
  }
  //reviewformular verbergen, interessiert mich noch bei Vorlagen, daher nicht per css
  var reviewform = document.getElementById("mw-fr-reviewform");
  if (reviewform)
  {
   reviewform.style.display = "none";
  }
  //hinweis auf status verbergen, interessiert mich noch bei Vorlagen, daher nicht per css
  var revisiontag = document.getElementById("mw-fr-revisiontag");
  if (revisiontag)
  {
   revisiontag.style.display = "none";
  }
 }
 /* nur vorlagen/Module (und Diskussionsseite) und Vorlagenkategorien */
 else if (namespaceNumber == 10 || namespaceNumber == 11
  || namespaceNumber == 828 || namespaceNumber == 829
  || ((namespaceNumber == 14 || namespaceNumber == 15) && title.substring( 0, 8 ) == "Vorlage:")
  )
 {
  var cactions = document.getElementById("p-cactions");
  var ul = cactions.getElementsByTagName("ul");
  var li = ul[0].getElementsByTagName("li");
  //richtig benennen - fixme
  li[0].firstChild.firstChild.data = "Vorlage";
  //kommentarbox einblenden
  var commentbox = document.getElementById("mw-fr-commentbox");
  if (commentbox)
  {
   commentbox.style.display = "block";
  }
 }
 /* Abhängig von Aktion */
 /* entfernt diff beim bearbeiten - außer beim undo */
 var action = mw.config.get( 'wgAction' );
 if( action == "edit"
  && ( namespaceNumber == 0 || namespaceNumber == 6 )
  && !document.getElementById( 'mw-undo-success' )
  )
 {
  mw.util.addCSS(".diff { display:none; }");
 }
 //nur bei edit und submit
 if (action == "edit" || action == "submit")
 {
  /* entfernt Checkbox "Markiere Version" beim Bearbeiten */
  var div = contentElement.getElementsByTagName("div");
  //suche div
  for (var i = 0; i < div.length; i++)
  {
   //nur die editOptionen
   if (div[i].className == "editOptions")
   {
    for (var j = 0; j < div[i].childNodes.length; j++)
    {
     if (div[i].childNodes[j].htmlFor == "wpReviewEdit")
     {
      //alles entfernen
      div[i].removeChild(div[i].childNodes[j]);
      div[i].removeChild(div[i].childNodes[j-1]);
      div[i].removeChild(div[i].childNodes[j-2]);
      div[i].removeChild(div[i].childNodes[j-3]);
      break;
     }
    }
    break;
   }
  }
 }
 /* abhängig von Spezialseitenname */
 var canonicalSpecialPageName = mw.config.get( 'wgCanonicalSpecialPageName' );
 /* nur für rc-listen */
 if (canonicalSpecialPageName === "Recentchanges"
  || canonicalSpecialPageName === "Watchlist"
  || canonicalSpecialPageName === "Recentchangeslinked"
  || canonicalSpecialPageName === "Newpages"
  )
 {
  /* entfernt die Option zum einblenden/ausblenden von kontrollierten Änderungen */
  var fieldset = contentElement.getElementsByTagName("fieldset");
  var allOptions = fieldset[0];
  for ( var i = allOptions.childNodes.length-1; i >= 0; i-- ) {
   var text = allOptions.childNodes[i].data;
   if ( text == " | Kontrollierte Änderungen " || text == " | Markierte Bearbeitungen " ) {
    //link danach
    allOptions.removeChild(allOptions.childNodes[i+1]);
    //eigentliche
    allOptions.removeChild(allOptions.childNodes[i]);
   }
  }
  /* entfernt das Ausrufezeichen und den Sichtungslink */
  var li = contentElement.getElementsByTagName("li");
  for (var i = 0; i < li.length; i++)
  {
   for (var j = 0; j < li[i].childNodes.length; j++)
   {
    //das ausrufezeichen
    if (li[i].childNodes[j].className == "unpatrolled")
    {
     //nur wenn nichts davor steht leerraum entfernen
     if (!li[i].childNodes[j-1].className)
     {
      li[i].removeChild(li[i].childNodes[j+1]);
     }
     //eigentliches entfernen
     li[i].removeChild(li[i].childNodes[j]);
    }
    //sichtenlink
    if (li[i].childNodes[j].className == "mw-fr-reviewlink")
    {
     //eigentliches entfernen
     li[i].removeChild(li[i].childNodes[j]);
     //den leerbereich
     li[i].removeChild(li[i].childNodes[j-1]);
    }
   }
  }
 }
 /* nur für Log */
 else if (canonicalSpecialPageName === "Log") {
  /* entfernt die Option zum einblenden/ausblenden von Kontroll- und Versionsmarkierungs-Log */
  var fieldset = contentElement.getElementsByTagName("fieldset");
  var option = contentElement.getElementsByTagName("option");
  var select = contentElement.getElementsByTagName("select");
  var input = contentElement.getElementsByTagName("input");
  //entferne Auswahlmöglichkeit für FlaggedRevs-Logs
  for( var j = 0; j < input.length; j++ ) {
   if( input[j] && (input[j].name == "hide_review_log" || input[j].name == "hide_patrol_log") ) {
    //das p indem die boxen stehen
    var parent = input[j].parentNode;
    //es braucht den Vater des p um das ganze zu entfernen und somit neben den input-Elementen auch die Texte
    if( parent && parent.parentNode ) {
     parent.parentNode.removeChild(parent);
    }
    break;
   }
  }
  for (var i = 0; i < option.length; i++) {
   //auswahlmöglichkeit für Logbücher der FlaggedRevs entfernen
   if ( option[i].value == "patrol"
     || option[i].value == "review"
     || option[i].value == "stable"
    ) {
    select[0].removeChild(option[i]);
    //da length auch kleiner wird, ansonsten würde einer übersprungen
    i--;
   }
  }
 }
 //nur für "Neue Seiten"
 else if (canonicalSpecialPageName === "Newpages")
 {
  /* entfernt die Option zum einblenden/ausblenden von kontrollierten Änderungen */
  var td = contentElement.getElementsByTagName("td");
  //text steht in irgendeiner tabellenzelle
  for (var i = 0; i < td.length; i++)
  {
   if (td[i].className == "mw-input")
   {
    var childNodes = td[i].childNodes;
    for (var j = 0; j < childNodes.length; j++)
    {
     if (childNodes[j].data == " | Kontrollierte Änderungen ")
     {
      //element selber und nachfolger
      td[i].removeChild(childNodes[j]);
      td[i].removeChild(childNodes[j]);
      break;
     }
    }
    break;
   }
  }
 }
 //nur bei Übersicht der Spezialseiten
 else if (canonicalSpecialPageName === "Specialpages")
 {
  /* bereinigt Special:Specialpages */
  for (var i = 0; i < contentElement.childNodes.length; i++)
  {
   //nur Überschriften näher Untersuchen
   if (contentElement.childNodes[i].className == "mw-specialpagesgroup")
   {
    //nur Überschrift der Qualitätssicherung
    if (contentElement.childNodes[i].firstChild.data == "Qualitätssicherung")
    {
     //die Überschrift und tabelle danach entfernen
     contentElement.removeChild(contentElement.childNodes[i]);
     contentElement.removeChild(contentElement.childNodes[i]);
     break;
    }
   }
  }
 }
});});
//</nowiki> __NOINDEX__