Future Features and Issues

NOTE: This page describes an Orbeon Forms project, not a feature which is currently part of Orbeon Forms.

Introduction

This page describes the direction in which we plan to take Form Builder/Form Runner and possible future features.
  • FB = Form Builder
  • FR = Form Runner
  • OF = Orbeon Forms

Features bag

This is a list of possible features collected overtime, in addition to the features in the Orbeon Forms Roadmap. There is no planning yet for these, and yes sponsoring with development support plans or custom solutions helps!

Form Builder

  • Usability
    • Make first section title optional (should simply be top-level grid? create section when adding new section?)
      • the idea is that you will be able to place grids at the top-level
      • NOTE 2013-04-16: with 4.0, this is "just" a matter of modifying the builder to let this happen.
    • Warn user if form w/ same app/form name are created
    • Editors: would be nice to show control labels and/or control types for control selection
    • In-place label edit for radio buttons and checkboxes
    • "Navigation" from control to control within Detail, Help and Validation editors. Also support switching language when it makes sense.
    • Automatic proposal of form name based on form title?
    • Cut/copy should cause status message to display (make message handling more generic; how?)
    • Better tabindex handling esp. for dialogs
    • Handle tabindex in itemset editor?
      • consider dialog and repeat
      • assign id in the >= 100
      • handler adds value for repeat iterations
    • Link to online help
    • Form Builder must preserve XML comments in the form source
  • Controls
    • Think about list of common useful controls
      • credit card (using card type)
      • etc., gather list from existing forms + better 
      • non-US phone number
      • SSN
    • Text output control is not localizable
      • should store its text in resources instance, instead of form instance
    • Multi-line text output control
    • UI to set incremental mode
    • Easy switch between HTML area and regular textarea
    • Easy switch between input, output, textarea, and secret
    • Itemset editor
      • validate that for multiple selection controls (e.g. checkboxes), the value must not contain spaces [CHECK]
      • move items
      • button to sort items
    • Detail/validation dialogs: like iTunes to navigate between fields, instead of having to close the dialog all the time to navigate to the next one
    • Layout
      • "horizontal" layout for controls (positioning of labels to the left)
      • checkboxes and radio buttons: vertical vs. horizontal -> set class
    • Date picker: format i18n
    • Image buttons (ops-users question)
    • Image widget must have read-only vs. read-write option (so users can upload their own images). Or, always display the upload field even in Form Runner for images
    • Detail must enable editor for special control attributes
      • built-in, like appearance, etc.
      • custom attributes exposed by XBL components
    • Button widget's label is empty by default so button appears very small
  • Data model
    • Unable to handle a schema with targetNamespace
    • Automatic initial generation of control ids/element names
      • after label has been entered a first time
      • maybe a "suggest" button next to the id field
      • poss: quick way of reviewing data model
    • Validation: specify maximum length of field declaratively -> controls 1) validation constraint 2) HTML input length
    • More common validation constraints. Ability to enter "facets" like XML Schema Part 2. Use @constraint, or create inline schema types?
    • More XML Schema support
      • Support schema includes/imports
      • Produce form template from schema
      • Pick complex type and generate controls from that
    • Allow specifying a schema which is global for the company (or for the particular Form Builder install). It could be selectable in the current UI
    • If select control has a schema type containing an enumeration, should allow user to use that enumeration
  • Other features
    • Declarative description of services and actions
      • NOTE 2013-06-06: some progress on this for 4.3
      • currently this is code-generation
      • instead produce instance describing fully the service, and runtime in FB executes service/action
    • Form export/import of forms/form data
    • Enable XPath 2.0 type annotations
    • Use fr:accordion for toolbox instead of custom accordion
    • Noscript: produce fr:tr and fr:td?
    • Doc: how to handle URLs to services for prod vs. validation environments
    • Configuration for RTE: either RTE displayed inline, or HTML shown with edit button that opens the RTE in a dialog
    • Handling concurrent writes/conflicts
    • Base property to specify URL of services
    • Roles to control e.g. who has the right to publish a form, etc.
    • Ability to have select controls dependencies without using SOAP/JDBC.
    • Handle colspan
    • Within a session, detect whether changes have modified the structure of the doc, + check whether there is form data for the given form, and warn on publish
    • Publish must check whether form is already deployed, AND if so whether there is data for it in order to warn the user
    • BUG: Safari 3.1 stops responding after a while (but "resurrect" if you click in the right place).
    • Simple "style" editor to set form's colors, etc. a la blog
    • BUG: Service Editor: test submission always have xxforms:username. If blank, the behavior will be slightly different from the actual submission without xxforms:username
    • "Library sets": from UserVoice
      • "I can see a need for a large collection of section templates for individual applications using form builder. Right now there is only one Library form, which could grow very large. I suggest supporting a set of Library forms available as a tree in the toolbar with selectable leaves for individual section templates."
  • Architecture
    • modularize using XBL
      • persistence model (persistence-model.xml)
      • resources (resources-model.xml)
      • alfresco-model.xml
      • import-export-model.xml
      • etc.
    • complex actions rewritten using another language: JavaScript, Scala? [DONE]
