-
Notifications
You must be signed in to change notification settings - Fork 43
ODK X Tool Suite Release Notes
The ODK-X tools share common libraries. This attempts to describe all the changes, by revision, across the various tools.
Revision: 246
Full Release Date: January 9, 2022
- Downgrade handlebars library previous upgrade (v4.7.7 -> v4.2.2) to fix select_one and other possible issues
Revision: 244
Full Release Date: December 16, 2021
Preview Release Date: October 19, 2021
NOTE: Make sure you use Services 2.1.9 with Sync-Endpoint 2.1.9 as the protocol was updated with fixes.
- Remove dependency on OI File Manager
- Drop support for Android 4.4.4. Minimum Android version is 5.0
- Upgrade JavaScript libraries
- Upgrade Android java dependency libraries and remove multi-dex support
- Add new Calendar Date Prompts for Survey (GSoC)
- Revised Suitcase User-Interface (GSoC)
- Fix sync protocol so it detects if server has a new table (after a server reset) to prevent old data and new data syncing
- Sync speed improvements
- (#43) Scan should have an example form (clarlars)
- (#52) Improve sync-client's handling of CSVs (Shubhamr837)
- (#71) Plot.xlsx and visit.xlsx styling needs to be fixed (chinenyelilian)
- (#79) Replace hardcoded column name strings ( Lamouresparus]
- (#198) Add description on app-designer's QR code generator (EstherPhebe)
- (#249) init-odkx-sync-endpoint.py should use a shallow checkout of Sync Endpoint (Shubhamr837)
- (#251) Update Button Label in Suitcase (sanyud24)
- (#286) Error [object SQLError] when doing purge database in app designer/chrome (EstherPhebe)
- (#296) Remove hardcoded strings in InitalizationUtil (apigeoneer)
Revision: 242
Full Release Date: April 27, 2021
Preview Release Date: April 11, 2021
- Android apps updated to target API 29 to avoid file scoped permission issues
- Upgraded dependency libraries to incorporate security and bug fixes
- UI Improvements for Suitcase
- Improve Services Android Lifecycle issues
- #50 Suitcase errors on reset app server with empty server (ADISKING1)
- #65 refactor: Remove redundant View castings in Android projects (VarunT11)
- #77 Suitcase Reset App Server should have confirmation (ADISKING1)
- #131Improve UX when synching and showing filepaths (VarunT11)
- #150 Improve determination of compatible API version (IAmJaishree)
- #155 Show last synced time and date in ODK-X Services (pawanharariya)
- #157 XLSX converter doesn't trim whitespace from column names (EstherPhebe)
- #179 Include LICENSE (linl33)
- #185 Survey table of contents has hard-coded heading (starboi02)
- #186 Add a Grunt command to pull ODK-X logs (adityaofficial10)
- #187 Update ODK 2 to ODK-X in Sync-endpoint login screen (adityaofficial10)
- #190 Hard-coded text in Survey's sort.xml (starboi02)
- #193 ODK-X Services crashes on Android 11 (wbrunette)
- #196 Tables/Survey crash with HTML select on Android 5.1 (mtthien-tma)
- #197 Default Suitcase CLI's dataVersion to 2 (Shubhamr837)
- #200 UI Feature Update in Services : Password Visibility Toggle (VarunT11)
- #201 Spinner's selected Item doesn't persist between activity lifecycle changes in services app (pawanharariya)
- #203 Wrong link in Services preferences (IAmJaishree)
- #210 AboutMenuFragment gets loaded to Activity stack multiple times (riturajjain2000)
- #211 Update ODK-X Services description (ADISKING1)
- #215 Bug in settings username (pawanharariya)
- #216 Bug in admin access in settings of services application (Shubhamr837)
- #218 Typo in String file of Services (riturajjain2000)
- #219 Suitcase errors on selecting reset option while download is in progress (Shubhamr837)
- #226 Change default server URL (VarunT11)
- #227 Fix Null Pointer on Services launch (VarunT11)
- #232 Buggy Grid Form Rendering in Survey Application (swaingotnochill)
- #233 Incorrect button label for upload file chooser in suitcase (Shubhamr837)
- #234 Bug in Launching Sync Activity after Services Install (VarunT11)
- #243 Add a button to Suitcase to refresh list of tables after logging in (Shubhamr837)
Revision: 240
Release Date: December 29, 2020
- Add new date types ‘birth_date’ and ‘date_no_time’ prompt types that do NOT automatically adjust to the time zones. NOTE: All other datetime types adjust to time zones.
- Improved Sync-Endpoint script to make setup simpler
- Add ability to customize LDAP administrator password during Sync-Endpoint setup
- Android apps updated to target API 30
- Upgraded libraries to incorporate security and bug fixes
- Switch from Fabric.io Crashlytics libraries to Firebase Crashlytics libraries
- Reformat some of the existing datetime formats to: “YYYY/MM/DD”
Revision: 238
Release Date: December 20, 2019
- Update Spanish translations in all tools
- Update build libraries and plugins
- Update node.js dependencies in Application-Designer
- Remove current date as the default for the birthdate prompt in Application-Designer
- #60 Auto load user defined home screen in tables after sync
Revision: 236
Release Date: October 7, 2019
- ALPHA release of Notify (Desktop Application and Mobile Application)
- Upgrade to Gradle 5.4.1 and Android Plugin 3.5.1
- Upgraded AndroidX libraries
- Improve Android 9 compatibility
- Fix logging in Survey
- Fix dialog manager
- Update NGINX version for sync-endpoint-default-setup
- #103 app-designer tabs are not viewable if window width is too small
- #113 select_one_integer does not re-render when the value has been modified
- #114 Failure to Authenticate in Services 2.1.4
Revision: 234
Release Date: August 5, 2019
- Upgraded Android tools to use Gradle 5
- Switched from AppCompat to AndroidX libraries
- Set useCleartextTraffic to true in Android tools
- Updated Spanish translations in Android tools
- Updated Handlebars, Backbone, RequireJS, and jQuery libraries and removed Chai library in App-Designer
- Added birthday prompt to App-Designer
- Fixed Next and Back button style in App-Designer
- Updated js-xlsx library to 0.14.1 in App-Designer
- Added functionality to allow user to specify which port to use for App-Designer
- #64 Unable to save as complete if _savepoint_timestamp is in the future.
- #98 Provide an Application Designer zip package without example tables/forms and other non-essential files.
Revision: 232
Release Date: May 31, 2019
- Alpha release of Submit
- Including improved user interactions for WiFi Direct data syncing
- Added swipe to Survey
- Added QR Code Generator to App-Designer
- Added support for selecting images with content URIs
- Changed tool names from ODK to ODK-X
- #61 Tables crashes when deleting a row from Spreadsheet view
- #100 Replace "quota message" with errors number
Revision: 230
Release Date: March 22, 2019
- Fix uri parsing of files for Tables CSV import functionality
- Fix acknowledge prompt type text
- Convert to 2 character language codes
- Fix text overflow in select prompt type
- Upgrade Android Gradle plugin and various libraries
Revision: 228
Release Date: January 14, 2019
- Upgraded Android Gradle plugin and various support libraries
- Updated Spanish translations
- Fixed Sensors framework and Zebra Printer Driver
- Fixed Tables MapListViewFragment to update the list when a marker is clicked on the map
- Disable scrolling of ODK Survey navbar
- Fix text overflow in ODK Survey select prompts
- #1410 Survey form name overflow
Revision: 226
Release Date: Sept 6, 2018
- Fragments, Activities, Dialogs, and Preferences have been converted to use support libraries
- Added support in for Submit and renamed all RPCs to follow Android naming convention
- Updated target and compile SDK to 26 and 28 respectively
- Upgraded Android Gradle plugin and various support libraries
- Added in Spanish translations for all tools
- Added in notification channels for Services
- Prevented security exception regarding attachment path by using a FileProvider
- #1405 grunt adbpush fails on Android 8 devices
Revision: 224
Release Date: May 17, 2018
- Upgraded Android Gradle plugin and various support libraries
- Major refactor to enforce types for data rows (creation of TypedRow class)
- Replaced writer for CSV output in Suitcase
- #1393 Survey Acknowledge type can cause database inconsistencies @wbrunette
Revision: 222
Release Date: April 2, 2018
- Upgraded Android Gradle plugin to 3.1.0 and Gradle wrapper to 4.4
- #1370 Add sorting feature for available form list @SatyamBansal
- #1372 Launch server settings if first launch @lakshyagupta21
- #1373 Configure Services's Server Setting with a Barcode @laddha-adi
- #1374 Increased text size of "Select the form to open" from 14sp to 21sp @laddha-adi
- #1377 Options for Tables table ordering @himanshusagar
- Stability improvements for Progress and Alert Dialogs
- #1376 Stop menu items from overflowing and becoming hidden @lakshyagupta21
- #1384 Crash fix for opening browser when no browser is installed @lakshyagupta21
Closed Issues
- #1370 Add sorting feature for available form list @SatyamBansal
- #1372 Launch server settings if first launch @lakshyagupta21
- #1373 Configure Services's Server Setting with a Barcode @laddha-adi
- #1374 Increased text size of "Select the form to open" from 14sp to 21sp @laddha-adi
- #1376 Stop menu items from overflowing and becoming hidden @lakshyagupta21
- #1377 Options for Tables table ordering @himanshusagar
- #1384 Crash fix for opening browser when no browser is installed @lakshyagupta21
- Re-architect the Progress and Alert Dialogs
- Improve Survey load speed for dropdowns
- Allow Digest Auth in Sync Client
- Display row permission filter in Sync Endpoint Web UI
- Various UI and other improvements
- #1381 Export CSV in Tables crashes when there is no table
- #1368 Master branch in 218 doesn't compile without local libraries
- #1367 app-designer pushing to incorrect folder
- #1364 ODK Survey forms not appearing when pushed from App Designer via USB
- #1363 Months in datetime combo picker are English only
- #1351 Sync notification doesn't launch Services
- #1329 Services no longer supports gmail account using Aggregate 1.4.15
- #1327 Sync sometimes backs you out when finishing or failing its sync process
- PATCH: Fixed issue with Survey webkit not being reloaded properly after coming back from an intent caused by latest Android webkit update
- Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
- Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
- Upgraded all projects to use latest gradle plugin and to compile with Oreo
- Reduced tool initialization time by only running initialization common to all tools when necessary
- Fixed Scan crash related to file system permission
- Other bug fixes
- Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
- Navigate widget added into Tables
- Local tables functionality added into JavaScript API
- Bug fixes
- Requires ODK Sync Endpoints or ODK Aggregate 1.4.15 (with reduced functionality)
- Arbitrary query options have been added alongside the structured queries for most of the odkTables.js APIs.
- Suitcase will now fill in the savepoint_* and _locale columns on upload if you leave them blank.
- Suitcase no longer requires a specific column order.
- Expanded the sync-endpoints default max file upload size from 1MB to 32MB.
- The ODK Sync Endpoint Web UI reduced its footprint by switching to the jre-slim base image.
- Public preview of an early experimental alpha version of ODK Deploy (an Application Designer replacement)
- Requires ODK Aggregate 1.4.15 or Sync-endpoint.
- Sync-endpoint configuration has been moved from UI to a file.
- Benetech Hamsterball UI has been ported to the Sync-endpoint.
- Android runtime permissions have been updated to support 6.0 and higher.
- Fixed bug in split screen functionality.
- Removed deprecated portions of App-Designer.
- Added crash tracking and analytics.
- Fixed bug with FormProvider not showing the correct forms after Sync.
- Requires ODK Aggregate 1.4.15 or Sync-endpoint
- Added split screen functionality into Tables to allow users to see a detail and a list view on the same screen.
- Improved Survey speed while entering data on a form.
- Updated data filtering model to be more user friendly (user viewing permissions on the Android device).
- Support for groups added to allow higher level of granularity for data filtering.
- Sync-endpoint replaces ODK Aggregate as the server.
- New datetime widget added to Survey.
- User defined translations support added into Survey and Tables.
- Status from intents can be retrieved within the Tables JavaScript.
Alpha
- Requires ODK Aggregate 1.4.12.
- rework database service internals to minimize garbage and improve performance.
- rework sync service internals to load and process smaller portions of data tables during the sync interactions (to improve performance and reduce memory usage).
- move server-row-change logic into database service from sync service. Add database API tests for this functionality.
- add caching for table metadata to improve performance.
- create a new "permanent" top-level directory that is not touched by ODK tools but can hold content that is vended by the webserver.
- signature widget has been ported from the ODK Collect codebase.
- fix Mac address gives bogus device identifier on Android 6.
- fix webserver behavior that caused webkit to intermittently show a white screen.
- many packages and APIs renamed and refactored across projects.
Alpha
- Requires ODK Aggregate 1.4.12.
- fix select-multiple and complex data types did not always enforce required setting
- fix support geopoint capture in web pages (vs. via ODK 2.0 widgets).
- fix subtle bugs affecting workflows involving pushes of new configuration to the device and resetting of the app server from the device.
- ODK Survey: only update fields that have changed; not simply those that have been touched.
- row-creation and row-level access filters. This is not secure in that all data rows are sent to the device. The filters do control visibility and modifiability using our tools, but do not prevent malicious users from tampering with data.
- rework database service AIDL to unify query mechanisms (pushing distinctions to client-side stub layer) and add limit and offset support on queries.
- propagate exceptions across database service AIDL.
- bind args is now an Object array, fixing a subtle casting-to-string error in where clauses.
- clean up app-designer example forms and fix numerous subtle errors in them.
- fix bugs and add numerous tests for elementType syntax.
- fix mismatch between Java-generated data table models and those produced by XLSXConverter.
- plumb new access filter functionality through the JS layer. Provide a rowlevelaccessdemo in app-designer demonstrating that functionality.
- fix issues that had prevented automated ODK Tables UI tests from running (build system).
- update Gradle and Android Studio build environment
- the Javascript query APIs have two additional arguments for limit and offset. Pass null to these to retain current behavior.
Alpha
- KNOWN BUG: media files for table-specific configuration files under the config/assets/csv folder are not sync'd up/down from the server. This requires a code change in ODK Aggregate.
- KNOWN BUG: Syncing rows that contain more than one media file attachment can cause database corruption (most likely) on App Engine systems. The failure rate is < 1% for these records. This requires a code change in ODK Aggregate. In our test data set of ~450 rows with 30-60 attachments on each row, we have seen ~6 rows with data corruption.
- KNOWN BUG: Occasionally, if ODK Survey has not yet been started, and needs to run the initialization logic, it can forget what form it was attempting to open and instead display the "default form" with a message about specifying a form_path in the URL. The work-around is to back out of ODK Survey and re-launch it.
- KNOWN BUG: If the anonymousUser has Synchronize Tables permissions, you cannot Reset App Server using an appropriately-privileged username or Google account. You must revoke Synchronize Tables permissions from the anonymousUser prior to the reset (and then restore them afterward).
- SCHEMA CHANGE: The data tables in the various example apps within the tablesdemo have had schema changes. These data tables now have ODK Survey forms defined on them so you can now, for example, create your own Tea house or add a Tea type.
- Rewrite the UI and the internals of ODK Services synchronization logic to improve error reporting and to provide progress and outcome dialogs during a sync.
- Fix bug that caused file manifests to always be requested during sync, rather than optimizing those fetch requests.
- Fix bug that prevented deletes of data records from taking effect on the server.
- Fix bug causing the table-level sync status to be updated after it had already been placed into a failure state.
- Fix bug that caused row-level file attachments to sometimes not be sync'd if alternative sync settings (Upload Attachments Only, Download Attachments Only, Do Not Sync Attachments) were used - in particular, when switching among these and the default Fully Sync Attachments setting.
- Fix bug affecting database service connection establishment / loss detection, and the notification of all such changes to the currently-active Activity and View.
- Fix bug affecting ODK Survey sub-forms. These now properly refresh the parent form when returning from the sub-form.
- Fix font size scaling issue that caused HTML text to be tiny on higher-resolution tablets. This affected both ODK Tables and ODK Survey (scaling of text on non-HTML Menus and Dialogs has not yet been implemented).
- ODK Survey now acts similarly to ODK Tables when Settings / Reset Configuration is chosen.
- Fix ODK Survey Contents-menu bug.
- General update of icons and clean-up of drawable resources included in APKs.
- Add test documentation and working UI Tests to ODK Tables.
- Integrate ODK Scan form designer into the App Designer (preliminary to first Alpha release of ODK Scan).
Alpha
- Known Issue: ODK Survey when returning from sub-form (e.g., linked table), has a problem restoring to the parent form. The work-around is to check the keep-only-one-activity checkbox under the system settings' developer options.
- Known Issue: when uploading data records with large numbers of attachments on each data row (e.g., ODK Scan datasets), there is a < 1% chance of data corruption of the attachment manifest on the server. This is an issue with ODK Aggregate 1.4.10. When 1.4.11 is released, please upgrade to that version.
- all tools: fix 1MB database fetch limitation that prevented large datasets from being manipulated.
- all tools: consolidate server and device settings into common settings dialogs
- all tools: implement "reset configuration" action on settings screen to trigger tools to re-initialize (not yet fully implemented across all tools)
- Sync: support ODK Aggregate username / password for authentication in addition to Google accounts.
- Sync: rework UI: if you close then return to the Sync UI, it will re-discover the already-running sync and provide detailed reporting of its progress.
- Sync: rework implementation to use adapted Apache 4.5.2 HttpClient and eliminate dependency on deprecated built-in Apache libraries and previously-used Wink library.
- Survey: remove legacy ODK 1.x form download and form upload functionality.
Reset to Alpha
- Known Issue: ODK Survey when returning from sub-form (e.g., linked table), has a problem restoring to the parent form. The work-around is to check the keep-only-one-activity checkbox under the system settings' developer options.
- all tools: new ODK Services APK handles all database access, hosts content providers, and serves web pages to our webkits.
- all tools: instance file attachments are now instance-relative ("rowPath") paths; they were app-relative.
- all tools: restructure directories into config, data, output, system.
- config is sync'd / shared config.
- data holds database and instance file attachments. sync'd into data and instance-attachment tables.
- output holds logging archives and csv and copies of attachments when exporting to CSV.
- system is maintained by the individual APKs and holds non-user-modifiable files.
- all tools: use 'default' for the application name (/sdcard/opendatakit/default) vs. the older tool-specific names.
- all tools: update Google Play Services to a version circa Android 4.1
- Services: use custom SQLite database implementation.
- Survey/Tables: restructure to use the odkCommon and odkData injected objects in Javascript layers. Restructure to share a common Android View and to process database requests with a common abstraction.
- Tables: database interactions are now asynchronous (were synchronous; blocking UI).
- Tables: remove graph view functionality. This is now considered a special case of list views. I.e., create a list view HTML page and create your graphs directly with a Javascript graph library (e.g., d3). The now-removed graph view functionality provided a heavy-handed, cumbersome, mechanism for creating limited-capability graphs of datasets, with the graph parameters stored in the properties.csv file. Directly using d3 yields a much more flexible, more powerful, simpler, presentation of information.
- Tables: remove add-point-on-map functionality (pending bug fix).
- Tables: remove the functionality to launch ODK Collect from ODK Tables.
- Tables: limit color rule functionality (the ability to define color rules will reappear in app designer)
- Tables: fix csv export/import bug that was preventing handling of commas within text fields.
- Sync: bulk-upload of attachments (requires ODK Aggregate 1.4.9 or higher)
- deprecate APK: the old ODK Sync functionality is now embedded within ODK Services. ODK Sync APK no longer exists.
- all tools: migrate to Github and restructure for Android Studio
Sync Alpha-2 ONLY
- fix for incorrectly handling gzip data
Sync Alpha-2 ONLY
- corrections to conflict resolution activity "take server changes"
Survey Beta-4
Tables Alpha-4
Sync Alpha-2
ApplicationDesigner Alpha-3
(AndroidCommon)
- change to new sync protocol using hacked-down wink client
- move ElementType and ElementDataType into REST API jar
- add functionality to assist in mock unit testing (StaticStateManipulator)
(Survey)
- misc. bug fixes.
- updated javascript libraries
- updates for rowpath
(Tables)
- updated javascript libraries
- use WebLogger instead of standard logger
- updates for rowpath
- add functionality to assist in mocked unit testing
(Sync)
- requires ODK Aggregate 1.4.5
- use wink client libraries
- use rowpath for file attachments and optimize sync protocol.
- optimize for efficient compressed protocol with NOT_MODIFIED returns
(ApplicationDesigner / SurveyJS )
- changes to support rowpath
- writes definition.csv and properties.csv when formId equals tableId
- eliminate need for Mac JS execution environment (use node instead)
- updates to numerous demos
- prototype SMS integration (needs APKs that are not yet public)
(AndroidCommon)
- unified database layer
(Survey)
- updated javascript libraries
(Tables)
- unified database layer
- remove many files (moved into androidCommon)
(Sync)
- requires ODK Aggregate 1.4.4
- only works when syncing to AppEngine (not local Tomcat server)
- update sync protocol
- move some database functionality into common database layer.
(ApplicationDesigner / SurveyJS )
- fixes for incorrect SQL filter conditions
- updates to agriculture demo form
- misc. display bug fixes
Survey Beta-3
Tables Alpha-3
Sync Alpha-1
ApplicationDesigner Alpha-2
(AndroidCommon)
- add androidcommontest project (push directories down)
- add sync AIDL (and wire it up)
- support for 4.4.2 media provider changes
- remove directory change watchers
- remove Sherlock dependency
- add About... menu (and licensing info display)
(Survey)
- extract framework and assets files from embedded zip
- use dbShim for all database interactions
- legacy "form download" operates at the tableId level, not formId
- change to publish to a tableId
- change to support multiple revisions to the same instanceId when publishing to legacy pathway
(Tables)
- add tablestest project (push directories down)
- update 3rd party jar versions
- restructure to isolate sync and database classes into their own package trees
- remove SMS and Submit functionality
- remove Java-layer graphing and calendering activites
- revise CSV import to use standard one from ODK Aggregate REST api
- extract framework and assets from embedded zip
- numerous UI display changes
- sync is now done by Sync APK
(Sync)
- first release
- requires ODK Aggregate 1.4.4
(ApplicationDesigner / SurveyJS )
- add "Save to FileSystem" button in XLSXConverter
- restore graph javascript (Tables)
- fix various demo files
- add color treatments to prompt types
- add Ajax data queries
- change to use database shim (dbShim) and eliminate W3Sql use in WebKit
- zero-length strings are treated as nulls
- adding ODK Scan demo files
- adding Jane Goodall Institute Chimp-tracking "user-as-sensor" Tables app.
Survey Beta-2
Tables Alpha-2
ApplicationDesigner Alpha-1
(AndroidCommon)
- switch to use /sdcard/opendatakit
- add local webserver (moving away from using a file content provider)
- update sync protocol.
(Survey)
- change to use local webserver (moving away from using a file content provider to vend WebKit content)
- change to use survey.properties to store General and Admin settings
(Tables)
- split conflict resolution activity into list- and row- levels
- add edit/add via Collect/Survey to Control (from Tables) Javascript API
- significant restructuring of data-model-related classes.
(ApplicationDesigner / SurveyJS )
- rework to use grunt and node for ApplicationDesigner environment
Survey Beta-1
- initial release
- new XLSX syntax
- new device directory structure ( now under .../opendatakit/survey )
- linked tables (subforms)
- selects from linked tables, external csv files and web queries
After downloading and installing, choose the 'down arrow' icon to access the Form Download screen. On that screen, select the following forms to download:
Common Javascript Framework
- whatever other forms you want to try out
After downloading the forms, return to the form chooser screen by choosing the 'open folder' icon. On that screen, select the form to open.
The Common Javascript Framework
form does not appear on this list because it is the underlying set of HTML, CSS and javascript libraries that process and render the form definitions. It appears as a form for downloading because it is separately upgradable from the Java code and because of the way the ODK Aggregate legacy integration works.
The application has been tested on Android 4.1 and higher devices. While it does work on 4.0 and earlier devices, not all features may function on those devices. On the original 2.2.3 Droid, the first load of the form will leave you with a white screen while the system reads and interprets the javascript framework files. This can take minutes.
- fix bugs causing downloads of forms to fail.
- you will need to delete the /odk/js directory and all forms.
- this monitors and scans all folders under /odk for changes to the /odk/xxx/forms and /odk/xxx/framework directories. These are considered to be potential locations for ODK Survey apps.
- ODK Survey can launch with different app names. These are directories under /odk/. Once named, and app cannot be renamed to a different app (data collection breaks).
- database structures have changed.
- various bug fixes, including back button retention on orientation changes.
- forms on opendatakit-2 must be re-pulled (they have changed).
- initial release.
You must download forms from the ODK Aggregate server ( https://opendatakit-2.appspot.com ).
The Default form
must always be present on the phone. If you delete it, no forms will render. The Default form
contains the extensive set of Javascript for rendering the form screens. This Javascript is based upon jQuery, jQueryMobile, Handlebars templates and Backbone.
The other downloaded forms include:
-
Example Form
-- a form with many examples of data entry widgets -
Custom Appearance Form
-- a form demonstrating how the look and feel of the questionnaire can change by using custom CSS styles. -
Initial refrigerator information
-- together withRefrigerator information update form
, this form demonstrates that ODK Survey can have two different form definitions that edit the same data values. This functionality is incompatible with the 1.x data pipeline, but these two forms show what will be possible with ODK Survey and the 2.0 data pipeline. -
Refrigerator information update form
-- see description forInitial refrigerator information
above.
See XLSConverter 2.0 documentation for how to develop your own form definitions.
Once you have produced a form definition file (formDef.json) from the new XLSConverter 2.0 form definition, you can use the backward-compatibility function of ODK Survey to publish submissions into an existing ODK Aggregate 1.x server.
To do this,
- from a Windows PC...
- create a
forms
directory on your system and - within this directory, create a sub-directory with a name like
example-media
whereexample
would be a brief identifier for your form name.example
should not contain any dashes (-
). The name of this sub-directory must end with-media
. - within that sub-directory, place the
formDef.json
file produced by the XLSConverter 2.0 process. - if you have any additional files, such as custom css files or images, etc., copy them into this directory.
- if you have any nested directories of images or css files, create a zip of each such directory, leave that in this sub-directory, and remove the nested directories. For example, the
Default form
on the https://opendatakit-2.appspot.com site has many zip files holding the various Javascript libraries and resources it uses. ODK Survey will in-place-unzip any.zip
files after downloading them. - Download (and save to a local file) http://collect2.opendatakit.googlecode.com/hg/form-files/convertToLegacy.hta This is a scripting app that will only run on Windows systems.
- Double-click the convertToLegacy.hta app to launch it.
- Paste the full directory path to the
forms
directory into the Forms Directory: field and click Generate. - The script will scan for sub-directories ending in
-media
and parse anyformDef.json
files contained within them, producing an ODK Aggregate 1.x-compatible XForms form definition file (.xml). These will be placed in the forms directory. So if you hadexample-media
, anexample.xml
file would be generated in the forms directory. - Now, run the ODK FormUploader 1.x tool available here to upload the form definition files (and their
-media
folders) to your ODK Aggregate 1.x instance. - You can now run ODK Survey, download these forms from ODK Aggregate 1.x and submit data into ODK Aggregate 1.x from ODK Survey.
NOTE: The converter script produces an XForms definition file (.xml) that is unusable by ODK Collect 1.x. It only contains enough information to support publishing of data into ODK Aggregate
Tables Alpha-1
- initial release