Änderungen von Dokument Zähler


Von Version 3.9
bearbeitet von gru
am 30.08.2021, 13:16
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 5.5
bearbeitet von gru
am 30.08.2021, 17:48
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -27,7 +27,7 @@
27 27  ::: - wöchentlich
28 28  ::: - monatlich
29 29  ::: - jährlich
30 -:: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar
30 +:: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar:
31 31  ::; Wert
32 32  ::: Wert mit dem der Zähler verglichen werden soll. Nur verfügbar, wenn //Zähler größer gleich// oder //Zähler kleiner gleich// als Bedingung ausgewählt wurde.
33 33  ::; um
... ... @@ -50,46 +50,32 @@
50 50  
51 51  == Platzhalter ==
52 52  
53 -Die Werte von Zählern können über [[Platzhalter:doc>>Formcycle.UserInterface.Variables]] zum Beispiel im Workflow oder als Wert von Formularelementen ausgelesen werden. Die Syntax ist dabei wie folgt:
53 +Die Werte von Zählern können über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] zum Beispiel im Workflow oder als Wert von Formularelementen ausgelesen werden. Die Syntax ist dabei wie folgt:
54 +
54 54  {{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}}
55 55  
56 56  == Zugriff auf Zählerwert per Servlet ==
57 57  
59 +=== Servlet-URL und Parameter ===
60 +
58 58  Der Wert der Zähler kann innerhalb von Formularen über einen Servletaufruf ermittelt werden. Es ist dabei möglich, den Zähler über seinen Namen oder seine UUID auszuwählen. Die entsprechenden {{smallcaps}}URL{{/smallcaps}}s zum Aufruf der Werte könnten zum Beispiel wie folgt aussehen:
59 -{{code language="none"}}
60 -<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>
61 -<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>
62 -{{/code}}
63 63  
64 -In beiden Fällen wird eine gültige //form request id// (frid) benötigt, welche im Formular per JavaScript unter {{code language="none"}}XFC_METADATA.currentSessionFRID{{/code}} zu finden ist. Auf gleiche Art kann zudem die {{smallcaps}}URL{{/smallcaps}} des Servlets per JavaScript unter {{code language="none"}}XFC_METADATA.urls.counter_client{{/code}} ausgelesen werden. Dies ist wichtig, da sich die {{smallcaps}}URL{{/smallcaps}} bei Aufrufen über Frontend- und Masterserver unterscheidet.
63 +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}}
64 +und
65 +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}}
65 65  
66 -Eine bespielhafte JavaScript-Abfrage, welche den Zählerwert in das Feld //tf1// schreibt, könnte also wie folgt aussehen:
67 67  
68 -{{code language="javascript"}}
69 -$.ajax({
70 - url:[
71 - XFC_METADATA.urls.counter_client,
72 - "?frid=",
73 - XFC_METADATA.currentSessionFRID,
74 - "&name=Beispielzähler"
75 - ].join(""),
76 - success: function(data, textStatus, jqXHR) {
77 - if (data.success) {
78 - $('[data-name="tf1"]').val(data.result.value);
79 - } else {
80 - console.error("Zugriff auf Zähler Beispielzähler fehlgeschlagen:",data.msg);
81 - }
82 - }
83 -});
84 -{{/code}}
68 +In beiden Fällen wird eine gültige //form request id// (frid) benötigt, welche im Formular per JavaScript unter {{code language="none"}}XFC_METADATA.currentSessionFRID{{/code}} zu finden ist. Auf gleiche Art kann zudem die {{smallcaps}}URL{{/smallcaps}} des Servlets per JavaScript unter {{code language="none"}}XFC_METADATA.urls.counter_client{{/code}} ausgelesen werden. Dies ist wichtig, da sich die {{smallcaps}}URL{{/smallcaps}} bei Aufrufen über Frontend- und Masterserver unterscheidet.
85 85  
86 -Neben dem eigentlichen Wert werden auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur:
70 +=== Rückgabewerte ===
71 +
72 +Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur:
87 87  ; success
88 -: Boolscher Wert, der aussagt, ob die Werte gesetzt wurden.
74 +: Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte.
89 89  ; msg
90 90  : Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//.
91 91  ; result
92 -: Antwort auf die Anfrage. Wenn die anfrage erfolgreich war, sind die folgenden Unterpunkte enthalten:
78 +: Antwort auf die Anfrage. Wenn die Anfrage nicht erfolgreich war, wird nur ein leeres JSON-Objektliteral zurückgegeben. War die Anfrage hingegen erfolgreich, sind die folgenden Unterpunkte im JSON-Objektliteral enthalten:
93 93  :; lastChange
94 94  :: Formatierte Ausgabe von Datum und Uhrzeit der letzten Änderung des Zählerwertes
95 95  :; lastChangeTimestamp
... ... @@ -101,3 +101,33 @@
101 101  :; value
102 102  :: Aktueller Zählerwert
103 103  
90 +=== Beispiel für eine AJAX-Anfrage im Formular ===
91 +
92 +Eine beispielhafte AJAX-Anfrage, welche den aktuellen Zählerwert des Zählers //Beispielzähler// in das Feld //tf1// schreibt, könnte also wie folgt aussehen:
93 +
94 +{{code language="javascript"}}
95 +$.ajax({
96 + method: "GET",
97 + url: XFC_METADATA.urls.counter_client,
98 + data: {
99 + name: "Beispielzähler",
100 + frid: XFC_METADATA.currentSessionFRID,
101 + }
102 +}).then(function(data) {
103 + if (data.success) {
104 + $('[data-name="tf1"]').val(data.result.value);
105 + } else {
106 + console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg);
107 + }
108 +}).catch(function(jqXHR, errorTextStatus, errorThrown) {
109 + console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")");
110 +});
111 +{{/code}}
112 +
113 +=== Einfügen eines Templates für eine AJAX-Anfrage im Formular ===
114 +
115 +{{figure image="counter_query_de.png"}}Auswahl des Templates für die Zähler-Abfrage im JavaScript-Bereich des Formulardesigners.{{/figure}}
116 +
117 +Ein Template, welches der obenstehenen Beispielfunktion ähnlich ist, kann per Autocomplete direkt im JavaScript-Bereich des Formulardesigners eingefügt werden. Hierzu muss im JavaScript-Bereich hintereinander {{code language=none}}Zähler{{/code}} eingegeben werden und die vom Autocomplete vorgeschlagene Option //Zähler-Abfrage// mit einem Klick oder mit der Enter-Taste bestätigt werden.
118 +
119 +Nachdem das Template eingefügt wurde, müssen die benötigten Funktionaltitäten hinzugefügt und der Name des Zählers abgeändert werden.
counter_query_de.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.gru
Größe
... ... @@ -1,0 +1,1 @@
1 +7.6 KB
Inhalt
counter_query_en.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.gru
Größe
... ... @@ -1,0 +1,1 @@
1 +7.9 KB
Inhalt