# Index of features

## Purpose

The purpose of this page is to index features, their documentation and [blog posts](http://blog.orbeon.com/) in a central location so that you can get an idea of what Orbeon Forms offers at a glance.

## See also

* [Orbeon web site](https://www.orbeon.com/)
* [Orbeon blog](http://blog.orbeon.com/)

## Status

As of 2016-04-19 this page is still being updated.

## List of Orbeon Forms features

### Form Builder and Form Runner

* Inserting and reordering grid rows: [blog post](http://blog.orbeon.com/2013/11/inserting-and-reordering-grid-rows.html)
* Repeated grids and sections
  * Repeated grids: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/repeated-grids), [older blog post](http://blog.orbeon.com/2012/04/support-for-repeats-lands-in-form.html)
  * Repeated sections: [blog post](http://blog.orbeon.com/2014/01/repeated-sections.html)
  * Options for new repeat iterations: [blog post](http://blog.orbeon.com/2015/10/repeated-grids-and-sections-just-got.html)
  * Minimal appearances of repeated grids and sections: [blog post](http://blog.orbeon.com/2015/12/leaner-repeated-sections-and-grids.html)
* Section Templates:
  * main feature: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/section-templates)
  * merging: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/section-templates#merging-section-templates)
* Singleton forms: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/advanced/singleton-form)
* Versioning of form definitions: [blog post about concept](http://blog.orbeon.com/2014/02/form-versioning.html), [blog post about publish options](http://blog.orbeon.com/2015/01/choosing-best-versioning-option-when.html)
  * overwriting of existing version: [doc](https://github.com/orbeon/orbeon-forms-doc/tree/c432b92f4f85b0983a3ce0b85bb2bdd4e53d043e/form-builder/publishing.html#versioning)
  * associating a comment with a given form version: [doc](https://github.com/orbeon/orbeon-forms-doc/tree/c432b92f4f85b0983a3ce0b85bb2bdd4e53d043e/form-builder/publishing.html#versioning), [blog post](http://blog.orbeon.com/2016/09/versioning-comments.html)
* Form field validation: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/validation), [blog post](http://blog.orbeon.com/2013/07/enhanced-validation-in-form-builder-and.html)
  * required fields (also via formula, see [blog post](http://blog.orbeon.com/2014/09/control-required-values-with-formulas.html))
  * whitespace trimming: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/validation#trimming-leading-and-trailing-spaces), [blog post](http://blog.orbeon.com/2016/02/required-fields-more-subtle-than-you.html)
  * data types such as string, number, date, etc.
  * multiple constraints with formulas
  * common constraints: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/validation#commonconstraints), [blog post](http://blog.orbeon.com/2015/07/how-common-constraints-work.html)
    * minimum/maximum length
    * positive, positive or zero, negative or zero, or negative value
    * maximum fractional digits
    * attachment sizes and file types
  * errors, warnings, and informational validations
  * custom alert messages per validation
* Access control
  * Owner / group permissions: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/access-control-and-permissions/owner-and-group-member), [blog post](http://blog.orbeon.com/2013/09/ownergroup-based-permissions-aka-see.html)
  * Organizations: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/access-control-and-permissions/organizations)
* Persistence (databases)
  * persistence API: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/persistence-api)
  * persistence implementations: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/persistence/database-support)
  * relational database support: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/persistence/using-a-relational-database), [blog post about new indexes](http://blog.orbeon.com/2016/06/new-indexes-boost-performance-with.html)
* Datasets: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/datasets), [blog post](http://blog.orbeon.com/2017/01/datasets.html)

### Form Builder

* 12-column layout: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/form-area#the-12-column-layout), [blog post](https://blog.orbeon.com/2018/05/the-12-column-layout.html)
* Summary page: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/summary-page)
* Toolbox:
  * features: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/toolbox)
  * configurability: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/extensibility/toolbox-component-metadata)
  * XBL components: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/xforms/xbl-components)
  * undo and redo: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/undo-and-redo), [blog post](http://blog.orbeon.com/2017/12/new-orbeon-forms-20172-feature-undo-and.html)
  * cut, copy and paste: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/cut-copy-and-paste)
* Form Settings: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-settings)
  * General Settings
  * Form Options: [doc](https://github.com/orbeon/orbeon-forms-doc/tree/c432b92f4f85b0983a3ce0b85bb2bdd4e53d043e/form-builder/form-settings.html#form-options)
    * Singleton forms: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/advanced/singleton-form)
    * Wizard view: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/wizard-view)
