All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Form section headers are now left-aligned again.
- In pages mode, adding a repeat to the current page scrolls to top of page.
- Constraint is evaluated twice when form value is changed (performance).
- Make form updates propagate much faster in offline-capable views.
- Min() and max() return undefined for empty values.
- Parallel batch uploads may cause lost data in ODK Aggregate.
- Support for dynamic required expressions.
- Support for jr:requiredMsg.
- Basic support for big-image form attributes on itext values.
- Vietnamese translation.
- Updated Spanish, Slovak and Dutch translations.
- Existing XForm content of secondary external instances not properly cleared if nodename is not 'root' or if multiple root-level nodes are present.
- Rogue XML namespace added in ODK Collect submission causes namespace incompatibility error when loaded for editing.
- Persian translation.
- Updated Dutch translation.
- Empty lines in external CSV data result in empty items.
- Media files in recovered auto-saved record get lost during saving as a regular record.
- Auto-saving did not work with records loaded from storage. Only enabled for new records now.
- Export functionality.
- Add-to-homescreen guidance for iOS/Safari, Android/Chrome and Android/Firefox.
- Links are underlined.
- Updated German, Dutch and Slovak translations.
- Under some conditions surveys/list and surveys/number return too many results.
- Multiple span elements on same line get rendered as one span.
- Media files not removed from browser storage after submission.
- Media files from camera app in iOS get overwritten because the same filename is provided by the iOS camera pp.
- Attempt to upload queue immediately after saving a final record.
- If users logs out, queue cannot be submitted, no login UI shown.
- OpenRosa authentication: a change in auth status for one user causes global appCache refresh.
- Show helpful "Use Safari on iOS" message when unsupported iOS browser is used.
- Updated Slovak, Dutch and Norwegian translations.
- Empty error dialog when form fails to load.
- Form footer margins incorrect.
- Media & data form resource retrieval does not work with "external authentication".
- Media missing from submission in offline-capable views.
- "Experimental" warning message
- InstanceID logging of successful submissions (optional feature, off by default).
- Submission counters not updated upon successful submission.
- Node 4 incompatibility.
- Slovak translation.
- Updated Italian, Dutch and German translations.
- Redirect all IE users to /modern-browsers page.
- Clicking brand logo link with '#' value messes up offline views.
- Several issues where updating form media files did not properly update the form caches on server and client.
- File uploads in Chrome in offline-capable view fail to load after an hour (workaround for browser bug).
- If accompanying file for record cannot be retrieved, upload is blocked forever.
- NodeJS 0.12 incompatibility.
- If form resource retrieval fails, it won't be re-attempted upon next load
- Chevron icons in timepicker not shown.
- Current() does not switch context instance for relative paths in an XPath predicate.
- Make form updates propagate quicker in offline webform views.
- Themes with hyphen in name do not register.
- A label or hint that contains a <span> element without other markdown is not rendered as HTML.
- False 'Form has updated' messages appear continously every 20 minutes.
- External data loading failing.
- Encoded return URLs were not decoded.
- Ability to link to custom library to obtain account info.
- Previews now only allowed for forms hosted on linked server.
- API /surveys/list and /surveys/number return error when linked server is "".
- Styling of load error dialog sometimes messed up.
- Media uploads failing
- Previews not working with form query parameter.
- Directionality of language not correctly determined if first hint (or label, if no hints in form) has value '-'.
- Language selector on small screens has right border.
- During loading the form footer is not positioned correctly, and loader image is not centered.
- Next-page validation in pages mode.
- Analog scale picker behaviour when value is empty.
- Question focus issues in pages mode.
- Vagrant build failing due to npm version.
- Markdown lists generated if first item was not preceded by newline character.
- Analog Scale picker
- Form footer styling.
- Location of required * now on left of question (in LTR language).
- More comprehensive markdown support and now activated in all labels and hints.
- If theme changed via API, offline view does not update.
- Edit view form injection fails with certain characters.
- Ability to disable themes in config.json.
- Support for pulldata function in XForms that contain a reference to the external data in the model.
- Form initialization issue in Android (enketo-core 4.0.2)
- Switched to CommonJS modules (**WARNING: forks with custom client scripts, tests need to be updated).
- HTML titles not populated
- Repeat buttons missing in Grid theme.
- Pulldowns get cut off when the extend beyond form border.
- Formfooter buttons in pages mode overlap form border.
- Reduce space between border and form on small screens.
- Loading a record with multiple repeats with missing nodes fails with error message.
- Select minimal widgets in Grid theme overlap other text in print view.
- Repeat background color in Grid theme.
- Background color of selected radiobutton/checkbox on touchscreen in non-Grid themes.
- Repeat button location in Grid theme.
- Radio buttons inside cloned repeat, require 2 clicks if the master was selected.
- Radio button and checkbox default values not populated correctly in cloned repeat. Overriding values in first repeat.
- Indexed-repeat() result incorrect if expression is inside 2+ repeat.
- Webform not responsive when used in full-size iframe.
- In pages mode, an exception occurs after submission showing empty page.
- In pulldown select radiobuttons/checkboxes not aligned properly.
- Appearance "compact-n" support for media grid pickers.
- Indexed-repeat() expressions not working if the position is dynamic.
- Page navigation buttons messed up on small screen in pages-mode.
- Top-level (non-grouped) questions on first row do not have a top border.
- Language options in form language selector oddly aligned when mix of rtl and ltr languages is used (FF).
- Title directionality is not displayed according to script used in Grid theme.
- Right-to-left form language directionality support.
- Made page-swipe less sensitive on touchscreens in pages-mode.
- Error message is not useful when formList is found to be empty.
- Form injection fails with certain arabic characters.
- Nested branches do not get evaluated when the parent is enabled.
- Right-to-left UI language directionality support.
- Vagrant setup script updated.
- Validation error dialog message not translated.
- Fallback (english) language not cached in offline views.
- Geo Widget map tiles only partially loaded if widget not visible upon initial form load.
- Non-functional export button removed until the functionality can be added.
- API endpoint /surveys/list does not include server_url property in each survey item.
- Formhub authentication regression. WARNING: Formhub users, see additional config.json setting to work around formhub bug.
- Media for protected forms cannot be retrieved (on strict compliant OpenRosa servers).
- Auto-save unsaved data in offline-capable webform views
- API endpoint /surveys/list
- A note preceding a traditional table is formatted as a group label.
- A note following a traditional table is formatted as a group label.
- Incorrect error message shown when loading a record with a file in the edit view.
- OpenRosa Form ID is now case-sensitive. WARNING: any existing forms that have a form ID that included a capitalized letter, will get a new Enketo ID. Existing Enketo IDs will keep working though.
- Groups and repeats missing from print view in pages mode.
- Sidebar handle is shown up in print view.
- Back button in pages shows merged pages after form reset.
- Incorrectly capitalized form IDs result in unlaunchable forms.
- First page in pages mode is shown if it is disabled.
- Existing trigger value not populated in form.
- Swahili language
- Improved performance in logic evaluation.
- Firefox only prints first page.
- Failing to load record.
- Records with nested repeats loaded incorrectly and completely corrupting model.
- Index-repeat() support
- Faster loading
- Calculations on select_one inside a repeat clone throw an exception.
- Irrelevant questions inside a repeat clone are shown but should be hidden.
- Calculations inside repeat clones are not evaluated upon form load.
- Enable print script for themes based on Grid Theme that include "grid" in the theme name.
- Do not attempt to load table/radio/likert/media grid widgets when they are not required.
- Even faster validation for some forms.
- Better performance of large default repeat creation with jr:repeat-count.
- Screen view remaining at full screen width after printing form with Grid Theme.
- Print dialog buttons not visible with Grid Theme (Enketo Express).
- Sequential notes overlapping each other with Grid Theme.
- Exception occuring in some specific cases when loading an existing record.
- Click lag (especially on mobile) due to slow progress bar update.
- Branch update performance
- Calculate update performance
- Widget loading performance, WARNING: remove triggerwidget, add horizontal choices widget, see default-config
- Top border missing and margin too small when a visible note is preceded by a hidden note.
- Any branch containing a geoshape widget caused an exception to occur when it was made irrelevant.
- Appearance 'horizontal' no longer displays with evenly-spaced columns.
- Some buttons in Safari have border and background when they shouldn't have.
- Side bar in Safari is not stretching to bottom.
- Italian language
- Romanian language
- All forms with logic broken in Internet Explorer.
- When existing instance with multiple repeats is loaded, only the first repeat is created and populated.
- XML nodenames ending with hyphen or underscore failed to be found.
- Broken submissions.
- Arabic language (left-to-right still).
- Text and number inputs in Grid Theme now displayed in full cell width.
- Updated Greek, German, and Dutch language.
- Geowidget not displayed displayed in full width in pages mode with Grid Theme.
- Hide/show input fields button in Geo Widgets in Grid Theme not clickable after clicking show.
- Remove existing content form external instances to enable ODK Validate hack.
- Reliance on .csv extension for external data broke broke Aggregate support.
- Allow empty Google Analytics domain in configuration.
- Authentication not working on https (reverse proxy).
- API URLs not returning https (reverse proxy).
- German language
- Greek language
- Much faster form validation.
- Not showing 'save as draft' in pages mode.
- Show supported languages on front page.
- Media files not submitted in offline-enabled views.
- Installation with Vagrant failed.
- Local Redis configuration was ignored.
- Support for external instance sources, CSV and XML
- Spanish language
- Configuration now done with local config.json that overrides default (rename existing config/config.json before updating!).
- Dutch translation
- Authentication documentation
- Installation with Vagrant.
- In media input widget, when media is too large, record is still populated with file name.
- Broken form retrieval with formhub servers.
- Error message 'ECONNREFUSED' not correctly changed to human-readable message.
- Meta data for username
- Meta data for deviceid
- OpenRosa authentication
- Change log
- API v2 documentation
- Form cache on server would not update if XForm content (only) changed
- Panic button to clear browser database
- Redirect IE9 and less to Modern Browsers page
- Manifest taking over all error pages and redirecting to 'offline' page.
- Full offline capability
- Grid Theme
- Temporary API v2 documentation
- API access of parameters using a modern method.
- Grid theme in pages mode shows all questions at full width.
- File inputs keep shows file name after input is emptied.
- Repeat groups not working when they have no <group> wrapper.
- Multiple markdown links in a note are merged into one.
- Internationalization of user interface
- Dutch language
- Populate page title with name of form
- False 'edited' event firing.
- Multipe markdown links in a note are merged into one.
- Select minimal in first repeat not working right.
- Support for multipe themes.
- Theme switching via API (v2)
- Styling of 'Pages mode' buttons
- Stretch short forms and short pages to full height of screen.
- KoBo/Formhub themes occassionaly print in screen style when print button is used.
- Incorrect dialog positioning.
- App breaks when form is loaded with a default value for geopoint/geotrace/geoshape.
- Ability to paste KML coordinates in geoshape widgets.
- Ability to add Google Maps layers for geo widgets.
- Ability to print from iframe views.
- Send X-OpenRosa-Version header to comply with OpenRosa specs.
- External authentication support.
- Instance API endpoint does not add return URL to response.
- Ability for iframed view to post message to parent window.
- Hide print button in iframe views
- Crash in Internet Explorer 10 (due to use of console.time).
- Various iframe issues.
- Issue with reporting edit status of current form.
- Various issues with modal dialogs
- Time, date and datetimepickers are reset when user clicks Enter elsewhere in form