Aller au contenu principal
Jahia Store
FR

Formidable Engine

prereleased
Télécharger 0.4.0

Informations

Identifiant du module
formidable-engine
Identifiant de groupe
org.jahia.modules
Statut
prereleased
Catégorie
Forms
Auteur
JSG
Site web du développeur
http://www.jahia.com
Nécessite Jahia
8.2.2.0
Mis à jour
2026-09-08
Source
scm:git:git@github.com:Jahia/formidable.git

Formidable is Jahia’s next-generation form-building solution, designed to progressively replace Jahia Forms. It provides a modular architecture to design forms, render them in modern front-end experiences, validate and process submissions server-side, and manage results in Jahia.

Fields, form structure and rendering views are provided by Formidable Elements and optional add-on field types by Formidable Extended Inputs 

 

 

Dépendances

Modules dépendants

Aucun module n'en dépend.

Versions

Breaking Changes

  • Changed source-based option settings to be required: a choice field must name the source its options mode needs

    Breaking change. You are affected if you create or import forms programmatically with a source-based options mode: the field can no longer be saved without the settings that mode needs — the source for a declared source, the root category for category options, the root node and content type for content options. The list of manually typed options is NOT required. In the editor nothing changes beyond the standard required indicators; existing forms are not modified, but the next edit of an incomplete field asks for the missing values.

  • Changed choice-field option storage to one shared format; existing forms are converted automatically at startup

    Breaking change. You are affected if you built custom views, queries or integrations that read a choice field's option list directly from its stored properties: selects, radios and checkboxes previously each stored their options under their own property, and they now all share a single one. Regular forms need no action: the conversion runs once when the new version starts, in both edit and live, and published forms keep rendering without a republish.

    One case needs attention: a form export made with version 0.3.0 or earlier and imported into an instance already running this version shows empty option lists on its choice fields until the server restarts, which re-runs the conversion. Restart after such an import, or re-save the options in the editor.

  • Changed the form rendering module's identity; upgrading from 0.3.0 or earlier requires a one-time reinstall

    Breaking change. You are affected if any version up to 0.3.0 of the form rendering module is installed: uploading the new version fails with "Module upload failed because another module formidable-elements exists."

    Earlier versions were packaged under a placeholder group id; the module is now published under the official Jahia group id, as required for distribution on the Jahia App Store. Jahia treats a module with the same name but a different group id as a different module and blocks the upload.

    To upgrade, in Administration > Server > Modules and Extensions > Modules:

    1. Upgrade formidable-engine to the new version first, with "Validate module definitions" unticked: the new version removes submission properties no version since 0.2.0 has written, so the validation rejects the upload as a major definition change. This is expected — values stored by a 0.1.x instance are left in place.
    2. Stop and uninstall the old formidable-elements. Do not tick the option to delete the module content when uninstalling — that choice erases every form and every submission stored in the repository. Left unticked, forms and submissions are fully preserved; forms simply stop rendering while the module is absent.
    3. Install the new formidable-elements, with "Validate module definitions" unticked: the new version reorganizes some field properties, so the validation rejects the upload as a major definition change. This is expected — the automatic content migrations take over for the existing content.
    4. Re-enable formidable-elements on every site that uses it: the uninstall removed it from the sites' enabled modules, and forms show a "Module error" box until it is enabled again. A server restart does not repair this; re-enabling the module does, immediately.
    5. Check that forms render again. Existing content is migrated automatically; the migrated fields may show as modified (pending publication) afterwards — nothing is actually pending, publishing them is optional and only clears the flag.

    This is a one-time procedure: later upgrades install in place as usual. The full walkthrough, with the exact messages to expect, is in docs/upgrade-notes.md.

