What is version control?
According to Wikipedia, version control is defined as:
…the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, or simply “revision”. For example, an initial set of files is “revision 1”. When the first change is made, the resulting set is “revision 2”, and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.
What’s the purpose of having version control/version history for blank form templates?
Whenever a blank form is created and published, it’s available to the end users to use and fill out. If this form is later edited, the integrity of the data collected using the old form might be at risk. For example:
- If a field is removed from the template, what happens to the data that was collected into that field?
- Does that data get removed?
- Is there now a bunch of orphaned data?
- And who altered the form?
- When was the form altered and why, and did the person who altered the form have permission to do so?
These are some the reasons you need version control, even for blank form templates.
In XForms, whenever you make a change to a form template and publish that change, a new version is automatically created for the form template and is used for all future data collection using that form template (until the next version—or revision—is published). All data collected using a prior version of the form template will still be associated with the older version of the template that was published at the time of the data collection, and not with the newer revised version of the template. This type of control is necessary not only for data retention, but also for audit trail purposes.
What does this look like in XForms?
All of this versioning control stuff is fairly automatic in XForms. As an admin of the system, you really don’t have to worry much about it…just know that it exists and that if you want to revert back to an older version of a form template, it’s pretty easy to do. Here’s a few screenshots of this.
In the screenshot above, note that there is a listbox toward the top right of the screen with the version # on it. If you click on that listbox, you can select an older (or newer) version to activate and publish. If you click on the brown “Edit” button, a new version is automatically created, and then that listbox is updated with the new version.
In this screenshot above, you can edit some form template basics/header information, such as the form template name, and whether or not the template is a Subform. Cloning a form template is also as easy as just clicking on the “clone” button at the top of the screen.
Preview your draft form in a live setting
If you are an admin of the system, you can also preview the draft form in a live setting inside the app (native mobile and web app). Draft form templates will appear on the form selector popup screen with the word “draft” appended to it and with a pink background color. Non-admin users will not see this form on their app. The screenshot below illustrates this.