| ... | ... | @@ -1,24 +1,22 @@ | 
              
                    | 1 | 1 | {{content/}} | 
              
                    | 2 | 2 |  | 
              
                    | 3 | 3 | {{id name="fig_counter"/}} | 
              
                    | 4 |  | -{{figure image="counter_de.png"}}Konfigurationsoberfläche zum Anlegen von Zählern: (1) Liste existierender Zähler, (2) Bereich zum Editieren der selektierten Zähler, (3) Metadaten des Zählers.{{/figure}} | 
              
                    |  | 4 | +{{figure image="counter_de.png" clear="h1"}}Konfigurationsoberfläche zum Anlegen von Zählern: (1) Liste existierender Zähler, (2) Bereich zum Editieren der selektierten Zähler, (3) Metadaten des Zählers.{{/figure}} | 
              
                    | 5 | 5 |  | 
              
                    | 6 |  | -Die Werte der Zähler können mit der Aktion [[ TODO>>TODO]] verändert und über [[Platzhalter>>TODO]] ausgelesen und so zum Beispiel in [[Bedingungen>>TODO]] verwendet werden. | 
              
                    |  | 6 | +Die Werte der Zähler können mit der Aktion [[Zähler ändern>>doc:Formcycle.Designer.Workflow.Actions.ModifyCounter]] verändert und über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] ausgelesen und so zum Beispiel in [[Bedingungen>>doc:Formcycle.Designer.Workflow.FlowControl.Condition]] verwendet werden. | 
              
                    | 7 | 7 |  | 
              
                    | 8 | 8 | == Anlegen eines Zählers == | 
              
                    | 9 | 9 |  | 
              
                    | 10 |  | -Öffnen Sie das Modul "Daten > Zähler" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopfzeile der Liste (siehe Punkt 1 in der [[Abbildung>>||anchor="fig_counter"]]). Daraufhin können die entsprechenden [[Einstellungen>> TODO Anchor]] für den Zähler getroffen werden und der Zählerist . | 
              
                    |  | 10 | +Öffnen Sie das Modul "Daten > Zähler" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopfzeile der Liste (siehe Punkt 1 in der [[Abbildung>>||anchor="fig_counter"]]). Daraufhin können die entsprechenden [[Einstellungen>>||anchor="HKonfigurationsoptionen"]] für den Zähler getroffen werden. Mit einem Klick auf die Schaltfläche //Speichern// wird der Zähler angelegt. | 
              
                    | 11 | 11 |  | 
              
                    | 12 |  | - {{lightbox image="counter_new_de.png" title="Oberfläche zum Anlegeneines neuen Zählers"/}} | 
              
                    |  | 12 | +== Konfigurationsoptionen == | 
              
                    | 13 | 13 |  | 
              
                    | 14 |  | -== Konfiguration == | 
              
                    | 15 |  | - | 
              
                    | 16 | 16 | ; Name | 
              
                    | 17 |  | -: | 
              
                    |  | 15 | +: Name des Zählers | 
              
                    | 18 | 18 | ; Aktueller Wert | 
              
                    | 19 |  | -: | 
              
                    |  | 17 | +: Hier wird der aktuelle Wert des Zählers angezeigt. Nach einen Klick auf das Stiftsymbol kann der Wert angepasst und über ein Klick auf den Haken übernommen werden. | 
              
                    | 20 | 20 | ; Automatisch zurücksetzen | 
              
                    | 21 |  | -: Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetz zt werden soll: | 
              
                    |  | 19 | +: Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetzt werden soll: | 
              
                    | 22 | 22 | :; Startwert | 
              
                    | 23 | 23 | :: Wert auf den der Zähler zurückgesetzt werden soll | 
              
                    | 24 | 24 | :; Bedingung | 
                      
        | ... | ... | @@ -29,7 +29,7 @@ | 
              
                    | 29 | 29 | ::: - wöchentlich | 
              
                    | 30 | 30 | ::: - monatlich | 
              
                    | 31 | 31 | ::: - jährlich | 
              
                    | 32 |  | -:: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar | 
              
                    |  | 30 | +:: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar: | 
              
                    | 33 | 33 | ::; Wert | 
              
                    | 34 | 34 | ::: 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. | 
              
                    | 35 | 35 | ::; um | 
                      
        | ... | ... | @@ -50,3 +50,73 @@ | 
              
                    | 50 | 50 | ; Geändert am | 
              
                    | 51 | 51 | : Zeitpunkt, an dem zum letzten Mal Änderungen am Zähler vorgenommen wurden | 
              
                    | 52 | 52 |  | 
              
                    |  | 51 | +== Platzhalter == | 
              
                    |  | 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: | 
              
                    |  | 54 | + | 
              
                    |  | 55 | +{{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}} | 
              
                    |  | 56 | + | 
              
                    |  | 57 | + | 
              
                    |  | 58 | +== Zugriff auf Zählerwert per Servlet == | 
              
                    |  | 59 | + | 
              
                    |  | 60 | +=== Servlet-URL und Parameter  === | 
              
                    |  | 61 | + | 
              
                    |  | 62 | +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: | 
              
                    |  | 63 | + | 
              
                    |  | 64 | +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}} | 
              
                    |  | 65 | +und | 
              
                    |  | 66 | +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}} | 
              
                    |  | 67 | + | 
              
                    |  | 68 | + | 
              
                    |  | 69 | +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. | 
              
                    |  | 70 | + | 
              
                    |  | 71 | +=== Rückgabewerte === | 
              
                    |  | 72 | + | 
              
                    |  | 73 | +Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur: | 
              
                    |  | 74 | +; success | 
              
                    |  | 75 | +: Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte. | 
              
                    |  | 76 | +; msg | 
              
                    |  | 77 | +: Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//. | 
              
                    |  | 78 | +; result | 
              
                    |  | 79 | +: 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: | 
              
                    |  | 80 | +:; lastChange | 
              
                    |  | 81 | +:: Formatierte Ausgabe von Datum und Uhrzeit der letzten Änderung des Zählerwertes | 
              
                    |  | 82 | +:; lastChangeTimestamp | 
              
                    |  | 83 | +:: Epoche der letzten Änderung des Zählerwertes | 
              
                    |  | 84 | +:; name | 
              
                    |  | 85 | +:: Name des Zählers | 
              
                    |  | 86 | +:; uuid | 
              
                    |  | 87 | +:: UUID des Zählers | 
              
                    |  | 88 | +:; value | 
              
                    |  | 89 | +:: Aktueller Zählerwert | 
              
                    |  | 90 | + | 
              
                    |  | 91 | +=== Beispiel für eine AJAX-Anfrage im Formular === | 
              
                    |  | 92 | + | 
              
                    |  | 93 | +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: | 
              
                    |  | 94 | + | 
              
                    |  | 95 | +{{code language="javascript"}} | 
              
                    |  | 96 | +$.ajax({ | 
              
                    |  | 97 | +    method: "GET", | 
              
                    |  | 98 | +    url: XFC_METADATA.urls.counter_client, | 
              
                    |  | 99 | +    data: { | 
              
                    |  | 100 | +        name: "Beispielzähler", | 
              
                    |  | 101 | +        frid: XFC_METADATA.currentSessionFRID, | 
              
                    |  | 102 | +    } | 
              
                    |  | 103 | +}).then(function(data) { | 
              
                    |  | 104 | +    if (data.success) { | 
              
                    |  | 105 | +        $('[data-name="tf1"]').val(data.result.value); | 
              
                    |  | 106 | +    } else { | 
              
                    |  | 107 | +        console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg); | 
              
                    |  | 108 | +    } | 
              
                    |  | 109 | +}).catch(function(jqXHR, errorTextStatus, errorThrown) { | 
              
                    |  | 110 | +    console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")"); | 
              
                    |  | 111 | +}); | 
              
                    |  | 112 | +{{/code}} | 
              
                    |  | 113 | + | 
              
                    |  | 114 | +=== Einfügen eines Templates für eine AJAX-Anfrage im Formular === | 
              
                    |  | 115 | + | 
              
                    |  | 116 | +{{figure image="counter_query_de.png"}}Auswahl des Templates für die Zähler-Abfrage im JavaScript-Bereich des Formulardesigners.{{/figure}} | 
              
                    |  | 117 | + | 
              
                    |  | 118 | +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. | 
              
                    |  | 119 | + | 
              
                    |  | 120 | +Nachdem das Template eingefügt wurde, müssen die benötigten Funktionaltitäten hinzugefügt und der Name des Zählers abgeändert werden. |