Monday, February 17, 2020

Importing date and time fields from Excel files

The Excel import feature now supports importing date and time formats. Excel cells that contain values formatted as date/time, date, or time in the Excel spreadsheet are automatically converted to their respective ISO formats before being stored as form data. This makes them available in your form for viewing, editing, and calculations.

This might sound like an obvious feature, but it turns out that reading the Excel format can be tricky, as Excel doesn't have native date/time data types. Those are stored as floating-point numbers, and only by looking at (and sometimes guessing from) the formatting style for a cell can you really tell that its value contains a date/time. Then the value must be extracted and converted and luckily, there is an algorithm for that. (Oh, and did you know that you cannot represent dates before 1900 in Excel?)
Excel represents many data types using floating-point numbers
In order to implement this enhancement, we had to do quite a bit of research online and in the source code of Apache POI, an open-source library that does a lot of the right things. While we are not using POI directly, we used some of the code and adapted it to our needs.

We hope you will like this feature, which is present in Orbeon Forms 2019.2. See also the documentation.

Monday, February 3, 2020

Showing all lease messages inline, for consistency

In Orbeon Forms 2017.2 we introduced the lease feature, which is useful in cases where you need to have multiple users edit the same form data, and want to ensure that only one user does so at a given time, this to avoid any risk of conflicts with concurrent edits.

We would not want users to be able to lock form data forever, so Orbeon Forms only grants users the right to edit form data for a given, configurable, period of time. Hence the need, when this feature is enabled, to inform users:
  • When editing the document: of how much time left they have left, with an option to voluntarily relinquish the lease, and if the lease is about to expire, if they want to continue to edit the document, thus extending the lease.
  • If the lease has expired: that they lost the lease, with an option to request it, in case nobody acquired the lease in the meantime.
  • If another user has the lease: that they can't edit the document, and who that other user is.

Previously, some of those messages were shown inline, in an area at the top of the form, while others were shown in dialogs. Since Orbeon Forms 2019.2, all the messages are shown inline for greater consistency.

Thursday, January 30, 2020

Orbeon Forms 2019.1.1 PE

Today we released Orbeon Forms 2019.1.1 PE!

This update to Orbeon Forms 2019.1 PE contains bug-fixes and is recommended for all Orbeon Forms 2019.1 PE users.

For details, see the complete release notes.

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

We hope you enjoy this release!

Friday, January 24, 2020

Upgrading to TinyMCE 5

In Form Builder, when you add a Formatted Text Area field to a form, under the hood Orbeon Forms uses the TinyMCE library. For Orbeon Forms 2020.1, we've upgraded TinyMCE to version 5. TinyMCE 5 provides better accessibility, stricter WCAG 2.1 compliance, and more.

While we were at it, we've also rewritten the Orbeon Forms client-side code that deals with the TinyMCE library in Scala.js, in the process doing some clean-up, and making that code easier to maintain in the future.

We've also made a few subtle changes to how the control shows out-of-the-box, like reducing the space taken by icons in the toolbar, having text users type show in the same font as text typed in other fields, and adding slightly rounded corners as done for other fields.

In general, this is part of the work we are doing under the hood to modernize our code and upgrade the libraries Orbeon Forms is using, which, in aggregate, contributes to improving maintainability, performance, compatibility, accessibility, and more.

Monday, December 30, 2019

Orbeon Forms 2019.2

Today we released Orbeon Forms 2019.2 PE and Orbeon Forms 2019.2 CE, our second and final major release of 2019!

This release includes landscape PDF mode, fluid layout in the browser, and date/time support for the Excel import feature. We closed over 180 issues since Orbeon Forms 2019.1.

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!

Tuesday, December 10, 2019

Keeping our code current

Orbeon Forms works in part in the web browser (the "client") and in part on the server. Both sides communicate together via HTTP and what is known as "AJAX". Simply put, it's a way to exchange information between both parties.

Now it turns out that the client-side code related to this part of the product was still using fairly old support libraries. One of them, which was quite good in its time but is now outdated, is YUI.

So recently, as a maintenance step, we have replaced that code to use the modern Fetch API. This is now supported by all browsers except IE11, and for that browser we have what are called polyfills to keep things working. We have also rewritten the relevant code using Scala.js, which we use for all new client-side code. Things will be way more maintainable this way.

Some of the new code using the Fetch API
The good news is that as a user of Orbeon Forms, you don't need to know about this, except if you are curious to know about how things work under the hood, of course!

This change will be part of Orbeon Forms 2019.2.

Thursday, November 21, 2019

Orbeon Forms 2018.2.4 PE

Today we released Orbeon Forms 2018.2.4 PE!

This update to Orbeon Forms 2018.2.3 PE contains bug-fixes and is recommended for all Orbeon Forms 2018.2.x PE users.

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!