Thursday, December 14, 2017

New Orbeon Forms 2017.2 feature: undo and redo

Some Form Builder actions can have important consequences. For example, you can delete an entire section, or delete a control with carefully crafted validations.

Up until Orbeon Forms 2017.1, Form Builder asks you to confirm certain big operations, but not all. Further, even once you have accepted the operation, the changes are committed to the form. If you made a mistake, then your only option, if you haven't saved your form yet, is to give up all your changes since the last save and to reload the form.

The obvious solution to this problem is a classic undo/redo function, and this is exactly what we implemented in Orbeon Forms 2017.2. The toolbox now shows familiar undo and redo icons.

When hovering over the icons, a tooltip tells you which operation is undone or redone. You can undo most operations which change important aspects of the form:

  • control, grid, grid row, section and section template insertion and deletion
  • section template merging (new in 2017.2)
  • control renaming
  • control move via drag and drop (new in 2017.2)
  • section move up/down/right/left
  • control settings, including itemsets, labels, hint, and validations
We hope you will enjoy this new feature!

NOTE: In this initial version, it is not yet possible to undo changes to the form definition's source code with Edit Source, or changes to actions, services, and other global form settings. We hope to support undoing these operations in the future.

Thursday, December 7, 2017

Lease on documents

When two users have permission to edit the same instance of form data (also known as a document), there is a chance that they might inadvertently overwrite and lose changes done by another user.

This situation is illustrated by the diagram on the right. Say a first user, Homer, loads a document that contains "1" as the value of a field. Then say a second user, Marge, loads the same document. At that point, both Homer and Marge have the same document with the value "1" loaded in their browser. Now Homer can change the value from "1" to "2" and save. On her side, Marge can change the value from "1" to "3" and save. As result, Marge will overwrite the change done by Homer, and this without Homer or Marge knowing about it.

Orbeon Forms, starting with version 2017.2, provides a solution to this problem:
  • lease on a document is assigned to the first user, say Homer, who loads that document. The lease is given to Homer for 10 minutes, so if he lets it sit in his browser, after 10 minutes another user will, in turn, be able to edit the document. The lease is automatically extended when Homer makes changes to the document. Should he want to, he can also extend the lease explicitly by clicking on a "Renew lease" button. 2 minutes before the expiration of the lease, a dialog asks Homer if he wants to extend the lease so he can continue to edit the document. Finally, Homer can also explicitly relinquish the lease so to give other users a chance to immediately edit that document.
  • On the other hand, if a second user, say Marge, tries to edit the document while a lease was granted to Homer, then Marge is told Homer currently has the lease on the document, and is prevented from editing the document - this until the lease expires, or Homer explicitly relinquishes the lease.
Of course, the lease system is optionally enabled, and all the durations mentioned earlier are defaults, and you can change them if needed. With the new lease mechanism in place, you can easily avoid situations when multiple users edit the same document, making your form solution using Orbeon Forms safer and more reliable. For more on this, see the documentation on the lease feature.

Tuesday, September 12, 2017

Orbeon Forms 2017.1.1 PE

Today we released Orbeon Forms 2017.1.1 PE. This update to Orbeon Forms 2017.1 PE contains bug-fixes and security enhancements and is recommended for all Orbeon Forms 2017.1 PE users.