New Features

  • Added a ready-made title to every new form action
  • Added a New content button to every step and field group in the Page Builder, so an empty one can be filled
  • Improved form authoring with colour-coded zones and icons telling steps, fields and contents apart
  • Added a translatable title to the field and action lists of a form, shown in the Page Builder
  • Added live input-mask guidance while typing in text fields
  • Added contributor-authored rich text help under form field labels
  • Improved the select option rows with clearer placeholders and hover hints
  • Added choice-field options filled live from admin-declared sources or categories
  • Improved the form preview in jContent: every step and conditional field is shown, instead of a frozen first step
  • Added choice-field options filled live from the site contents under a picked root

    The submitted value is the content path relative to the picked root, and the list is capped by a configurable limit: above it the field reports an error instead of silently truncating the options. Note that publishing the form also publishes the picked root and the contents under it; mark drafts as work in progress to keep them out.

  • Added support for array entries in datalayer visibility rules (for example dataLayer.0.event)
  • Added browser variables (such as datalayer entries) as conditional logic sources
  • Added date and datetime bounds that follow the submission day, e.g. no birth date in the future

    Upgrade impact. You are affected if your forms use minimum or maximum dates: each bound is now a choice between a fixed date and the current date, and existing fixed bounds are converted automatically when the new version starts, in both edit and live — published forms keep rendering without a republish. Follow the documented installation order (see the upgrade notes), as for every upgrade that changes content definitions.

    One case needs attention: a form export made with version 0.3.0 or earlier and imported into an instance already running this version keeps its date bounds enforced when the form is submitted, but the date pickers and the editor do not show them until the server restarts, which re-runs the conversion. Restart after such an import, or re-select the bounds in the editor.

  • Added date bounds at an offset from the submission day, e.g. age limits or booking windows
  • Added the German and Spanish translations of every form element and form action label
  • Added optional rating, scale, switch and consent fields, logic-ready and validated server-side
  • Added numeric and boolean logic operators, with rules that survive renames, copies and imports
  • Changed the editing of multi-step forms: every step is shown at once while authoring, with no step navigation
  • Added a number field with spinner, minimum/maximum/step constraints and range validation messages
  • Added a slider field with range bounds, end labels and tick marks, counted as answered on interaction
  • Hardened form submissions by rejecting values for fields proven hidden by their display conditions
  • Added URL parameters and cookies as conditions for showing or hiding a form field
  • Added a style hook on fields driven by conditional logic, so template sets can flag them, notably in edit mode
  • Added text, textarea and email fields as conditional logic sources (filled, empty, equals, contains)
  • Added conditional logic date criteria that compare against the submission day instead of a fixed date
  • Added a maintenance message on forms that store submissions while the platform is in read-only mode

    The message is editable per form and per language in the Response Messages tab, pre-filled with a translated default.

  • Added translated default success and error messages, prefilled on newly created forms
  • Added a configurable empty option label on select fields, so they start empty instead of preselecting a value

    Single-choice selects only: the option is not rendered on multiple selects. Starting empty makes the required validation of the field effective in the browser.

