Friday, May 15, 2015

Namespacing jQuery

Starting with version 4.9, Orbeon Forms isn't polluting the JavaScript global namespace on the browser by exposing its own version of jQuery.

You will benefit from this improvement if you're embedding a form created with Orbeon Forms into an existing web page, whether you do this using the server-side embedding API, the proxy portlet, or full portlet. In any of those cases, starting with Orbeon Forms 4.9, you don't have to worry about the version of jQuery used by Orbeon Forms conflicting with the version of jQuery used by your page.

However, if your own code, designed to run with Orbeon Forms 4.8 or earlier, was relying on Orbeon Forms exposing its version of jQuery, you will need to change it, but the change should be very simple: in your JavaScript code, instead of $ or jQuery, use ORBEON.jQuery.

Tuesday, May 5, 2015

Orbeon Forms 4.9

Today we released Orbeon Forms 4.9!

Major features and enhancements
  • Form Builder
    • New control for showing explanatory text. Lots of forms require explanations, often inline with form fields. Until now, you had to use workarounds to do this in Form Builder, such as using a Text Output field with an HTML label. The new Explanation control addresses this need, and allows you to place explanatory rich text anywhere in your form. (blog post, #507)
    • Custom alerts for invalid data types and missing required fields. Since version 4.3, Form Builder allows you to set separate alert messages for constraints. Now you can also set separate alerts to show when the datatype is incorrect, as well as when a field is required but missing. (doc, #1978)
    • Deselecting all radio buttons. Radio buttons do not have a way, in HTML, to be completely deselected except programmatically. This is usually not something you need to do in a form, but in Form Builder this is often desirable. The Itemset Editor now allows you to do just this (with thanks to Aaron Spike).  (#595)
    • Performance improvements. We improved performance of very large forms in Form Builder. (#2183#2181)
  • Form Runner
    • Fix for occasional data loss with section templates. This is an important fix, which we have also backported to previous version of Orbeon Forms. We recommend patching Orbeon Forms if you are using section templates. (#2106)
    • New wizard validated mode. This new wizard mode allows you to only navigate forward if there are no errors on all preceding pages as well as the current page. This helps ensure that the user follows specific steps when filling out a form. (blog post, #2066)
    • Email validation too strict on TLDs supported. Up until recently, it was possible to know which top-level domains (such as .com, . fr, etc.) were actually in use and to include such tests as part of email validation. But currently there are 810 of those, and the number is likely to grow. So we have relaxed our email validator to allow any TLD. (#2116)
    • Configurable PDF file name. You can now configure the filename to use with the PDF button on the Form Runner Detail page. The filename is configurable via XPath and can even depend on form data. (#2122)
    • Accessibility improvements.
      • Screen readers will now tell you whether an input field is invalid and/or required, via the aria-invalid and aria-required attributes. (#2148)
      • The Refresh button now includes a label. (#2158)
      • Button with menus tell you they are collapsed or expanded (#2162)
    • Performance improvements. We implemented a couple of performance enhancements, in particular to handle large form updates under Chrome. (#2185, #2174)
  • XForms
    • Nested required and type elements. You can now use elements instead of attributes to assign required and type model item properties. This allows giving them distinct identifiers and alert messages. (doc and doc, #1978)
    • New functions to access the username,  group and roles. The following functions can be used to access current user information: xxf:username(), xxf:user-group(), and xxf:user-roles(). These functions also work when using headers-based permissions. (doc#2062#2063)
  • Other
    • Namespaced jQuery.  Orbeon Forms is now a better JavaScript citizen by namespacing our version of jQuery. This way you can include your own version of jQuery or Zepto.js in your page, and it won't conflict with the version used by Orbeon Forms. (blog post#1155)

Internationalization

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

Other new features and bug-fixes

Including the major features and enhancements above, we closed over 80 issues since Orbeon Forms 4.8.2 (and almost 100 since 4.8.0).
    Current browser support
    • Form Builder (creating forms)
      • Chrome 42 (latest stable version) and Chrome 44 dev (current dev channel)
      • Firefox 37 (latest  stable version) and the current Firefox ESR
      • IE 11
      • Safari 8
      • Form Runner (accessing form)
        • All browsers supported by Form Builder (see above)
        • IE8, IE9 and IE10
        • Safari Mobile on iOS 7 and iOS 8
        • Chrome for Android (stable channel)
      Compatibility notes
      • jQuery. The version of jQuery used by Orbeon Forms is now "namespaced", which means you can't use it directly anymore by referring to $ or jQuery. Instead, if you want to refer to the version of jQuery used by Orbeon Forms, use ORBEON.jQuery.
      • HTTP header forwarding
        • The oxf.xforms.forward-submission-headers property is deprecated. Use  oxf.http.forward-headers when needed.
        • You don't need to add Orbeon-Client to oxf.http.forward-headers anymore.
        • The XForms xxf:forward-submission-headers attribute on xf:model, which allows to specify header forwarding on a per-form basis, is removed. Use instead the global oxf.http.forward-headers property.
      • XForms error handling
        • XPath static errors now always cause an error upon form load, and XPath dynamic errors never do. (doc)
        • The oxf.xforms.fatal-errors-during-initialization property is removed.
      • Authentication. There is now a separate servlet filter called orbeon-form-runner-auth-servlet-filter which provides authentication information to Form Runner. Previously the functionality performed by this filter was done internally. If you make changes to the Orbeon Forms web.xml file, you need to make sure that this filter is present. If you use the stock web.xml, there shouldn't be any need for changes.

      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!