* Control Settings: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/control-settings)
  * control name
  * Summary page options
  * custom CSS classes
  * easy switching of control appearances: [blog post](http://blog.orbeon.com/2015/06/how-new-form-builder-appearance.html)
  * validation: [doc](https://github.com/orbeon/orbeon-forms-doc/tree/c432b92f4f85b0983a3ce0b85bb2bdd4e53d043e/form-builder/images/validation.png)
  * formulas: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/formulas)
  * help text (plain text and rich text)
    * appearance of help messages: [blog post](http://blog.orbeon.com/2014/01/improving-how-we-show-help-messages.html)
* Itemset Editor: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/itemset-editor)
  * Hints for checkboxes and radio buttons: [blog post](http://blog.orbeon.com/2014/02/hints-for-checkboxes-and-radio-buttons.html)
* Section Settings: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/section-settings)
  * whether section is collapsible
  * whether section is initially collapsed
* Publishing a form definition: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/publishing)
* Explanation text: [blog post](http://blog.orbeon.com/2015/04/adding-explanatory-text-to-your-forms.html)
* Extension API: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/extensibility/extension-api)
* Access control for editing forms: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/access-control-and-permissions)
* Internationalization (i18n) / localization (l10n): [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-localization)
* Services and actions
  * HTTP Services: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/services-and-actions/http-services)
    * JSON support (for reading only): [doc](http://doc.orbeon.com/xforms/submission-standard.html#json-support)
    * setting URL parameters
  * Database Services: \[doc]\(form-builder/database-services.md
  * Actions: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/services-and-actions/actions)
* XML Schema Support: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/xml-schemas-support)
* Source code editor: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/components/source-code-editor)whether section is collapsible
* Extension API: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/extensibility/extension-api)

### Form Runner

