Änderungen von Dokument Datenbankzähler-Plugin


Von Version 3.7
bearbeitet von gru
am 10.03.2021, 11:01
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 5.11
bearbeitet von gru
am 10.03.2021, 12:02
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -4,11 +4,11 @@
4 4  
5 5  == Funktionsbeschreibung ==
6 6  
7 -Das kostenpflichtige Datenbankzähler-Plugin-Bundle ermöglicht es, in einem neuen Menüpunkt einen oder mehrere globale Zähler zu erstellen und zu verwalten. Der Zählwert kann innerhalb der [[Platzhalter>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] ausgelesen, erhöht, verringert oder zurückgesetzt werden und ist als [[Statusverarbeitung>>doc:Formcycle.UserInterface.Variables.WebHome]] verfügbar. Über ein Servlet-Aktions-Plugin kann zudem per AJAX-Request der Wert von einem oder mehreren Zählern ermittelt werden, z.B. im JavaScript-Code eines Formulars.
7 +Das kostenpflichtige Datenbankzähler-Plugin ermöglicht es, mehrere globale Zähler zu erstellen und zu verwalten. Der Zählwert kann innerhalb der [[Platzhalter>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] ausgelesen, erhöht, verringert oder zurückgesetzt werden und ist als [[Statusverarbeitung>>doc:Formcycle.UserInterface.Variables.WebHome]] verfügbar. Über AJAX-Requests kann der Wert von einem oder mehreren Zählern ermittelt werden, z.B. im JavaScript-Code eines Formulars.
8 8  
9 9  == Installation ==
10 10  
11 -Das Plugin-Bundle kann als Mandant-Plugin oder System-Plugin installiert werden. Eine Anleitung zur Installation von Plugins finden Sie [[hier>>doc:Formcycle.UserInterface.Client.Plugins.WebHome]]. Zu beachten ist hierbei, dass das Plugin nur genau einmal auf dem {{formcycle/}} Server installiert werden darf.
11 +Das Plugin kann als Mandant-Plugin oder System-Plugin installiert werden. Eine Anleitung zur Installation von Plugins finden Sie [[hier>>doc:Formcycle.UserInterface.Client.Plugins.WebHome]]. Zu beachten ist hierbei, dass das Plugin nur genau einmal auf dem {{formcycle/}} Server installiert werden darf.
12 12  
13 13  {{info}}
14 14  Durch dieses Plugin wird ein [[Rollenrecht>>doc:Formcycle.UserInterface.UserSettings.Roles]] erstellt, welches steuert, ob ein Benutzer Zugriff den Menüpunkt zur Konfiguration der Zähler hat. Diese Berechtigungen sollten nach der Installtion vergeben werden.
... ... @@ -16,7 +16,7 @@
16 16  
17 17  == Verwendung anhand von Beispielen ==
18 18  
19 -Im folgenden wird anhand eines Beispielprojekts die Verwendung von verschiedene Komponeten des Plugin-Bundles demonstriert. Das Ziel des Beispiels ist es, für eine Veranstaltung mit 15 Teilnehmern . Dabei werden verschiedene Funktionalitäten des Plugin-Bundles verwendet. Die folgenden Schritte können prinzipiell anhand jedes Formulars nachvollzogen werden. Einzige Voraussetzung ist das Vorhandensein einer Schaltfläche zum Absenden des Formulars.
19 +Im folgenden wird anhand eines Beispielprojekts die Verwendung von verschiedene Komponeten des Datenbankzähler-Plugins demonstriert. Das Ziel des Beispiels ist es, für eine Veranstaltung mit 15 Teilnehmern anzulegen.
20 20  
21 21  === Anlegen eines Zählers ===
22 22  
... ... @@ -48,10 +48,10 @@
48 48  Konfigurieren einer Bedingung für die //Counter//-Plugin-Aktion, welche den Wert des Zählers //BeispielZaehler// um 1 verringert.
49 49  {{/figure}}
50 50  
51 -Um zu verhindern, dass das Formular normal eingeht, wenn es keine freien PLätze mehr gibt und um den Benutzer darüber zu informieren, dass er leider keinen Platz mehr bekommen hat, muss in der Verarbeitung
52 -In der Verarbeitung müssen
53 -Über eine Bedingung an der Aktion für zum verringern des Zählerwertes ist es möglich, zu prüfen, ob der Zählerwert beim Eingang des Fomulars bereits 0 ist. Ist dies der Fall, wird
51 +Um zu verhindern, dass das Formular normal eingeht, wenn es keine freien Plätze mehr gibt und um den Benutzer darüber zu informieren, dass er leider keinen Platz mehr bekommen hat, muss in der Verarbeitung weitere Aktionen eingefügt werden.
54 54  
53 +Über eine Bedingung an der Aktion //TODO// ist es möglich, zu prüfen, ob der Zählerwert beim Eingang des Fomulars bereits 0 ist. Ist dies der Fall, werden nur
54 +
55 55  === Verwendung von Platzhaltern im Formular ===
56 56  
57 57  {{figure image="5_Beispiel_Zahlfeld.png" width="600"}}
... ... @@ -107,7 +107,7 @@
107 107  Folgende Eigenschaften erscheinen, wenn die Option //Automatisch Zurücksetzen// ausgewählt wurde:
108 108  
109 109  {{info}}
110 -Geschieht ein Zurücksetzen des Zählers, so ist nach Ausführung der aktuellen Verarbeitungsaktion (//Counter oder Variable) //der Wert des Zählers gleich dem Startwert. Zum Beispiel: Die Counter-Aktion sei so eingestellt, dass der Zähler um //3// erhöht wird. Weiterhin soll der Zähler täglich zurückgesetzt werden. Der aktuelle Wert sei //37//, der Startwert //11//. Die erste Counter-Aktion, die an einem Tag ausgeführt wird, setzt nun der Wert des Zählers auf den Wert //11// zurück. Das Hochzählen um 3 erfolgt erst ab der zweiten Counter-Aktion an einem Tag.
110 +Geschieht ein Zurücksetzen des Zählers, so ist nach Ausführung der aktuellen //Counter//-Verarbeitungsaktion der Wert des Zählers gleich dem Startwert. Zum Beispiel: Die Counter-Aktion sei so eingestellt, dass der Zähler um //3// erhöht wird. Weiterhin soll der Zähler täglich zurückgesetzt werden. Der aktuelle Wert sei //37//, der Startwert //11//. Die erste Counter-Aktion, die an einem Tag ausgeführt wird, setzt nun der Wert des Zählers auf den Wert //11// zurück. Das Hochzählen um 3 erfolgt erst ab der zweiten Counter-Aktion an einem Tag.
111 111  {{/info}}
112 112  
113 113  {{info}}
... ... @@ -135,12 +135,13 @@
135 135  Die Einstellungen für die Verarbeitungsaktion //Counter//. Hier kann festgelegt werden, welcher Zähler in welcher Weise geändert werden soll (hochzählen, herunterzählen etc).
136 136  {{/figure}}
137 137  
138 -Nach Installation dieses Plugins gibt es in der [[Status- und Aktionsverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] eine neue Aktion namens //Counter//. Mit dieser Aktion kann der aktuelle Zählwert eines statischen Zählers geändert werden.
138 +Nach Installation des Datenbankzähler-Plugins gibt es in der [[Status- und Aktionsverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] eine neue Aktion namens //Counter//. Mit dieser Aktion kann der aktuelle Zählwert eines Zählers verändert werden.
139 139  
140 140  Im der Aktion muss der Zähler fest ausgewählt werden und muss daher zuvor in der [[//Zählerkonfiguration>>||anchor="HEinstellungenimMenFCpunkt22ZE4hlerkonfiguration22"]] (siehe oben) angelegt werden.
141 141  
142 142  ; Zählername
143 -: Auswahl des Zählers, dessen Wert geändert werden soll. Der Zähler sollte vorher in der Zählerkonfiguration angelegt werden, kann aber auch hier neu erstellt werden. Für jeden Zähler wird sowohl sein Name als auch seine {{smallcaps}}Uuid{{/smallcaps}} angezeigt. Die {{smallcaps}}Uuid{{/smallcaps}} dient der eindeutigen Identifikation des Zählers und wird etwa bei der Abfrage per {{smallcaps}}Ajax{{/smallcaps}} verwendet. Um einen Zähler zu löschen, wird dieser ausgewählt und das Papierkorb-Symbol rechts neben der Auswahl betätigt. Um einen neuen Zähler hinzuzufügen, wird zuerst auf das Plus-Symbol gedrückt, anschließend der gewünschte Name des Zählers eingegeben und schließlich der neue Zähler durch Drücken des Plus-Symbols angelegt.
143 +: Auswahl des Zählers, dessen Wert geändert werden soll. Der Zähler muss vorher in der Zählerkonfiguration angelegt werden. Für jeden Zähler wird sowohl sein Name als auch seine {{smallcaps}}Uuid{{/smallcaps}} angezeigt. Die {{smallcaps}}Uuid{{/smallcaps}} dient der eindeutigen Identifikation des Zählers und wird etwa bei der Abfrage per {{smallcaps}}Ajax{{/smallcaps}} verwendet.
144 +
144 144  ; Zählaktion
145 145  : Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
146 146  :; Hochzählen
... ... @@ -154,35 +154,6 @@
154 154  ; Globale Einstellungen nutzen (deprecated)
155 155  : Diese Option sollte angehakt bleiben und dient nur der Abwärtskompatibilität zu älteren Versionen des Plugins. Bei älteren Versionen gab es nicht die Möglichkeit, eine Menüseite im Backend für die Zählerkonfiguration anzulegen, daher musste dies in der Aktionsverarbeitung geschehen. Ist diese Option deaktiviert, erscheinen weitere Einstellungen, die oben im Abschnitt zur Zählerkonfiguration beschrieben sind.
156 156  
157 -== Aktionsverarbeitung "Variable" ==
158 -
159 -{{figure image="plugin_dbcounter_action_variable_de.png"}}
160 -Die Einstellungen für die Verarbeitungsaktion //Variable//. Mit dieser Aktion kann der Zählername dynamisch festgelegt werden, etwa durch den Wert eines Formularelements und wie als Variable genutzt werden.
161 -{{/figure}}
162 -
163 -Nach Installation dieses Plugins gibt es in der [[Status- und Aktionsverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] eine neue Aktion namens //Variable//. Mit dieser Aktion kann der aktuelle Zählwert eines dynamisch festlegbaren Zählers geändert werden.
164 -
165 -Im Unterschied zur Aktion //Counter// kann bei dieser Aktion ein Zähler über seinen Namen ausgewählt werden. Der Name kann frei über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] zusammengefasst werden. Wenn es den Zähler noch nicht gibt, wird ein neuer Zähler mit dem Namen angelegt.
166 -
167 -Daher eignet sich diese Aktion besonders, wenn es eine unbekannte Anzahl von Zählern gibt. Beispielsweise kann diese Aktion für ein Teilnahmeformular genutzt werden, bei dem es jede Woche neue Termine gibt. Für jeden Termin kann dann ein Zähler (etwa im //Format Jahr-Monat-Tag//) benutzt werden, um die Anzahl der Teilnehmer an dem jeweiligen Tag zu zählen.
168 -
169 -=== Variablenänderung ===
170 -
171 -Hier wird der Name der Variable ("Zähler") ausgewählt und in angegeben, in welcher Weise deren Wert geändert werden soll.
172 -
173 -; Zählername
174 -: Auswahl des Zählers, dessen Wert geändert werden soll. Hier wird der Name des Zählers (nicht dessen {{smallcaps}}Uuid{{/smallcaps}}) eingegeben. Zudem können Platzhalter verwendet werden, um den Zählernamen dynamisch zu erzeugen. Etwa kann hier ein Formularfeld mit der {{smallcaps}}id{{/smallcaps}} eines Termins verwendet werden.
175 -; Zählaktion
176 -: Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
177 -:; Hochzählen
178 -:: Erhöht den Wert des Zählers um die eingegebene Zahl.
179 -:; Herunterzählen
180 -:: Erniedrigt den Wert des Zählers um die eingegebene Zahl.
181 -:; Zähler auf Startwert zurücksetzen
182 -:: Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
183 -; Schrittweite
184 -: Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll. Nicht verfügbar, wenn //Zähler auf Startwert zurücksetzen// ausgewählt wurde.
185 -
186 186  == Rückgabeparameter der Aktionen ==
187 187  
188 188  {{figure image="plugin_dbcounter_action_return_parameters_de.png"}}
... ... @@ -189,7 +189,7 @@
189 189  Einstellungen für die Rückgabeparameter der Aktion, die später über Aktionsplatzhalter verfügbar sind.
190 190  {{/figure}}
191 191  
192 -Manchmal ist es notwendig, auf das Ergebnis der Zählaktion zugreifen zu können, etwa den aktuellen Wert oder den Statuscode. Dies kann über [[Aktionsplatzhalter>>doc:Formcycle.UserInterface.Variables]] geschehen, welche auf die Rückgabewerte einer Aktion zugreifen. In den allgemeinen Rückgabeparametern kann eingestellt werden, über welchem Schlüssel auf die Rückgabeparameter Aktion zugegriffen werden kann. Beispielsweise trage die Zähleraktion den Namen //CountUp//. Dann kann über den Platzhalter //[%$CountUp.RESULT[0].currentValue%]// auf den aktuellen Zählwert zugegriffen werden, falls unter bei den allgemeinen Rückgabeparameter der Wert //currentValue// im mittleren Eingabefelder //Counter// eingetragen wurde. Folgende Rückgabeparameter sind verfügbar:
164 +Manchmal ist es notwendig, auf das Ergebnis der Zählaktion zugreifen zu können, etwa den aktuellen Wert oder den Statuscode. Dies kann über [[Aktionsplatzhalter>>doc:Formcycle.UserInterface.Variables]] geschehen, welche auf die Rückgabewerte einer Aktion zugreifen. In den allgemeinen Rückgabeparametern kann eingestellt werden, über welchem Schlüssel auf die Rückgabeparameter Aktion zugegriffen werden kann. Beispielsweise trage die Zähleraktion den Namen //CountUp//. Dann kann über den Platzhalter //[%$CountUp.RESULT[0].Counter%]// auf den aktuellen Zählwert zugegriffen werden. Folgende Rückgabeparameter sind verfügbar:
193 193  
194 194  ; ResultCode
195 195  : Ein nummerischer Zahlenwert, der angibt, ob die Zählaktion erfolgreich war oder nicht. Folgende Ergebnisnummern sind möglich:
... ... @@ -210,43 +210,26 @@
210 210  ; CounterAfterReset
211 211  : Falls der Zähler zurückgesetzt wurde: Der nummerische Wert des Zählers vor dem Zurücksetzen.
212 212  
213 -== Systemplatzhalter-Plugin ==
185 +== Platzhalter ==
214 214  
215 215  {{figure image="dbcounter-plugin-placeholder_de.png"}}
216 216  Ein Beispiel für den Platzhalter zum Auslesen des Zählwerts. Hier wird ein Zähler ausgelesen, der die Anzahl an Anmeldungen für eine Veranstaltung zählt. Dann wird geprüft, ob der Zählwert die maximale Anzahl an Anmeldungen übersteigt. Basierend auf dieser Prüfung kann dem Nutzer dann ein Fehler angezeigt werden, falls die Veranstaltung bereits ausgebucht ist. Hierbei handelt es sich um eine serverseitige Prüfung zur Validierung, bereits im Formular bei der Anmeldung sollte dem Nutzer natürlich schon die Information gegeben werden, ob überhaupt noch Plätze frei sind.
217 217  {{/figure}}
218 218  
219 -Nach Installation des Plugins ist ein neuer [[Systemplatzhalter>>doc:Formcycle.UserInterface.Variables]] verfügbar, über den auf den aktuellen Wert eines Zählers zugegriffen werden kann. Dies ist etwa nützlich, um in einer Aktionsbedingung den Zählwert nutzen und prüfen zu können. Der Platzhalter baut sich nach dem folgenden Schema auf:
191 +Nach Installation des Plugins ist ein neuer [[Template-Platzhalter>>doc:Formcycle.UserInterface.Variables]] verfügbar, über den auf den aktuellen Wert der Zähler zugegriffen werden kann. Dies ist zum Beispiel nützlich, um in einer Aktionsbedingung den Zählwert nutzen und prüfen zu können. Der Platzhalter baut sich nach dem folgenden Schema auf:
220 220  
221 221  {{code language="none"}}
222 -[%$DBCOUNTER.<Zählername>%]
194 +[%$$DBCOUNTER.<Zählername>%]
223 223  {{/code}}
224 224  
225 225  Um also etwa auf den Zähler mit dem Namen //test// zuzugreifen, muss der folgende Platzhalter genutzt werden:
226 226  
227 227  {{code language="none"}}
228 -[%$DBCOUNTER.test%]
200 +[%$$DBCOUNTER.test%]
229 229  {{/code}}
230 230  
231 -Falls auf einen Zähler zugegriffen werden soll, bei dem nicht bekannt ist, ob es diesen schon gibt, muss der Startwert für den Zähler mit angegeben werden. Falls der Zähler noch nicht existiert, wird dann ein neuer Zähler mit diesem Startwert erstellt. Der Platzhalter baut sich dann nach folgendem Schema auf:
203 +{{info}}Bis einschließlich der Version 3.0.0 des Datenbankzähler-Plugins wurden Platzhalter nur über ein Systemplatzhalter-Plugin bereitgestellt und folgten damit dem Schema {{code language="none"}}[%$DBCOUNTER.<Zählername>%]{{/code}}. Diese werden in einer zukünftigen Version des Datenbankzähler-Plugins nicht mehr unterstützt.{{info}}
232 232  
233 -{{code language="none"}}
234 -[%$DBCOUNTER(<Zählername>, <Startwert>)%]
235 -{{/code}}
236 -
237 -Angenommen, der Zähler heiße //teilnehmer-2020-03-17// und soll den Wert //0// erhalten, falls er noch nicht existiert. Dann kann der folgende Platzhalter genutzt werden:
238 -
239 -{{code language="none"}}
240 -[%$DBCOUNTER(teilnehmer-2020-03-17, 0)%]
241 -{{/code}}
242 -
243 -Für die Verwendung der Platzhalter innerhalb des Formulars werden
244 -
245 -
246 -
247 -
248 -
249 -
250 250  == Servlet-Aktions-Plugin ==
251 251  
252 252  {{figure image="dbcounter_plugin_servlet_action.png"}}
... ... @@ -253,29 +253,25 @@
253 253  Beispiel zum Auslesen eines Zählers im Formular mittels {{smallcaps}}Ajax{{/smallcaps}}. Die {{smallcaps}}Url{{/smallcaps}} wird anhand der im Formular zur Verfügung stehenden Metadaten aufgebaut. Hiermit wird vermieden, die {{smallcaps}}Url{{/smallcaps}} hart im Quelltext zu hinterlegen, was zu Fehlern führt, wenn sich etwa der Server oder der Kontextpfad ändern sollte.
254 254  {{/figure}}
255 255  
256 -Nach Installation des Plugins ist eine neue Servlet-Aktion verfügbar, mit der auf den aktuellen Wert eines Zähler zugegriffen werden kann. Dies kann dazu genutzt werden, um aus einem Formular den Wert eines Zählers per {{smallcaps}}Ajax{{/smallcaps}}-Anfrage zu ermitteln. Die {{smallcaps}}Url{{/smallcaps}} für das Servlet baut sich nach dem folgenden Schema auf:
257 -In der Konfigurationsoberfläche des Zählers wird bereits eine Vorlage für einen {{smallcaps}}Ajax{{/smallcaps}}-Zugriff geliefert.
258 -TODO: Für grun gelten die Regeln
211 +Nach Installation des Plugins ist eine neue Servlet-Aktion verfügbar, mit der auf den aktuellen Wert eines Zähler zugegriffen werden kann. Dies kann dazu genutzt werden, um aus einem Formular den Wert eines Zählers per {{smallcaps}}Ajax{{/smallcaps}}-Anfrage zu ermitteln.
259 259  
260 -
261 261  == Zugriff auf Zählerwert mittels AJAX-Request ==
262 262  
263 -Diese werden in der Konfigurationsoberfläche des Zählers angezeigt. Die zurückgegebenen {{smallcaps}}Json{{/smallcaps}}-Objekt enthalten ein Objekt mit dem Namen Counter mit den folgenden Attributen:
264 -
265 -; LastChange
266 -: Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
215 +In der [[//Zählerkonfiguration>>||anchor="HEinstellungenimMenFCpunkt22ZE4hlerkonfiguration22"]] wird eine Vorlage für einen {{smallcaps}}Ajax{{/smallcaps}}-Zugriff auf den jeweiligen Zähler bereitgestellt.
267 267  
217 +Gernerell muss für einen Zugriff auf den Wert eines Zählers per AJAX eine entsprechende {{smallcaps}}Url{{/smallcaps}} verwendet werden. Diese folgt dem folgenden Schema:
218 +
268 268  {{code language="none"}}
269 269  https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&client-id=<Mandant-ID>&id=<Zähler-UUID>
270 270  {{/code}}
271 271  
272 -Falls also etwa {{formcycle/}} lokal unter dem Pfad //xima-formcycle// installiert wurde, der Zähler in einem Formular des Mandanten mit der ID //1// verwendet wird und die {{smallcaps}}Uuid{{/smallcaps}} //bc49d3b0-f869-4e59-864e-ddcc2925ed63// besitzt, dann lautet die {{smallcaps}}Url{{/smallcaps}}:
223 +Falls {{formcycle/}} lokal unter dem Pfad //xima-formcycle// installiert wurde, der Zähler in einem Formular des Mandanten mit der ID //1// verwendet wird und die {{smallcaps}}Uuid{{/smallcaps}} //bc49d3b0-f869-4e59-864e-ddcc2925ed63// besitzt, lautet die {{smallcaps}}Url{{/smallcaps}} dementsprechend:
273 273  
274 274  {{code language="none"}}
275 275  https://localhost:8080/xima-formcycle/plugin?name=Servlet%20Counter&client-id=1&id=bc49d3b0-f869-4e59-864e-ddcc2925ed63
276 276  {{/code}}
277 277  
278 -Alternativ ist es auch möglich, statt der //client-id// die {{smallcaps}}id{{/smallcaps}} des Formulars zu verwenden. Diese {{smallcaps}}id{{/smallcaps}}s lediglich verwendet, um das Servlet-Aktions-Plugin zu bestimmen, welches ausgeführt werden soll, und werden von diesem konkreten Plugin nicht ausgewertet:
229 +Alternativ ist es auch möglich, statt der //client-id// die {{smallcaps}}id{{/smallcaps}} des Formulars zu verwenden:
279 279  
280 280  {{code language="none"}}
281 281  https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&project-id=<Formular-ID>&id=<Zähler-UUID>
... ... @@ -341,6 +341,7 @@
341 341  
342 342  * Verbesserung der Oberfläche für die Zählerkonfiguration
343 343  * Entfernen der Aktion //Variable ändern//
295 +* Einführen neuer Template-Platzhalter.
344 344  
345 345  === 3.0.0 ===
346 346  
1_Beispiel_Zaehler.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.gru
Größe
... ... @@ -1,0 +1,1 @@
1 +155.7 KB
Inhalt