Bug Fixes

  • Changed failed submissions to answer with the status the failing action reported instead of a generic one
  • Hardened submissions: a form declaring no field no longer stores arbitrary posted values
  • Improved memory use when sending large form attachments by email
  • Fixed form submissions being rejected for logged-in visitors by the Jahia CSRF protection

    Affects platforms running jahia-csrf-guard 4.3 and later: authenticated visitors received an error on every form submission, while anonymous visitors were unaffected. Cross-site submissions remain rejected by the built-in origin check.

  • Improved the upgrade: sites that lost the form rendering module get it re-enabled automatically
  • Fixed the CAPTCHA checkbox sometimes not appearing when the provider script takes time to load
  • Hardened the automatic conversion of choice options so one broken field no longer blocks the others
  • Fixed conditions on an enclosing section being skipped when a field shares its section's name
  • Fixed submissions failing with a server error when a field shares its name with the section holding it
  • Fixed the contributor guide's outdated description of how form field types are structured
  • Fixed the security guide overstating the protections applied to submissions from logged-in visitors
  • Changed the custom CSS field of a form to advise styling from the site instead, and fixed two wrong hints
  • Secured the results CSV export against spreadsheet formula injection from submitted values
  • Fixed custom form styles being dropped when a rule used quotes, '>' or an attribute selector
  • Improved diagnostics: a condition whose source field was deleted is now reported in the server logs
  • Fixed the upgrade guide and developer documentation drifting from the released behavior
  • Fixed a display glitch when a form intro or message contains rich text
  • Removed the unused submission metadata definitions (IP address, user agent, username); old stored values are kept
  • Fixed a newly created fieldset offering no way to add fields from the Page Builder
  • Improved failed submissions: the form now stays on screen with its values so visitors can simply retry
  • Fixed form elements leaving a stray identity value on each translation, which made content-integrity scans fail
  • Improved the content list offered inside a form: fields are grouped together, apart from steps and blocks
  • Fixed the Page Builder create buttons of a form, which showed technical names for field, content and step types
  • Fixed removing a form from a page: deleting now removes the reference, and Go to source opens the form
  • Fixed conditions and labels being altered on native fields that reuse the migration's value-realignment path
  • Fixed submissions being rejected after a section was hidden while a field inside it had its condition met
  • Fixed forms refusing to send while a required choice field was hidden by conditional logic
  • Removed a misleading unused dependency declaration from the form modules' build files
  • Fixed fields hidden by a visibility rule staying editable: rules no longer apply while a form is being edited
  • Improved the conditional logic editor: aligned fields, searchable selectors, errors shown on the faulty rule
  • Changed rule saving so a visibility rule whose target was never chosen is removed instead of hiding the field

    Rules whose reference is filled but invalid are kept and shown in error in the editor.

  • Changed the maintenance message to replace the form: nothing can be retried while the platform is read-only
  • Fixed choice option values diverging between languages: every language now shares the default language's set

    Options are authored in the site's default language; every other language receives that list and translates only the labels. The options list is no longer required, so visiting another language never blocks saving a form field.

  • Fixed dates shown one day early in confirmation messages for visitors in timezones west of UTC
  • Fixed numeric-looking answers such as postal codes being reformatted in confirmation messages
  • Fixed a field upgraded from an earlier version ignoring every later publication on the live site
  • Fixed an upgrade issue where option lists translated before the upgrade lost their labels in other languages
  • Fixed choice options and date bounds of 0.3-era forms staying unmigrated after the upgrade
  • Fixed multi-step forms briefly showing the wrong buttons before the page finished loading
  • Fixed conditional logic ignoring all but the innermost condition when sections with conditions are nested
  • Changed the Page Builder boxes: field groups share one colour, the field list keeps the default look
  • Hardened submissions: uploads are only accepted on file fields, and only forms accept submissions
  • Fixed a harmless error logged at startup during an upgrade before all form modules were updated
  • Fixed slider values losing their localized formatting in confirmation messages
  • Fixed the upgrade guide to cover the definition warning shown when updating from older versions
  • Improved the automatic module re-enabling to run once per site, so deliberately disabling it afterwards sticks
  • Fixed access to form results: granting or revoking the reader role now takes effect after publication
  • Fixed two simultaneous first submissions splitting a form's results in two
  • Improved the results screen and exports: submission values follow the order of the fields in the form
  • Improved the reliability of the built-in results reader role titles
  • Fixed conditions showing an empty value in languages whose migrated option lists still diverge
  • Fixed conditions written before the upgrade never matching again once their option values were unified
  • Fixed accented characters showing as garbled text in the sample options source labels
  • Improved help texts and validation messages so they behave consistently across all field types
  • Fixed snapshot builds presenting themselves as the final release, which blocked installing the actual release
  • Improved the custom options-source guidance: a static localized list replaces the repository-reading example
  • Fixed hiding the steps indicator also disabling step-by-step display and validation
  • Fixed step titles disappearing everywhere when the steps navigation option is turned off
  • Fixed translated option labels being lost when a migrated choice field was first saved after the upgrade
  • Secured file type detection by upgrading an embedded third-party library flagged by vulnerability scanners
  • Improved the upgrade guide with the recovery path for modules installed in the wrong order
Nécessite Jahia 8.2.2.0Mis à jour 2026-09-08