* Standard look & feel
* Custom XBL components: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/xforms/xbl-components)
* Summary Page: [blog post](http://blog.orbeon.com/2014/06/the-form-builder-summary-page-and-form.html)
  * search
* Detail Page
  * Responsive design for mobile devices such as smartphones: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/responsive-design), [blog](http://blog.orbeon.com/2015/08/responsive-design.html)
    * show numeric keypad/numbers and punctuation" keyboard pane when possible: [doc](http://doc.orbeon.com/form-runner/component/number.html#mobile-support), [blog post](http://blog.orbeon.com/2016/01/better-numeric-input-on-mobile.html)
  * Review mode (printable)
  * Wizard view: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/wizard-view), [introduction blog post](http://blog.orbeon.com/2012/12/form-runner-wizard-view.html)
    * validated mode: [blog post](http://blog.orbeon.com/2015/03/new-wizard-validated-mode.html), [doc](https://doc.orbeon.com/form-runner/feature/wizard-view.html#validated-mode)
    * highlighting of sections in error/accessible sections
    * buttons appearing only on the wizard's last page
    * status information for each section
    * subsection navigation
    * optional separate table of contents
* File scan API: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/other-apis/file-scan-api)&#x20;
* Home Page: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/home-page), [blog post](http://blog.orbeon.com/2014/06/the-form-builder-summary-page-and-form.html)
* Buttons and Processes: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/advanced/buttons-and-processes), [blog post](http://blog.orbeon.com/2013/04/more-powerful-buttons.html)
* Autosave: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/persistence/autosave), [blog post](http://blog.orbeon.com/2013/10/autosave.html)
* PDF
  * Production: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/pdf-production)
    * Automatic
    * Template-based: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/advanced/pdf-production/pdf-templates)
  * Automatic highlighting of links [blog post](http://blog.orbeon.com/2015/04/automatic-web-links-in-pdf-files.html)
  * customizable file name: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/configuration/properties/form-runner#custom-pdf-filename)
  * TIFF production: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/features/tiff-production)
  * Ability to send to services: [blog post](http://blog.orbeon.com/2016/08/submitting-pdf-file-to-external-service.html)
* Validation
  * as-you-type validation
  * explicit validation: [doc](https://doc.orbeon.com/configuration/properties/form-runner.md#validation-mode)
  * centralized error summary showing currently relevant errors: [component doc](https://github.com/orbeon/orbeon-forms-doc/tree/c432b92f4f85b0983a3ce0b85bb2bdd4e53d043e/form-runner/component/images/xbl-error-summary-errors.png), [blog post on warnings/infos enhancements](http://blog.orbeon.com/2013/07/enhanced-validation-in-form-builder-and.html)
* Sending emails
  * controlling which attachments are included: [Form Builder doc](http://doc.orbeon.com/form-builder/control-settings.html#basic-options), [Form Runner doc](http://doc.orbeon.com/configuration/properties/form-runner.md#email-settings)
  * controlling To, Cc, Bcc, From: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-builder/form-editor/control-settings), [blog post](http://blog.orbeon.com/2017/05/more-flexible-email-senders-and.html)
* Captcha: [properties doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/configuration/properties/form-runner#captcha), [component doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/components/captcha), [blog post](http://blog.orbeon.com/2011/12/stop-spammer-by-adding-captcha-to-your.html)
* Appearance of repeated sections: [properties doc](http://doc.orbeon.com/configuration/properties/form-runner.md#appearance-of-repeated-sections), [component doc](http://doc.orbeon.com/form-runner/component/grid.html#repeated-mode)
* Appearance of repeated grids: [properties doc](http://doc.orbeon.com/configuration/properties/form-runner.md#appearance-of-grids-sections), [component doc](http://doc.orbeon.com/form-runner/component/section.html#repeated-mode)
* Function library: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/xforms/xpath/extension-functions/form-runner-functions), [blog post](http://blog.orbeon.com/2016/08/a-stable-function-library-for-form.html)
* Grids
  * HTML tables-free layout: [blog post](http://blog.orbeon.com/2016/06/saying-farewell-to-html-tables.html))
* Services and APIs
  * [Duplicate form data](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/other-apis/duplicate-form-data)
  * [Generate XML Schema](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/other-apis/duplicate-form-data)
  * [List form data attachments](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/persistence-api/list-form-data-attachments)
  * [Publish form definition](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/other-apis/publish-form-definition)
  * [Run form in the background](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/apis/other-apis/run-form-in-the-background)

### Form controls

* Text controls
  * Text field
  * Plain text area
  * Formatted text area
  * Password field
* Output controls
  * Explanatory text
  * Calculated value
* Typed controls
  * Number
    * control of rounding when formatting/capturing data
  * Email address
  * Currency
  * US phone number
  * US state
* Date and time controls
  * Date, time, date and time
  * Dropdown date
  * Fields date
* Selection controls [doc](http://doc.orbeon.com/form-builder/toolbox.html#selection-controls)
  * Dropdown menu
  * Radio buttons
  * Radio buttons with "Other": [doc](http://doc.orbeon.com/form-runner/component/open-select1.html)
  * Checkboxes
  * Scrollable checkboxes
  * Yes/No answer: [doc](http://doc.orbeon.com/form-runner/component/yesno-input.html)
  * Single checkbox: [doc](http://doc.orbeon.com/form-runner/component/checkbox-input.html)
  * Dynamic data dropdown
  * Autocomplete
* Attachments
  * File attachment
  * Image attachment
  * Static image
  * Handwritten signature: [doc](http://doc.orbeon.com/form-runner/component/handwritten-signature.html)
  * Image annotation: [blog post](http://blog.orbeon.com/2013/08/new-image-annotation-control.html)
  * Control maximum size and file types: [blog post](http://blog.orbeon.com/2017/04/improved-constraints-on-attachments.html)
* Buttons
  * Button
  * Link button
* Other
  * Character counter: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/components/character-counter)
  * Custom components: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/xforms/xbl-components)
    * support JavaScript Companion Classes: [doc](http://doc.orbeon.com/xforms/xbl/javascript.html)

### Databases

* Database support: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/persistence/database-support)
* SQL Server support in Orbeon Forms: [blog post](http://blog.orbeon.com/2014/05/sql-server-support-in-orbeon-forms.html)
* PostgreSQL support in Orbeon Forms: [blog post](http://blog.orbeon.com/2014/12/postgresql-support-in-orbeon-forms.html)

### Form handling

* Session heartbeat: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/contributors/state-handling)
* Browser back/forward button support: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/contributors/state-handling)

### Embedding

* Server side Embedding: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/linking-and-embedding/java-embedding-api), [blog post](http://blog.orbeon.com/2014/09/embedding-support-in-orbeon-forms-47.html), [Form Builder embedding blog post](http://blog.orbeon.com/2017/02/form-builder-embedding.html)
* Liferay proxy portlet: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/linking-and-embedding/liferay-proxy-portlet)
* Liferay full portlet: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/form-runner/linking-and-embedding/liferay-full-portlet)

### Performance

* Limiter filter to limit the number of concurrent form requests: [doc](https://doc.orbeon.com/~/revisions/-LFrzxlvP9UXA6_RDYI9/configuration/advanced/limiter-filter)
* Internal service requests: [blog post](http://blog.orbeon.com/2015/01/saying-goodbye-to-internal-http.html)

### Misc

* Loading indicator and spinners: [blog post](http://blog.orbeon.com/2016/04/how-do-you-tell-users-something-is.html)
* Namespaced jQuery to avoid conflicts with other jQuery versions
* Run modes: \[doc]\(configuration/advanced/run-modes.md

  ), [blog](http://blog.orbeon.com/2012/05/run-modes.html)
