FORMCYCLE 7.4.0


Feb. 20 2023

Download 7.4.0

Features

Backend

  • Bei Datenbankabfragen war es bisher schon möglich, gewisse Platzhalter zu verwenden. Nun ist es auch möglich, Benutzerplatzhalter wie [%USER.id%] oder [%LAST_USER.id%] zu verwenden. Dies ist auch bei LDAP-Abfragen möglich. Falls in einem Formular eine Datenbank- oder LDAP-Abfrage gestartet wird, ist es wichtig, über den Parameter frid die aktuelle ID der Formularsitzung mitzusenden. Wird das vom Code-Editor zur Verfügung gestellte Template verwendet, ist dies bereits der Fall.
  • Bei Terminplänen unter Terminverwaltung ist es nun möglich, frei definierbare Titel und Beschreibungen zu hinterlegen, welche für die Termine der erzeugten ICAL-Datei verwendet werden. Hierbei können Platzhalter sowie I18N-Variablen verwendet werden.

Formular-Designer

  • Wird eine Datenquelle für ein Auswahlelement verwendet, ist es nun möglich, neben der Spalte für Anzeigetext und Wert auch die Spalte für den Titel der Option zu konfigurieren. Der Titel wird etwa dem Nutzer angezeigt, wenn das Auswahlelement als Checkboxen oder Radio-Buttons dargestellt wird und der Nutzer mit der Maus über die Option fährt.
  • Bisher wurden bei Auswahlelementen mit Datenquellen immer data-Attribute erzeugt (z.B. data-col0, data-col1), welche die Werte jeder einzelnen Spalte enthielten. Es ist nun möglich, dies am Auswahlelement zu deaktivieren, sodass diese Attribute nicht mehr erzeugt werden.

Changes

Backend

  • In der ICAL-Datei mit allen Terminen eines Terminplans werden nun die Felder X-PUBLISHED-TTL sowie REFRESH-INTERVAL gesetzt. Das erleichtert es etwa Mail-Programmen, herauszufinden, wie oft nach neuen Terminen geschaut werden soll. Aktuell ist dieser Wert auf 1 Stunde gesetzt.
  • Das Verzeichnis, in welches Dateien temporär für den Scan nach Malware geschrieben werden, wird nun unter System -> Server-Informationen an der Oberfläche angezeigt.

Workflow

  • Bei der Aktion Word-Fill werden nun aus Sicherheitsgründen bei Merge-Feldern nicht mehr automatisch die Texte von Formularfeldern als HTML interpretiert. Falls HTML gewünscht ist, muss dies explizit durch Nutzung der Funktion "html" getan werden, zum Beispiel "tf1.html()".

Formular-Designer

  • Bei den Bedingungen eines Formularelements ist es bereits möglich, eine eigene Formel mit einem JavaScript-Ausdruck zu verwenden, beispielsweise [%tf1%] == "Test". Neu hinzugefügt wurde nun, dass der This-Kontext dieser Formel auf die JQuery-Instanz mit dem aktuellen Formularelement gesetzt wird. Dies ist besonders bei wiederholten Elementen hilfreich, um auf die aktuelle Wiederholung zuzugreifen. Wenn beispielsweise tf1 und sel1 zwei Formularfelder innerhalb eines wiederholten Containers fs1 sind, dann kann die Formel this.closest(".dynamic-row").find("[data-org-name='sel1']").val() === "5" für tf1 verwendet werden, um zu überprüfen, ob das zugehörige Auswahlfeld sel1 im gleichen wiederholten Container den Wert 5 hat.

Fixes

Backend

  • Exportierte Formulare mit einem manuell angelegten Status namens "Eingegangen" oder "Received" können wieder importiert werden.
  • Diverse kleine Fehlerbehebungen und Verbesserungen der Sicherheit. Hierfür wurden insbesondere auch verwendete Bibliotheken aktualisiert.