Features implemented:
  • Include XBL bindings only for bindings in use at deployment/test time AND/OR don't include fr:* bindings at all [DONE]
  • modularize using XBL
    • sections (section.xsl, sections-model.xml) [DONE]
    • grids (grid.xsl) [DONE]
    • inplace (inplace.xsl) [DONE]
  • Specify external data model instead of letting FB dictate data model [DONE]
    • Upload/paste of XML file
    • Allow binding controls to elements/attributes
    • Is present, then disable FB modifications to data model
  • Itemset editor
    • allow insert an item other than at the end [DONE]
  • Move elements in instance when user moves controls in UI [DONE]
  • Controls are not WYSIWYG [DONE]
    • Boolean input
    • YUI Button
  • When adding a field, not intuitive that the current text field is for the label. Add [Enter label] selected? Or background text that disappears when user starts typing text? [DONE]
  • "Apply" should be automatic when you click somewhere else [DONE]
  • Form logo at top of form should not show upload control right away, instead use button to add [DONE]
  • Help icon should appear all the time if help is not blank, not only on hover (or different icon, or ...) [DONE]
  • better phone number [DONE]
  • currency/number: mostly done, test [DONE]
  • Better modularization of code. Needs xxforms:function for custom XPath functions [DONE]
  • Rich text input control, output HTML in FR [DONE]
  • [ #315132 ] RFE: Section templates must include services and actions relating to them [DONE]

Form Runner

  • Versioning
  • Summary page
    • FR: Search date or number range
    • FR: CSV and/or Excel export from Summary page 
    • Use a shorter format for the date of creation and last modification, so they take less horizontal space
    • Introduce a help dialog shown the first time the page is open that presents the main operations
    • Variable-width summary page for large number of columns (issue: make the datatable scrollable shows the scrollbar even if there is enough horizontal space)
    • FR: Summary page should support sorting
    • Allow users to temporarily add columns based on the form fields, for fields that are not defined as appearing on the summary page by the form author.
    • Zip/XML export
      • Export all the data from the forms returned by the current search in XML format (when this option is chosen, a zip will be generated; it will be named app-form-date.zip, and contain one XML file for each form instance based on the current search)
    • Summary page should not be case sensitive for eXist [CHECK]
    • Summary page must show Oracle errors [CHECK]
    • Order of columns in summary page should be document order, not binds order [CHECK]
    • Control which buttons you want on summary page => property
    • Advanced search/xquery/export as XML
  • Detail page
    • Add page size selector (like new XForms Controls example)
    • Add smart error / warning icons (need new native visited flag + use span layout)
    • CSS: need mechanism of "theme" for alerts, labels, radio buttons layout based on ancestor class, e.g. fr-radio-vertical, fr-radio-horizontal; fr-label-top, fr-label-left; etc.
    • Time: allow hours/minutes without seconds (HH:MM)
    • XML view button
    • Next/prev doc when viewing a form
    • [ #314761 ] FR: RFE: Ability to POST form data to a particular URL upon send
  • Other
    • CMIS integration (would help support Alfresco, etc.)
Features implemented:
  • Fix alignment of text between the paging icons [DONE]
  • Better / official integration with Liferay [DONE]
  • Summary page must be able to list forms available. Maybe list applications, then for a given application list forms? [DONE in FR home page]
  • Appearance where only one section is visible at a time. This appearance could have multiple sub-appearances: [DONE w/ wizard]
    • simple mode based on the current UI to expand/collapse section, where when a section is expanded all the other expanded sections are collapsed
    • wizard mode
    • tabview mode
  • Auto PDF output to produce header/footer/page numbers based on CSS 3 margin boxes and running elements [DONE]

XForms engine

  • Better XForms inspector
    • reduce need for looking at logs
    • refactor instance inspector code to use variables, iterate, etc.

Thoughts about handling concurrent writers

Currently, nothing protects concurrent writes of form types or form data. Some system of detection / locking must be put in place. Idea:
  • Optimistic approach
  • Store in db username + timestamp
  • Warn user of overwrite
  • User timeout for warning
  • Certain operations clear username  ("Close" button)

Comments