Form Runner Summary as Inbox

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


The Form Runner summary page conveniently shows all the data for a given form.

While it is possible to create, edit, view, print, and delete form data, it would be convenient to be able to add some simple workflow to it. For example, an entry might be new, viewed, or archived. This would make the summary page more useful to users.

This project describes some ideas about how this could be achieved.



A simple implementation can be based on tags that can be associated with form data. More than one tag could be associated with an entry. We can define the following tags:
  • new
  • viewed
  • edited
  • archived
Some tags can be combined:
  • viewed+archived
  • edited+archived
Some cannot be combined:
  • new+viewed
  • new+edited
  • new+archived

Modifications to the summary page

The summary page must have the ability to show data by tag. For a simple workflow, this is an option:
  • new (inbox!)
  • archived
  • neither new nor archived (no longer in the inbox, but not archived)
  • inbox (not archived), with styling/icons to show entries that have the viewed and/or edited tags
  • archived
The summary page must support additional, configurable actions/buttons, which allow to manipulate tags. For example, an "Archive" button can add the archived tag to one or more entries, and a "Move to Inbox" button can remove this tag.

The summary page must also be able to filter and/or group form data by tag. For example, it would be convenient to be able to switch between new, viewed, and archived.

Search must be modified to make sense depending on those tags as well.

Open questions:
  • Can a single table show inbox/archive, or are multiple tables needed?
  • If multiple tables, do they show at the same time on the page, or does the user switch between views?
  • Can search apply to all the tags?

Modification to persistence

One question is: where to store those tags? In Data Envelope and Metadata, we proposed implementing an envelope for data. This is probably the way to go:
  • Adding the envelope probably doesn't require changing the persistence layer implementations except for search.
  • However, Form Runner needs to be modified to be envelope-aware.