Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: UI for working with non-enum multivalued slots #423

Open
pkalita-lbl opened this issue Dec 6, 2023 · 2 comments
Open

Proposal: UI for working with non-enum multivalued slots #423

pkalita-lbl opened this issue Dec 6, 2023 · 2 comments

Comments

@pkalita-lbl
Copy link
Collaborator

pkalita-lbl commented Dec 6, 2023

Currently DataHarmonizer presents a custom editing modal for slots that are multivalued and the range is an enum:

image

Once the user finishes using the modal, the cell value becomes a ; -delimited string of the chosen items:

image

However, for a slot that is multivalued but the range is not an enum it is incumbent upon the user to manually produce that ; -delimited string. There are a few drawbacks here:

  • It may not be obvious to the user that the slot is multivalued
  • It may not be obvious to the user that ; is the required delimiter

Here are some quick sketches of a proposed UI for editing non-enum multivalued slots. Starting with the following:

DH multivalued string

If the user starts editing a cell in the "Multivalued string" column, they see a modal with a text input field:

DH multivalued string(1)

Typing into the text box and clicking the "Add" button adds that item to a list displayed below the input. From that list items can also be removed. For example, if the user has added three items:

DH multivalued string(3)

Once the user dismisses the modal, the appropriate delimited string is set as the cell value:

DH multivalued string(4)

Separately, if we decide to adopt this, it may be worth considering updating the editing interface for multivalued cells with enum ranges to be consistent. I could imagine the same type of modal, but instead of a plain text box, it would present a dropdown with the enum options:

DH multivalued string(5)
DH multivalued string(6)

@ddooley
Copy link
Collaborator

ddooley commented Dec 12, 2023

Having existing items each to a row, and deletable via [x] looks good. Having this and the multi-select interface unified also looks good!

Another feature would be to have for the non-enum multiselects is that they too get a dropdown list of items which are compiled (say, on load) from the existing strings across all rows of that column as a way to informally provide an enumeration.

@pkalita-lbl
Copy link
Collaborator Author

Another feature would be to have for the non-enum multiselects is that they too get a dropdown list of items which are compiled (say, on load) from the existing strings across all rows of that column as a way to informally provide an enumeration.

Yeah that makes sense.

I'm going to put this on my backlog for now. It has been talked about within NMDC but hasn't become a super high priority yet. I can give you a heads up if I start working on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants