JavaScript-Helferlein, um bei Beobachtungslisten und der Seite Letzte Änderungen der Benutzeroberfläche besondere Möglichkeiten hinzuzufügen.
Zurzeit werden acht Funktionalitäten unterstützt:
Es wird nur die optische Darstellung der Seite und der Abruf weiterer Seiten beeinflusst, jedoch keine Analyse der Datenbank-Einträge vorgenommen.
mw.loader.load("https://en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/listPageOptions/r.js&action=raw&bcache=1&maxage=604800&ctype=text/javascript",
"text/javascript");
Eigentlich muss man sich in den persönlichen Einstellungen für das weitere Arbeiten entscheiden, ob für jede Seite genau eine Änderung oder aber mehrere Aktivitäten angezeigt werden sollen („erweitert“), wenn es im Zeitraum mehrere Vorgänge gab.
Im Block der „Anzeigeoptionen“ auf der Beobachtungsliste wird eine Checkbox hinzugefügt, die über den zuletzt gewählten Wunsch voreingestellt wird. Wird hier ein Häkchen gemacht oder entfernt und anschließend Anwenden gedrückt oder eines der Links zu den anderen Optionen angeklickt, wird die neu aufgebaute Seite entsprechend dargestellt. War die seitenbezogene Gruppierung aktiv, wird sie automatisch abgeschaltet.
Beeinflusste Seiten:
Für die genannten Spezialseiten wird eine allgemeine Einstellung angeboten, die bei allen diesen Listen gleiche Seiten zunächst in Gruppen zusammenfasst, die später aufgeklappt werden können.
Zurzeit gilt das immer für alle Seiten einheitlich, was gelegentlich nicht angemessen ist. Dieses Gadget bereitet einen Weg, diese Eigenschaft vorübergehend individuell ein- und auszuschalten, wenn es erforderlich oder gerade unerwünscht ist.
Im Block der „Anzeigeoptionen“ auf den Spezialseiten wird eine Checkbox hinzugefügt, die über den zuletzt gewählten Wunsch voreingestellt wird. Wird hier ein Häkchen gemacht oder entfernt und anschließend Anwenden gedrückt oder eines der Links zu den anderen Optionen angeklickt, wird die neu aufgebaute Seite entsprechend dargestellt. Sind zurzeit die „Mehrfachen Einträge“ nicht aktiv, werden sie automatisch zugeschaltet.
Beeinflusste Seiten:
Will man von einem Szenario in ein anderes wechseln, also beispielsweise von „alle Namensräume der letzten Stunde“ zu „nur Artikel der letzten 30 Tage“, dann ist normalerweise der Aufbau einer Zwischenseite erforderlich.
Dieses Werkzeug aktualisiert standardmäßig alle Direktverlinkungen sofort, wenn eine Option des Formulars verändert wird, also ein Häkchen in einer Checkbox gemacht wird oder ein Namensraum ausgewählt wird. Anschließend kann dann Anwenden oder ein Zeitraum angeklickt werden, um den Neuaufbau auszulösen.
Mit der Option learn
lassen sich den Links für das Ein- und Ausblenden weitere Checkboxen hinzufügen, sodass auch diese in eine gesammelte Konfiguration einbezogen werden können.
Beeinflusste Seiten:
Ein Link (wie + [Nicht-beobachten]) wird der Werkzeugbox des Portals (üblicherweise in der Spalte auf der linken Seite) hinzugefügt. Wird er angeklickt, so wird jedem Seiteneintrag ein Button (wie [—]) hinzugefügt. Wird dieser angeklickt, dann wird per API diese Seite aus der Beobachtung entfernt. Sollte das irrtümlich geschehen sein, nimmt ein erneuter Klick auf die gleiche Stelle die Seite wieder in die Beobachtungsliste auf.
Beeinflusste Seiten:
Seit Sommer 2017 kann als Einstellung „Direkte Markierungen zum Nichtbeobachten/Beobachten (×/+) zu beobachteten Seiten mit Änderungen hinzufügen (erfordert JavaScript)“ bewirkt werden, dass immer jeder Seiteneintrag mit einer analogen Schaltfläche ausgestattet wird.
Seiten können als „bereit besucht“ einzeln markiert werden, sofern dies angefordert wird. Sie ändern daraufhin das Erscheinungsbild und lassen sich auch vorübergehend ausblenden.
Beeinflusste Seiten:
Der Ausgangszustand und das Verhalten kann von jedem Benutzer individuell vorgegeben werden.
Einige der unten beschriebenen Optionen können nach Installation des Skriptes auf einer Spezialseite interaktiv konfiguriert werden.
Das gilt jedoch nicht für die komplexeren Filterregeln über Array.
Auch nicht angemeldete Benutzer können davon Gebrauch machen; die „Letzten Änderungen“ stehen auch ihnen zur Verfügung, obwohl sie keine Beobachtungsliste nutzen können.
In die common.js etc. die folgenden Zeilen einfügen (möglichst vor mw.loader.load, so vorhanden):
if ( typeof mw.libs.listPageOptions !== "object" ) {
mw.libs.listPageOptions = { };
}
mw.libs.listPageOptions.key1 = value1;
Key | Value | Bedeutung |
---|---|---|
lean
|
true
|
Komprimierter Optionsblock. Default: false – ungeändertes Layout.
|
learnt
|
false
|
Möglichkeit zum Verbergen besuchter Änderungen auf der Beo. Default: null – keine Möglichkeit.false – Zusatz-Link; Vorgabe: alle anzeigen.true – Zusatz-Link; Vorgabe: besuchte ausblenden.
|
leyo
|
false
|
Möglichkeit zum Verbergen eigener letzter Beiträge auf der Beo. Default: false – Anzeigen.true – Verbergen bei seitenbezogener Gruppierung, wenn jüngster Beitrag selbst geschrieben.
|
looked
|
false
|
Einzelseiten als besucht markieren können. Default: null – keine zusätzlichen Knöpfe.false – Link zum Einblenden.true – von Anfang an Einblenden.
|
lower
|
true
|
Zusätzliche Knöpfe zum Ein- und Ausblenden des Optionsblocks. Default: null – keine zusätzlichen Knöpfe.false – Knopf zum Ausblenden.true – Ausblenden; Knopf zum Einblenden.
|
luxury
|
true
|
Zusätzliche Checkboxen zum Ein- und Ausblenden. Default: false – keine zusätzlichen Checkboxen.
|
hide
|
Array | Einträge verstecken. Default: nichts verstecken. |
Beispiel:
if ( typeof mw.libs.listPageOptions !== "object" ) {
mw.libs.listPageOptions = { };
}
mw.libs.listPageOptions.learnt = true;
mw.libs.listPageOptions.hide = [ [ true, "Logbuch/articlefeedback", 2 ],
[ false, "Benutzer(in)?:", 2 ],
[ false, "([A-Z][a-z]+_)?Diskussion:", 2 ],
[ false, "Wikipedia:(Import|L%C3%B6schk|Spielwiese)", 2 ],
[ false, false, 2, "PerfektesChaos$" ],
[ false, false, 0, "(Archivbot|DrTrigonBot)$" ]
];
Die Option .hide
ist ein Array
, das Array
s mit Regeln enthält.
Jedes Regel-Element ist ein Array
mit zwei bis fünf Elementen.
[0]
|
Markierung für Spezialseiten.true = Spezialseite und false = reguläre Seite.
|
[1]
|
Muster für Seitenname. Stil eines Regulären Ausdrucks als Zeichenkette. Wenn false , dann alle Seiten; aber Einschränkung über den Benutzernamen (oder anderes?) erforderlich.
|
[2]
|
(optional) Regel auf bestimmte Auflistungen beschränken.
|
[3]
|
(optional) Muster für Namen des ausführenden Benutzers. Stil eines Regulären Ausdrucks als Zeichenkette. Bei „seitenbezogener Gruppierung“ nur bedingt einsetzbar. |
[4]
|
(optional) Regel nur auf kleine Änderungen anwenden. |
"Logbuch/(articlefeedback|block|upload)"
""
jeden Bezug zu einer Spezialseite unterdrücken. Das ist mit der standardmäßig angebotenen Namensraum-Auswahl nicht möglich.Beiträge/127.0.0.1
$
(Dollarzeichen) anzugeben.
regel[3] = "Foo$";
blendet nur Benutzer:Foo aus, nicht aber Benutzer:FooBar.regel[1] = "Wikipedia:(Administratoren|Auskunft|Fragen zur |Import|Löschk|Spielwiese)";
^ . * + ? ( ) \ $
können in Wiki-Namen vorkommen, aber haben eine Sonderbedeutung in Regulären Ausdrücken. Sie könnten durch vorangesetzte \\
maskiert werden, oder es wird das Prozentzeichen-Format benutzt.[false, "[^:]+$", 0, "X1x$", true]
Beeinflusste Seiten:
Mit der Option .learnt
wird ein zusätzliches Link angeboten, das die bereits besuchten Seiten aus der Liste ausblendet. Die Ein- und Ausblendung kann beliebig oft umgeschaltet werden, ohne die Seite neu abzurufen (dies im Unterschied zu einer im September 2013 eingeführten neuen Option).
Der zuletzt aktivierte Zustand wird in einem Super Cookie während der Browser-Sitzung gespeichert, so dass er beim erneuten Abruf der Seite erhalten bleibt. Der Wert der Option .learnt
ist der Startwert beim Sitzungsbeginn.
Beeinflusste Seiten:
Bei „seitenbezogener Gruppierung“ kann ein Block ausgeblendet werden, wenn die jüngste Bearbeitung selbst verfasst wurde (letzte Antwort in der Diskussion; soeben revertiert). Das ist mit der Option .leyo
(last edit your own) möglich, wenn true
gesetzt wird. Dazu muss aber hideOwn=0
stehen (eigene Beiträge dürfen nicht versteckt werden), weil sonst in der HTML-Seite die eigene Bearbeitung nicht bekannt wäre.
Beeinflusste Seiten:
Die Optionen sind (mit oder ohne Gadget) zeilenweise gegliedert und gruppiert. Mit der Option .lean
lassen sie sich platzsparend anordnen – sind dadurch naturgemäß nicht mehr übersichtlich.
Beeinflusste Seiten:
Dazu passt die CSS-Anweisung für die common.css
FORM#mw-watchlist-resetbutton ul li {
display: none;
}
Wenn die Option .looked
vom Typ boolean ist, werden für alle noch nicht besuchten Seiten Buttons angeboten, die einen Besuch simulieren.
false
– Link zum Einblenden der Buttons in der Werkzeugbox des Portals.true
– Bereits beim Seitenaufbau alle Buttons einblenden.Beeinflusste Seiten:
Mit der Option .lower
werden zusätzliche Schaltelemente angeboten, mit denen sich der Block für Anzeigeoptionen (teils auch Benachrichtigungen und weiteren Informationen) ein- und ausblenden lässt. Damit kann bei begrenztem Bildschirmplatz und unveränderten Optionen für die Liste mehr Nutzfläche geschaffen werden. Zum Ausblenden wird rechts oben im Optionsblock ein X angeboten.
Der zuletzt aktivierte Zustand wird in einem Super Cookie während der Browser-Sitzung gespeichert, so dass er beim erneuten Abruf der Seite erhalten bleibt. Der Wert der Option .lower
ist der Startwert beim Sitzungsbeginn.
Beeinflusste Seiten:
Eigentlich ist es nicht erforderlich, dass diese Funktionalität von einem externen Gadget erbracht wird. Vielleicht wird das eines Tages von einer Lösung auf dem Mediawiki-Server geleistet, zumindest das vorübergehende Umschalten in die seitenbezogene Gruppierung.
Die Stammseite ist en:User:PerfektesChaos/js/listPageOptions mit:
Quellcode |
|
ResourceLoader |
|
Namensräume | -1 ( Watchlist , Recentchanges , Blankpage )
|
Cookies |
|
mw.libs
|
listPageOptions
|