Frontend-Formulare

  • Externe Nutzer, welche über Open-ID-Connect angebunden sind, können sich nun auch wieder am Formular anmelden, wenn das Formular über einen Frontend-Server aufgerufen wird.
  • Das automatische Hochladen bei Upload-Elementen funktioniert nun auch wieder bei Formularen, welche per AJAX oder über die API eingebunden sind.
  • Wurde in einem Formular ein Terminkalender ausgewählt und die serverseitige Validierung an irgendeinem Element aktiviert, wurde der ausgewählte Termin gelöscht, falls das Formular abgesendet wurde und der Server die abgesendeten Daten abgelehnt hat. Dies wurde behoben, sodass der ausgewählte Termin auch weiterhin ausgewählt bleibt.
  • Wird ein Element wiederholt geschaltet, kann zudem noch ein anderes Element als Trigger für die Wiederholung festgelegt werden. Beispielsweise kann ein Textfeld als Trigger verwendet werden, sodass im Textfeld die Anzahl der Wiederholungen steht und bei Änderungen des Werts im Textfeld sich auch die Anzahl der Wiederholungen befindet. Im letzteren Fall konnte es vorkommen, dass in der neu hinzugefügten Wiederholung der Initialzustand von Bedingungen wie Versteckt-Wenn nicht korrekt gesetzt war. Dies wurde behoben.
  • Betrifft Auswahlelemente, für welche die Option Autocomplete aktiviert ist:
    • Neben dem <select>-Element wird aus technischen Gründen auch ein <input>-Element generiert. Der Name dieses <input>-Elements erhält die Nachsilbe _autocomplete. (etwa "sel1_autocomplete"). Auch das Attribut data-name wird nun korrekt auf den abgeleiteten Namen gesetzt.
    • Seit Version 7.0 wurde bei der Auswertung von Bedingungen wie Versteckt-Wenn fälschlicherweise der im Textfeld eingetragene Wert zum Prüfen der Bedingung verwendet. Dies wurde korrigiert, sodass nun der Wert der ausgewählten Option verwendet wird. Zur Wahrung der Abwärtskompatibilität wurde eine neue Einstellung im Formulardesigner rechts im Eigenschaften-Panel bei Formular eingeführt. Ganz unten bei Fortgeschritten findet sich die Option Bei Autocomplete Text der Option für Bedingungen verwenden. Bei bestehenden Formular ist diese aktiviert, bei neuen Formularen deaktiviert. Wir empfehlen, diese Option bei neuen Formularen auch deaktiviert zu lassen.

Formular-Designer

  • Ein Fehler, bei dem die CSS-Klassen des zuletzt selektierten Elements auf alle Elemente angewandt wurde, ist nun behoben. Dieser Fehler konnte nur auftreten, wenn mehrer Elemente gleichzeitig markiert wurden.
  • Der W3C-konforme Modus ist initial bei alten Formular wieder deaktiviert. Bei neuen Formular ist dieser standardmäßig weiterhin aktiviert. 

Workflow

  • Der Dialog zum Laden ungespeicherter Änderungen schließt sich nun nach Knopfdruck wieder.
  • Falls bei der Aktion HTTP-Request vom Server eine Weiterleitungs-URL (HTTP-Header: Redirect) zurückgeliefert wird und es sich dabei um eine relative URL handelt, wird diese gemäß RFC 7231 nun korrekt gegen die Anfrage-URL aufgelöst. Bisher wurden relative URLs nicht aufgelöst.
    • Weiterhin wurde eine Auswahl eingeführt, die es ermöglicht, relative URLs wie bisher nicht oder gegen eine selber definierte Basis-URL aufzulösen.

Für Plugin-Entwickler

  • Auf den Inhalt der Formularsitzung (Form-Request-Session, "FRQSession") kann nun innerhalb von IPluginFormPreRender, IPluginFormPrePersist, IPluginFormPreProcess, IPluginFormPreResponse sowie in Workflow-Aktions-Plugins und potentiell auch Platzhalter-Plugin zugegriffen werden. Weiterhin ist es über den Rückgabewert auch möglich, Werte in die FRQ-Session zu schreiben.
  • Weiterhin ist es nun auch möglich, IPluginFormPreRender nicht nur bei Ausliefern eines Formulars über die /form/provide-URL auszuführen, sondern etwa auch beim Öffnen des Formulars im Postfach oder beim Druck über den Print-Service. Hierzu hat das Plugin eine neue Methode shouldExecute, welche entsprechend überschrieben werden kann.
  • Es wurden diverse Bibliotheken aktualisiert

Checksummen