Friday, October 5, 2018

Orbeon Forms 2018.1.2 PE

Today we released Orbeon Forms 2018.1.2 PE. This update to Orbeon Forms 2018.1 PE contains bug-fixes and is recommended for all Orbeon Forms 2018.1 PE users.

This release addresses the following issues:
  • JavaScript error with mirrorContainer (#3758)
  • Copy/paste of control with multiple alerts is done incorrectly (#3737)
  • Copy/paste fr:explanation doesn’t update the control name (#3760)
  • Control Settings always shows puzzle icon for appearances (#3771)
  • Not enough space between repeated section separator an next section (#3745)
  • Show section titles properly to the right (#3306)
You can download the latest version of Orbeon Forms from the downloads page.

Don’t forget to grab a trial license for the PE version.

Please send feedback:
We hope you enjoy this release!

Thursday, October 4, 2018

Dynamic labels, hints, and help messages

A form field typically has an associated label which indicates what the field is about. For example "Name" or "Street" or "Comments". Usually, labels are defined once in for all for a given language.

But there are cases where it is useful to allow those to change dynamically, depending for example on the value of other controls. For example, make a selection:
Then use the value of that control in the label of another control (typically in a subsequent wizard step). Here the "chocolate" part comes from the previous selection:
You express this in the Control Settings dialog by writing the label as a template, and by specifying what value should go in the placeholders.


The template uses curly brackets enclosing a parameter name. You assign values to each parameter in the template. This allows localizing the label, while not having to repeat the template parameters assignments.

The value of a template parameter can be:
  • the value of another form control
  • a formula
With Orbeon Forms 2018.1, this feature doesn't only apply to control labels:
  • Form controls can have dynamic labels, hints, and help messages.
  • Sections can have dynamic labels and help messages.
Learn more about this feature in the documentation:

Wednesday, September 26, 2018

Simple data migration

Managing change is difficult and forms are no exception. For example, you might make a form available to users, and they start entering data. But then you realize that you need to capture just a bit more information than you had initially thought. So what do you do? You go back to Form Builder, add a few form fields, and that's where things become tricky!

Since Orbeon Forms 4.5, Orbeon Forms has supported form definition versioning to help with this scenario. Versioning introduces the idea that published form definitions also have a version number. Version numbers start with "1" and increase from there: version 2, version 3, etc. So you can talk about "version 2 of the Acme Order form". This allows you to make changes to form definitions, without worrying about the compatibility of the data already captured.

One drawback is that different form versions behave like entirely different forms: version 2 of the Acme Order form cannot read data already captured with version 1 of the Acme Order form.

So Orbeon Forms 2018.2 introduces an additional way to manage change, called simple data migration. This is an option which sits between "overwrite an existing form definition in an incompatible way" and "create a whole new form definition version": when enabled in the form settings, simple data migration allows you to overwrite an existing form definition, but keep certain changes compatible, such as adding and removing controls, grids or sections.

So how does it work? It's simple: when you load existing data with the updated form definition, placeholders for the missing data is automatically added (and the extra data is automatically removed). This allows the user to enter the information associated with the new form controls.
Simple Data Migration setting
Note that some changes remain incompatible with simple data migration. For example, structural changes such as moving controls, grids or sections between sections. In short, consider that simple data migration works for adding and removing a few controls to your form.

For more information, see the documentation. We have also generally updated our documentation on versioning. We hope you will like this new feature!

Tuesday, September 18, 2018

Orbeon Forms 2018.1.1 PE and CE

Today we released Orbeon Forms 2018.1.1 PE and Orbeon Forms 2018.1.1 CE. This update to Orbeon Forms 2018.1 contains bug-fixes and is recommended for all Orbeon Forms 2018.1 users. [1]

This release addresses the following issues:
  • convert to List first so indexes are in expected order (#3736)
  • max-width not to apply to label/hint (#3730)
You can download the latest version of Orbeon Forms from the downloads page.

Don’t forget to grab a trial license for the PE version.

Please send feedback:
We hope you enjoy this release!

  1. Exceptionally, we also released a point release for the Community Edition, 2018.1.1 CE, due to the severity of issue #3736.  ↩

Thursday, September 6, 2018

Orbeon Forms 2018.1

Today we released Orbeon Forms 2018.1, the first major release of Orbeon Forms in 2018! This release is packed with new features and enhancements which should help form authors and form users be more productive.

Major features and enhancement

    Performance enhancements for large forms

    Large forms (with hundreds or even thousands of form fields) using the wizard view now use much less HTML markup, as only the content of the visible page is sent to the web browser (lazy page load). In order for this to be effective, your form should be split into sections and subsections.

    The Number and Currency fields use less HTML markup. This is useful for forms which have a large number of such fields.

    The wizard view and the error summary have been improved to update faster for large forms. In addition, the error summary no longer shows all the errors immediately when a large number of errors is present. (doc)

    Drag and drop of grid cell boundaries

    Orbeon Forms 2017.2 introduced the new 12-column grid layout, but if you wanted to move cell boundaries with Form Builder you had to use icon buttons. With Orbeon Forms 2018.1, you adjust cell boundaries via drag and drop. (doc)

    Dragging cell boundaries horizontally

    Field-level encryption

    This feature allows form authors to mark certain fields so that data entered by users in those fields is encrypted when stored in the database. This is typically used for fields used to capture personal information, also referred to as "personally identifiable information" (PII), "sensitive personal information" (SPI), or "personal information," depending on the context. Encrypting such information can help you with compliance with privacy laws, such as GDPR. (doc)

    Option to encrypt data at rest for a given form field


    Support for strict Content-Security-Policy header

    Orbeon Forms now works with a Content-Security-Policy header which disables inline scripts and CSS. Optionally, Orbeon Forms can also set the Content-Security-Policy header directly. (docblog post)

    Dynamic labels, hints, and help messages

    Controls now support dynamic labels, hints, and help messages, and sections support dynamic labels and help messages. This means that instead of being specified once and for all at form design time, labels, hints and help messages can incorporate dynamic parts such as control values and other custom expressions. (template syntax doc, dynamic labels, helps and label messages doc, sections doc).

    Dynamic label


    Automatic calculations dependencies by default

    Orbeon Forms adds a user interface setting to enable and disable automatic calculations dependencies in the "Form Settings" dialog. In addition, for new form definitions, the "Automatic Calculations Dependencies" option is enabled by default starting with Orbeon Forms 2018.1. (doc)

    Automatic calculations dependencies setting


    Email templates

    The email subject and email body can now be dynamic, that is, include content which comes from form controls or can be calculated with a formula. You can also set email subject and body directly within Form Builder, and have separate subjects and bodies for each form language. (doc)

    Dynamic email body


    Wizard enhancements

    The wizard view includes a number of fixes to highlight section status as the user fills out data.

    Wizard status
    Wizard options are now grouped under a separate tab of the Form Settings dialog. Options to control several aspects of the wizard are now directly accessible from Form Builder.

    Wizard Options tab


    Multiple PDF templates

    Orbeon Forms now supports multiple PDF templates for a given form. They can differ by language and/or by a custom name. (doc)

    Attaching multiple PDF templates

    Other features and enhancements

      Form Runner

      • Accessibility: calculated value fields are readable by screen readers (#3583).
      • The lease feature works with databases other than SQL Server (#3471).
      • By default, alerts now have an arrow pointing to the field (#3415).
      • Orbeon Forms upgraded to reCAPTCHA v2 (#3551).
      • Orbeon Forms upgraded to TinyMCE 4 (#1753).
      • The wizard TOC visibility is improved and scrolls as needed when possible (#3222).
      • Support for Liferay DXP GA4 and newer (#3314).
      • Formulas
        • A new function allows retrieving the current form title (#3559).
        • A new function allows accessing the value of a form field (#2910).
      • Icons have been updated to high-resolution for high DPI displays.

        Other new features and bug-fixes

        Including the features and enhancements above, we closed over 170 issues since Orbeon Forms 2017.2.

        Internationalization

        See Localizing Orbeon Forms for the latest localization support. Localization depends on volunteers, so please let us know if you want to help!

        Browser support

        • Form Builder (creating forms)
          • Chrome 69 (latest stable version)
          • Firefox 62 (latest stable version) and the current Firefox ESR
          • Microsoft Edge 17 (latest stable release)
          • Safari 11 (latest stable version)
        • Form Runner (accessing form)
          • All browsers supported by Form Builder (see above)
          • IE10, IE11, Edge 15 and Edge 16
          • Safari Mobile on iOS 11
          • Chrome for Android (stable channel)

        Compatibility notes

        Internet Explorer support

        Support for IE9 is removed.

        XForms event handling

        Non-relevant event handlers no longer run. (doc)

        XForms repeat updates upon xf:insert and xf:delete

        With previous versions, the xf:insert and xf:delete actions attempted to update repeats immediately after completion, independently from regular UI refreshes. With this version, this behavior is disabled by default and deprecated. (doc)

        Migration to TinyMCE 4

        We have migrated to TinyMCE 4. If you are providing custom configuration to the older TinyMCE 3, you have to update such configurations.

        Restriction on uses of the file: protocol

        The file: protocol is now limited to accessing temporary files. (#3577)

        Removal of noscript mode

        The noscript mode, which was deprecated since Orbeon Forms 2016.3, has now been entirely removed from Orbeon Forms.

        Download and feedback

        You can download the latest version of Orbeon Forms from the downloads page.

        Don't forget to grab a trial license for the PE version.

        Please send feedback:
        We hope you enjoy this release!

        Wednesday, August 22, 2018

        Improving security with the Content-Security-Policy header

        Securing web applications is always difficult and a moving target. Fairly recently, web browsers have started supporting the Content-Security-Policy HTTP header. This header is designed to help fight Cross Site Scripting (XSS) and data injection attacks.

        Content-Security-Policy is very configurable. Some organizations set that header to strict values which disallow inline JavaScript and CSS within HTML pages. What this means is that anything like this is rejected by the web browser:

        <script type="text/javascript">
            function foo() { alert("Hello!"); }
        </script>

        Up until Orbeon Forms 2017.2, Orbeon Forms includes some inline scripts and CSS in the HTML served to the browser. The purpose of this is, in particular, to provide some data and functions specific to the current form. So setting a Content-Security-Policy header which disables inline scripts and CSS would break Orbeon Forms.

        With Orbeon Forms 2018.1 and newer, on the other hand, Orbeon Forms no longer produces inline scripts and CSS this by default. This can make Orbeon Forms safer by default if you set a stricter Content-Security-Policy.

        In addition, and optionally, Orbeon Forms can generate the Content-Security-Policy header for you via a very simple configuration.

        More details are available in the documentation.

        We hope you like this new feature of the upcoming Orbeon Forms 2018.1.

        Wednesday, May 23, 2018

        The 12-column layout

        Since the early days of Form Builder, all form controls are placed within grids. The basic idea of a grid, of course, is to have rows and columns. Until Orbeon Forms 2017.1 included, with Form Builder, each grid could have from 1 to 4 columns [1]. Spanning rows in a grid was possible, but spanning columns was not. This system served Orbeon Forms users well for a long time.

        Orbeon Forms 2017.2 made an important change and introduced a 12-column layout [2]. What this means is that instead of varying the number of columns of a grid, you vary how many columns a control spans. So if you previously had a text area taking the entire width of a one-column grid, now you have a control taking 12 columns in that 12-column grid; a 4-column grid translates into a grid with controls each taking 3 columns, and so on.

        You might wonder why we picked 12 columns. The answer is simple: the number 12 is divisible by 1, 2, 3, 4 and 6, and it is not “too small” or “too large” [3]. This means that it is possible to be backward-compatible with the previous 1–4 column system but also allows for more flexibility in the placement of controls since the granularity is now 1/12th of the width of the grid [4]. In short, using 12 columns is a good compromise.

        Grid Columns
        Orbeon Forms 2017.1
        Column Span
        Orbeon Forms 2017.2
        1 12
        2 6
        3 4
        4 3
        5 2 [5]
        6 2

        With Orbeon Forms 2017.2, you can expand, shrink, split and merge cells with icons that show within each cell. And now with the upcoming Orbeon Forms 2018.1, we are enhancing the 12-column layout with drag and drop of cell borders. This means that you can resize a cell to take from 1 to 12 columns, depending on the cell’s location, instead of using icons.

        Single grid with flexible layout
        Single grid with flexible layout

        And, in case you had missed, it, you can also drag and drop controls between cells now since Orbeon Forms 2017.2!

        We hope that you will like these changes and the increased flexibility that comes with them!


        1. With the option to extend that number at the risk of having funny-looking layouts.  ↩

        2. The 12-column layout applies to wider displays. For narrow displays like phones in portrait mode, each field shows on a single row. In the future, we can imagine separate configurations for other displays widths.  ↩

        3. Bootstrap grids use a 12-column system as well.  ↩

        4. Form Builder and Form Runner required major changes for this to happen.  ↩

        5. 5 is not a divisor of 12, and so such rarely-used grid widths convert to 10-out-of–12 columns with changes we just introduced in Orbeon Forms 2017.2.2.  ↩