Monday, January 25, 2021

Adding keyboard shortcuts to Form Builder

We believe that it is important for us to make Form Builder as easy as possible to use with a keyboard, this to improve:

  • accessibility,
  • the user experience for power users.

In Orbeon Forms 2020.1, we've started adding support for a few keyboard shortcuts for cut/copy/paste, save, undo/redo.

As you can see, this initial set is quite limited, but consider it as a start. We're planning to add more in the future, so, if you have a particular action for which you'd like us to add a keyboard shortcut for, please let us know.

Monday, January 11, 2021

New workflow capabilities in Orbeon Forms 2020.1

Orbeon Forms 2020.1 introduces a number of tools that make it easier to handle situations where you have a workflow around a form that involves multiple people who may be able to do different things, at different times, depending on a number of conditions.

Let's illustrate this with the example of an expense report, say:

  1. Employees can fill and submit new expense reports.
  2. Managers can review, but not edit, submitted expense reports, and either approve or reject them.
  3. If rejected, the employee who initially submitted the expense report can edit and resubmit it for approval.
  4. If approved, the expense report is marked as such, and becomes read-only.

An actual use case is most likely going to be more complicated than this, but this will suffice to illustrate the capabilities we want to discuss here.

Example of an expense report workflow, with stage transitions

First and foremost, Orbeon Forms 2020.1 introduces built-in support for the concept of stage. Our expense report can be in one of the following 3 stages: submitted, approved, and rejected. Looking again at the above workflow with those stages in mind:

  1. Employees start to fill an expense report, and submit it, at which point the stage becomes submitted.
  2. Managers can review expense reports with a submitted stage, and use the Approve button to change the stage to approved, or the Reject button to change the stage to rejected.
  3. If rejected, the employee can edit the form, submit it again, which changes the stage back to submitted.

This illustrates that stages can change with buttons at the bottom of the form, which brings us to a new workflow-related feature in Orbeon Forms 2020.1: the ability to change the stage with the set-workflow-stage(name = "…") action in a process, a process being the sequence of actions that runs when a button is pressed.

Finally, a combination of who the user is (an employee or a manager) and the current stage has an influence on what users can see and do, that is, whether they can edit the form, and what actions on the form are available to them. So you can implement those restrictions, Orbeon Forms 2020.1 introduces the fr:workflow-stage-value() function, which allows you to know what the current stage is. You can use this function anywhere you can use formulas, and in this example you can use it to:

  • If the user is a manager and the stage is submitted:
    • Show the Approve and Reject buttons.
  • If the user is an employee and the stage is different than submitted and approved:
    • Show the Submit buttons.
    • Allow users to edit the fields in the form.

To make this last item easier, Orbeon Forms 2020.1 introduces a form-level formula allowing you to set the whole form as read-only if a given condition is met. It was already possible to make specific fields or specific sections read-only, and it is now possible to do the same for the whole form, so you don't have to repeat the same formula on each section of the form.

Those are powerful tools, and we have even more workflow-related improvements in the works for future versions of Orbeon Forms, in particular to expose some of those features in Form Builder so they can be used more easily. We hope you'll find this useful, and are looking forward to seeing what you build using those new capabilities.

Wednesday, December 30, 2020

Orbeon Forms 2020.1

Today we released Orbeon Forms 2020.1 PE and Orbeon Forms 2020.1 CE!

This release includes improvements to attachment controls, Form Builder keyboard shortcuts and other usability improvements, and much more! We closed over 180 issues since Orbeon Forms 2019.2.

For details, see the complete release notes.

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


We hope you enjoy this release!

Thursday, August 27, 2020

Reloading resources for your form

Say you are overriding built-in resources:

  • because you'd like a button to be named differently,
  • or because you are localizing Form Runner in a new language,
  • or for some other reason want to change resources.

Then you might have noticed that your changes are not immediately taken into account, and you need to restart Tomcat, or other servlet container, before you can see your changes.

This is because, since resources don't change in production, they are aggressively cached by Orbeon Forms. However, if you're doing one of the aforementioned activities, having to restart the server to see changes done to your resources certainly isn't ideal.

Fortunately, since Orbeon Forms 2019.2, you can invalidate Orbeon Forms' resource cache for a given form, this from the Form Runner home page, by selecting the relevant form(s), and choosing Reload resources in the Operation menu.

Thursday, July 30, 2020

Introducing the JavaScript Embedding API

You can embed forms created with Orbeon Forms:

However, if you were not using Liferay and if your app wasn't written in Java, you were left to figure how to do embedding on your own. Through the years, a number of our customers have done just that, but going through this trouble just added unnecessary complexity. And this is why we are introducing, in Orbeon Forms 2020.1, a JavaScript embedding API.

When using the new JavaScript embedding API, as suggested by the name, embedding is done from the browser, which means that it doesn't depend on any particular server-side technology. Whether your app uses .NET, PHP, or any other technology on the server, you can use JavaScript embedding API.

If you have a case calling for forms to be embedded in your website, we hope you will find this new feature useful, and you can find more information about this API in the documentation.

Friday, July 17, 2020

Allowing users to view form data if they can't edit it because of a lease

Since Orbeon Forms 2017.2, you can enable the lease feature, on any or all your forms. If, in your setup, it is possible for multiple users to edit the same form data, you'll want to enable this feature to eliminate the possibility of conflicts, which is done by Orbeon Forms ensuring that at any given time at most one user can edit a given form data.

Until now, when users couldn't edit form data because another user owned the lease on that form data, they needed to wait for the lease to be released before they could edit the data. Since Orbeon Forms 2020.1, alternatively, they can ask Orbeon Forms to show the data in read-only mode.

We hope that you will find this enhancement to be useful.

Wednesday, June 10, 2020

Copying and pasting across forms

You might already know that Orbeon Forms supports cut, copy, and paste operations for the following items:
  • individual form controls
  • grids of controls
  • sections and their content
The cut and paste operations can be undone and redone with the "Undo"/"Redo" icons. All of this is available with the icon buttons at the top of the toolbox.


Before Orbeon Forms 2020.1, the cut/copy/paste operations were restricted to the currently running instance of Form Builder. They did not work between different Form Builder windows or tabs, or between edition sessions of the same form.

With Orbeon Forms 2020.1, we are improving this and these operations are now available between forms belonging to the same user session. For example, the following scenarios work:
  • Copy an item, go back to the Form Builder Summary page, reopen the same form or open a different form, and paste the item just copied.
  • Open several forms with Form Builder in different tabs or windows of the same browser (and the same browser user), and copy/paste items between these forms.
This allows more sharing between forms, including reusing parts of a form in other forms, copying sections from existing forms and pasting them into section templates for further reuse, and more.

We hope you will like this enhancement! See also the documentation.