This release addresses the following issues:
    • Form Builder
      • Fix for label in repeated grid showing above control and in table header
      • FB includes both orbeon-form-runner.js and orbeon-form-builder.js (#3334)
    • Form Runner
      • Upload fails when large text fields are present (#3329)
      • Remove BBCode TinyMCE plugin (#3325)
    The upload issue, in particular, is a regression since Orbeon Forms 2016.3 and justifies the upgrade from 2017.1.

    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, June 22, 2017

      Orbeon Forms 2017.1

      Today we released Orbeon Forms 2017.1, the first major release of Orbeon Forms in 2017! This release introduces several important features and enhancements.

      Major features and enhancement

        Liferay 7/DXP support

        This version introduces initial Liferay 7/DXP support for the Form Runner proxy portlet. See the documentation for details.

        Orbeon Forms Running in Liferay 7/DXP


        Datasets are a flexible way to retrieve data from services and to use it in your form. For more information, see the blog post and documentation.

        New Save to Dataset Action Response

        Improved actions editor

        The actions editor is reorganized in 3 tabs:
        • General Settings
        • Service Request Actions
        • Service Response Actions
        In addition, request and response actions can be easily reordered. The new layout makes it clearer when actions run and under what conditions. It also allows for handling datasets (see above).

        Improved Actions Editor

        Upload improvements

        You can now control much better the maximum size and file types of attachments globally, per application, or per form. In the latter case, the configuration can be done directly in Form Builder's Form Options tab. For more information, see the blog post.

        New Form Options

        Other features and enhancements

          Form Builder

          • You can now use the value of fields to set email senders and "carbon copy" recipients. See the blog post for more.
            New Email Options

          Form Runner

          • Grids and grid rows which are empty due to hidden fields no longer take vertical space. (#2414)
          • Field sizes in automatic PDF mode are now correct. (#3105)
          • Incorrect page breaks before sections no longer appear. (#3111)
          • Non-relevant data is now annotated as such in the database when saving. (#3065)
          • It is possible to store form data in the database using the latest Form Runner data format. (#3110)
          • There is a new option to empty non-relevant data with the send action. (#1179)
          • Accessibility: HTML labels are no longer present in view mode (#3089)

          XForms engine

          • Submissions have a new option to empty non-relevant data. (#1179)
          • The xf:textarea control supports the minimal (placeholder) appearance for label and hint. (#2836)

          Other platform enhancements

          We continually maintain the Orbeon Forms source code base. This release includes a lot of refactoring as well as better tools for client-side (web browser) programming (#1600). We hope that these changes will allow us to move faster in the future.

            Other new features and bug-fixes

            Including the features and enhancements above, we closed over 130 issues since Orbeon Forms 2016.3.


            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 59 (latest stable version)
              • Firefox 54 (latest stable version) and the current Firefox ESR
              • IE 11 or Edge
              • Safari 8, 9 or 10
            • Form Runner (accessing form)
              • All browsers supported by Form Builder (see above)
              • IE9 and IE10
              • Safari Mobile on iOS 8, iOS 9 and iOS 10
              • Chrome for Android (stable channel)

            Compatibility notes

            Callback for PDF

            • PDFs generated from the Form Runner detail page are no longer available via an HTTP GET call. External applications which rely on this as part of a form submission must use instead the pdf or pdf-url content methods.


            • If you have custom XForms code using instance('fr-service-response-instance'), make sure to replace this with xxf:instance('fr-service-response-instance') instead. The same applies to other service instances.


            • As of Orbeon Forms 2017.1, Internet Explorer 8 (IE8) is no longer supported.
            • The following components are removed:
              • fr:fusion-charts component
              • oxf:chart processor

            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!

            Thursday, May 18, 2017

            Orbeon Forms 2016.3.1 PE

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

            This release addresses the following issues:
              • Form Builder
                • Image Annotation listed twice in the Form Builder sidebar (#3181)
                • Explanatory text overwrites rich text (#3161)
              • Form Runner
                • Fixes to controls
                  • Date and Time control set to current-dateTime() shows unformatted time when time is changed (#3066)
                  • Output control does not escape script element (#3115)
                  • Date-time control with gibberish not considered invalid (#3123)
                  • "Apply Initial Value Formulas when Adding Iterations" only works if you use the (+)Insert Below link (#3134)
                  • Date initially non-relevant not properly initialized on iOS (#3155)
                  • Explicit validation: issue with incremental character counter (#3164)
                • Fixes to PDF output
                  • Incorrect input fields size width in automatic PDF (#3105)
                  • Incorrect page breaks before sections (#3111)
                  • PDF: fr:fields-date not readonly when service is called upon xforms-enabled (#3113)
                • Other fixes
                  • No credentials used when no container role is listed (#3099)
                  • Embedding and Liferay: org.slf4j.helpers.MessageFormatter cannot be cast to org.orbeon.private.apache.http.HttpRequestInterceptor (#3154)
                  • Values in repeated grid are not shown on the summary page (#3174)
                  • JNDI lookup error on WildFly (7433a79953)
                  • Add debug logging for authentication (1c43ab56ef)
                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, May 4, 2017

                  More flexible email senders and recipients

                  Orbeon Forms allows you to send email, typically as part of a simple form data submission process: the user activates a "Submit" button, the data is saved or delivered to a service, and a confirmation email is sent to the user, a third-party, or both.

                  Email recipients are determined either by a configuration property, or by the content of form fields. Using form fields makes recipients dynamic: for example email addresses can be typed by the user directly, or selected via a dropdown, radio buttons or checkboxes. You can even use hidden form fields to load email addresses from services or internal HTTP headers.

                  Until now you could only control the actual email recipient (the "To:" email header). With Orbeon Forms 2017.1, you can in addition control the  Carbon Copy ("Cc:"), Blind Carbon Copy ("Bcc:"), and even the sender ("From:") email fields. For the latter, only one sender is used, since that's that most email software expects.

                  Like with "To:", you use properties or form fields selected directly in Form Builder:

                  We hope you'll like this enhancement, which will be available in Orbeon Forms 2017.1

                  Monday, April 24, 2017

                  Improved constraints on attachments uploads

                  Until Orbeon Forms 2016.3, there was only one way of controlling attachment constraints: via a single, global property. So you could say that that the maximum file attachment upload size was 100 MB, and that would apply to all attachments in all forms.

                  The upcoming Orbeon Forms 2017.1 provides a lot more flexibility, allowing you to set:
                  • The maximum file size for a given attachment field
                  • The maximum aggregate size for all the attachment fields on a given form
                  • The supported file types for either a given attachment field or all the attachment fields in a form
                  For each one of those, you can:
                  • Define a default, through properties. You can set that default to apply to all the forms in a Form Runner application, or to a specific form.
                  • Override the default through the Form Builder UI.
                  Per-control settings allow you to specify for example that a given attachment must be a text file, and that another attachment on the same form has a maximum attachment size of 2 MB (less than the default). Such settings are specified in the "Control Settings" dialog:

                  Per-application and per-form settings can be specified as usual via properties or, in the case of per-form settings, directly in Form Builder's "Form Settings" dialog:

                  Finally, the maximum aggregate attachment size allows you to specify, for example, that for a given form being filled by a user at most 50 MB of attachments can be provided, no matter how many attachment controls are in the form. This upper limit on the attachments provided helps prevent an undesired explosion of uploaded data, especially if you use repeated grids or sections that contain attachments.

                  We hope you will like these new features, which will be available in the upcoming Orbeon Forms 2017.1!