Benutzer:Schnark/js/templateEditor
Das Skript templateEditor.js
stellt anderen Skripten (etwa Benutzer:Schnark/js/personendaten.js und Benutzer:Schnark/js/personendaten.js/normdaten.js) Funktionen zur Verfügung um Bearbeitungen durch einfache Formulare zu ermöglichen. Weitere Beispiele für die Verwendung finden sich in den QUnit-Tests unter Benutzer:Schnark/js/templateEditor.js/test.js.
Verwendung
[Bearbeiten | Quelltext bearbeiten]Skript laden
[Bearbeiten | Quelltext bearbeiten]Vor Benutzung muss das Skript natürlich erst geladen werden, was man entweder dem Benutzer überlässt, oder selbst im Skript macht. Letztendlich steht es unter mw.libs.templateEditor
zur Verfügung.
Registrieren
[Bearbeiten | Quelltext bearbeiten]Die Funktion mw.libs.templateEditor
wird zum Registrieren verwendet. Sie wird mit den Parametern id
(einem String, der das aufrufende Skript kennzeichnet, am besten dessen Seitentitel), short
(einem String, der der Version vorangestellt wird, eine möglichst kurze Abkürzung am besten in Kleinbuchstaben des aufrufenden Skripts), version
(der Versionsnummer, entweder als Zahl oder String) und hooks
aufgerufen. Der letzte Parameter ist dabei ein Objekt aus optionalen Funktionen (onStart
, onReady
und onFinish
), die zur rechten Zeit aufgerufen werden. Zurückgegeben wird etweder false
(im Fehlerfall) oder ein Objekt mit nützlichen Funktionen (siehe unten).
Anschließend sollte man dem Benutzer die Möglichkeit geben, irgendwie zu starten, oder von selbst starten, oder eventuell einfach abwarten.
Starten
[Bearbeiten | Quelltext bearbeiten]Entweder man startet selbst, indem man die zurückgegebene Funktion start
aufruft. Diese erwartet einen Parameter, ein Objekt, dessen Inhalt das weitere Verhalten etwas steuert:
headline
gibt die Überschrift des Bearbeiten-Formulars an. Setzt man redirect
auf false
, so wird bei einer Weiterleitung nicht der Zielartikel angezeigt. Soll das Formular an einer bestimmten Stelle stehen, so kann man mit $
eine jQuery-Instanz angeben, die dann damit gefüllt wird (sonst unter dem Titel). order
gibt die Reihenfolge an, in der mehrere Nutzer von templateEditor.js
beachtet werden sollen (siehe unten). Andere Daten können nach Belieben angegeben werden.
Die andere Möglichkeit ist, dass ein anderer Nutzer startet. In diesem Fall wird der Hook onStart
mit einem Objekt aufgerufen, das unter id
das startende Skript und unter data
dessen übergebene Daten enthält. Zurückgeben sollte man entweder 0
, wenn man nicht mit diesem Skript zusammen starten möchte oder eine von 0 verschiedene Zahl um ebenfalls zu starten. Für den weiteren Verlauf werden die Skripte in der Reihenfolge beachtet, die durch diese Zahlen angegeben wird, je größer, desto später.
In beiden Fällen sollte man dem Benutzer die Möglichkeit nehmen, einen weiteren Start auszulösen, das würde ohnehin zu keinem Erfolg führen.
Aufbauen
[Bearbeiten | Quelltext bearbeiten]Sobald der Hook onReady
aufgerufen wird, kann man den Text parsen, das Formular aufbauen und mit Vorschlägen füllen (siehe unten).
Abbauen
[Bearbeiten | Quelltext bearbeiten]Sobald der Hook onFinish
aufgerufen wird, sollte man die Daten aus dem Formular auslesen, den Text entsprechend ändern und Bearbeitungskommentare setzen.
Funktionen
[Bearbeiten | Quelltext bearbeiten]Von der bereits erwähnten Funktion start
abgesehen, werdem beim Registrieren folgende Funktionen zurückgegeben:
getFunctions
[Bearbeiten | Quelltext bearbeiten]Liefert sämtliche Funktionen für ein anderes Skript, dessen Name man als Parameter übergibt, oder false
. Dies ist notwendig, wenn man Formularfelder anderer Skripte auslesen will.
getVersion
[Bearbeiten | Quelltext bearbeiten]Liefert die Versionsnummer. Was genau zurückgegeben wird, hängt vom übergebenen Parameter ab:
Parameter | Rückgabe |
---|---|
undefined |
Versionsnummer von templateEditor.js
|
false |
Versionsstring aus allen registrierten Skripten |
true |
Versionsstring aus allen aktiven Skripten |
id | Versionsnummer des angegebenen Skripts bzw. null
|
addInput
[Bearbeiten | Quelltext bearbeiten]Fügt ein Eingabeelement zum Formular hinzu. Erster Parameter ist dessen Name, zweiter ein Objekt mit folgenden optionalen Eigenschaften:
Parameter | Werte | Standard | Bedeutung |
---|---|---|---|
text |
String | Leerstring | Beschriftung des Feldes |
type |
'text' oder 'bool' |
'text' |
Art des Feldes: Texteingabe oder Kontrollkästchen |
autofill |
boolesch | false |
Vorschlag bei leerem Feld direkt übernehmen? |
autocorr |
Funktion | automatische Korrektur sowohl beim Befüllen als auch Lesen des Feldes | |
val |
String/boolescher Wert | Leerstring/false |
Vorbelegung des Feldes |
Zurückgegeben wird null
im Fehlerfall oder ein jQuery-Element hinter dem eigentlichen Eingabeelement, das zusätzliche Informationen aufnehmen kann.
addRow
[Bearbeiten | Quelltext bearbeiten]Fügt eine Tabellenzeile ins Formular ein und gibt diese wieder zurück.
addFootitem
[Bearbeiten | Quelltext bearbeiten]Fügt das übergebene HTML in die Fußzeile ein.
setVal
[Bearbeiten | Quelltext bearbeiten]Befüllt das mit dem ersten Parameter bezeichnete Element mit dem im zweiten Parameter übergebenem Wert und gibt im Fehlerfall null
, sonst das Eingabefeld als jQuery-Instanz zurück.
getVal
[Bearbeiten | Quelltext bearbeiten]Liefert den Inhalt das gewünschten Elements, oder null
im Fehlerfall. Übegibt man keinen Bezeichner, so liefert die Funktion ein Objekt mit allen Werten zurück.
get$
[Bearbeiten | Quelltext bearbeiten]Liefert die jQuery-Instanz des gewünschten Eingabefelds oder null
zurück. Statt dem Eingabefeld kann man mit dem zweiten Parameter auch die Warnungen ('warning'
), der Bereich mit der Auswahlliste ('list'
) oder den Zusatzbereich ('additional'
) anfordern.
setSuggestions
[Bearbeiten | Quelltext bearbeiten]Setzt Vorschläge für das bezeichnete Eingabefeld. Die im zweiten Parameter übergebenen Vorschläge können null
oder []
für das Entfernen der Vorschläge, ein einzelner String oder ein Array mit mehreren Strings sein.
setList
[Bearbeiten | Quelltext bearbeiten]Fügt eine Auswahlliste an das bezeichnete Eingabefeld an. Im zweiten Parameter wird dazu ein Array mit den Vorschlägen in der Form ['Anzeige', 'Wert']
übergeben. Der dritte Parameter ist optional und gibt an, wie der erste Eintrag benannt sein soll (Standard: -Vorschläge-); wird dieser Eintrag ausgewählt, so wird der ursprüngliche Wert wieder hergestellt. Alternativ kann im vierten Parameter ein anderer Wert hierfür angegeben werden.
setWarning
[Bearbeiten | Quelltext bearbeiten]Setzt direkt eine Warnung für ein Element.
getWarning
[Bearbeiten | Quelltext bearbeiten]Liefert die aktuelle Warnung eines Elements oder null
.
getTitle
[Bearbeiten | Quelltext bearbeiten]Liefert den Titel (wgTitle
) der Seite.
getText
[Bearbeiten | Quelltext bearbeiten]Liefert den Wikitext der Seite.
setText
[Bearbeiten | Quelltext bearbeiten]Ändert den Wikitext der Seite.
addComment
[Bearbeiten | Quelltext bearbeiten]Setzt einen Bearbeitungskommentar.
setNotMinor
[Bearbeiten | Quelltext bearbeiten]Markiert die Bearbeitung nicht als klein.
Code
[Bearbeiten | Quelltext bearbeiten]Der Javascript-Code befindet sich unter Benutzer:Schnark/js/templateEditor.js.