stats4sd / tape-data-system

2 stars 0 forks source link

Find better UI / UX for submission content editing #53

Open dave-mills opened 2 months ago

dave-mills commented 2 months ago

We need a way for field supervisors to 'review' submissions, and edit any issues that have been reported by enumerators. The current JSON editor field isn't useful for people who aren't used to viewing raw JSON.

dan-tang-ssd commented 2 months ago

I did a search in google, found a package with demo. The demo looks good. It provides a tree view for user to edit a node with textbox, user does not need to edit raw JSON value.

json-editor - a Vue editor for JSON document https://github.com/tangram-js/json-editor https://learninglaravel.net/json-editor-a-vue-editor-for-json-document

Cons:

  1. The installation procedure is just a git clone. It looks like there is no installation guideline for a Laravel application.
  2. It looks like an old package developed 6 years ago. The developer seems stopped maintaining it.

Screen shots:

image

image

dan-tang-ssd commented 2 months ago

I did another search for keyword "json-editor" in Packagist web site.

For packages with screen shot, they look similar to package JSON Column that we are currently using. Some other packages do not have screen shot in packagist web page.

I will install and evaluate the top 6 packages, see if anyone is a better choice for editing JSON content.


Screen shot:

image

dave-mills commented 2 months ago

Intersting find. On first look, I think the first suffers from the issue of being too 'technical looking'. For example, the actual JSON object shows:

I think most of the "JSON editor" packages will have this issue!

We really need something that mimiks the questions from ODK - i.e. shows the question text from the ODK form...

Honestly, what I think we need is to get Enketo working with these forms! Which will require us to move away from using the csv lookups in their current format, which requires either:

dan-tang-ssd commented 2 months ago

Intersting find. On first look, I think the first suffers from the issue of being too 'technical looking'. For example, the actual JSON object shows:

* the structure of the form (with many groups) that is often hidden from the end-user;

* the variable name instead of the question text from ODK - the users who will be editing the data will expect to see the question text.

I think most of the "JSON editor" packages will have this issue!

Er... in this case, I think almost all "JSON Editor" cannot do what we need. submissions.content contains survey answers only, it does not contain survey questions. So we will need to combine xlsform and submission.content and show it in front end for editing. This belongs to "ODK" context instead of "JSON Editor"... I think I do not need to install and evaluate any JSON editor as none of them can fulfill our requirement.

We really need something that mimiks the questions from ODK - i.e. shows the question text from the ODK form...

Honestly, what I think we need is to get Enketo working with these forms! Which will require us to move away from using the csv lookups in their current format, which requires either:

* we develop a way to integrate the custom lookups into the actual XLSX file before uploading it to ODK central;

* OR we switch to using "select_one_from_external_file" and then hope that the ODK team manage to get that working with multiple languages before that becomes a problem for us...

Yes, Enketo is actually doing what we need. It would be great if we can "use" Enketo some way for submission editing.

Worth to check whether it is techincal feasible to show a submission via Enketo in our application, then trigger an event to update submission content in both ODK central and submission table.

dave-mills commented 2 months ago

Yes, Enketo is actually doing what we need. It would be great if we can "use" Enketo some way for submission editing.

Worth to check whether it is techincal feasible to show a submission via Enketo in our application, then trigger an event to update submission content in both ODK central and submission table.

The big problem is that none of our forms that use search() work in Enketo. (And all of them use search() to get data from csv files...)