Form Builder Reference Links - novacode-nl/odoo-formio GitHub Wiki

Please consider:

Some Formio settings (fields) don't apply in Odoo, those are still displayed tough.
(these either apply to the Formio Node.js sever, or SAAS platform)

Below some useful topics and links to the Formio Documentation.
On those pages you often see the JSON data, which really helps understanding, but you'll need to rethink/transform when using the GUI Form Builder (component setting fields).

Formio User Guide

https://help.form.io/userguide/form-components

(Useful) Conditional components https://help.form.io/userguide/form-components/#conditional-components

Choices.js Options (eg for select components)

https://github.com/Choices-js/Choices#configuration-options

Especially useful for:

  • noChoicesText
  • noResultsText

Example:

{
  "noChoicesText": "No products in catalogue to choose from",
  "noResultsText": "No products found in catalogue"
}

Wizards

https://formio.github.io/formio.js/app/examples/wizard.html

The Odoo Forms (formio) integration supports basic Wizards.

Tabs and Wizards are fairly similar in most of their aspects, except:
Tabs do not have controls and neither they are disabled before the user fills out the previous one e.g. with required input components.

Conditional Wizards

https://formio.github.io/formio.js/app/examples/conditionalwizard.html

Not only can you build multi-page forms, but you can also create conditional wizards where the pages are determined by conditional logic that is executed as the person is filling out the form.

Conditional Forms (components)

https://formio.github.io/formio.js/app/examples/conditions.html

Field Logic

https://formio.github.io/formio.js/app/examples/fieldLogic.html

You can use field logic to dynamically change field component definitions based on many different triggers. For example, you can make a field required based on another field’s value or change another fields value.

Data Grid Panels

https://formio.github.io/formio.js/app/examples/datagrid2.html

Save as draft (button)

It's also possible to setup a "save as draft" button and storage; works with Odoo.
An example is available in the demo data: https://github.com/novacode-nl/odoo-formio/blob/14.0/formio/data/formio_demo_data.xml

External Sources & Conditional Selects

https://formio.github.io/formio.js/app/examples/external.html

The Select component allows you to connect to external data sources as well as perform look ahead searching within that data source.

Calculated Values

https://formio.github.io/formio.js/app/examples/calculated.html

You can use JSON Logic to create complex calculated values based on the values of other fields.