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

gh-594 Update bulk editor item selection #621

Merged
merged 7 commits into from
Jul 28, 2022
Merged

gh-594 Update bulk editor item selection #621

merged 7 commits into from
Jul 28, 2022

Conversation

pjmonks
Copy link
Contributor

@pjmonks pjmonks commented Jul 27, 2022

Resolves #594
Resolves #582
Resolves #583
Resolves #584

  • Add child domain type selection to pick more than Data Elements
  • Change child item selection UI to use detailed selection list
  • Move breadcrumb component out of catalogue search and into shared module
  • Restyle the select form
  • Change buttons in spreadsheet view to make more sense
  • Clear context when going back to item selection
  • Support correct root item when bulk editing Data Classes

Also resolves gh-582, gh-583 and gh-584 to allow bulk editor to work with more domain types:

  • Terminologies
  • Code Sets
  • Data Classes

Note: the selection of profiles is still inside the "selection list" area of the bulk editor. Issue #595 will move that to the tabbed spreadsheet view.

Screenshots

Select different child domain types:

image

Updated item selection list UI:

image

Example of Data Classes being bulk edited:

image

* Add child domain type selection to pick more than Data Elements
* Change child item selection UI to use detailed selection list
* Move breadcrumb component out of catalogue search and into shared module
* Restyle the select form
* Change buttons in spreadsheet view to make more sense
* Clear context when going back to item selection
* Support correct root item when bulk editing Data Classes

Also resolves gh-582, gh-583 and gh-584 to allow bulk editor to work with more domain types:

* Terminologies
* Code Sets
* Data Classes
@aaronforshaw
Copy link
Contributor

This looks good and I found the bulk editing workflow much faster to use 👍

A few usability comments:

  • When bulk editing terms of a terminology (e.g. using the bootstrapped Complex Test Terminology) only the first 10 terms can be selected. I think this is because the endpoint http://localhost:8080/api/terminologies/{terminologyId}/terms?all=true&sort=label intentionally does not actually return all terms. So some pagination might be required so that a user can select more than just the first 10 terms.
  • The left column of the bulk editing table is headed 'Elements', which makes me think of data elements. Possibly this could be headed 'Items' instead, given that the column can be for data elements, classes, terms etc....
  • After successfully saving some edits, when I clicked on the 'Close' button there is a confirmation saying that any unsaved changes will be lost. In future this could be enhanced to check for any unsaved changes; if there are none then close without the confirmation modal.
  • It took me ages to find the save button. Elsewhere save is done using a button labelled 'Save' or by pressing a green checkmark. It might be good to use one of these rather than using the floppy disk icon.
  • The 'Domain type' select could display the domain types capitalised e.g. 'Data Type' rather than 'Data type' for consistency with other parts of the UI
  • In the default profile I haven't been able to save classifiers or aliases. I don't know whether this is due to the bulk editing change, or the default profile change.

pjmonks and others added 3 commits July 27, 2022 17:39
* Rename "Elements" column to "Items"
* Add labels to "Validate" and "Save" controls
* Capitalise items in child domain type list
@pjmonks
Copy link
Contributor Author

pjmonks commented Jul 27, 2022

Thanks for the feedback @aaronforshaw . Some of this was simple to change, very minor. The terms list I need to look into, I might be able to implement virtual scrolling in the selection list to act as pagination. I wasn't aware of that limitation for term lists.

Your other points I will investigate but may push out into separate issues:

  1. Aliases/classifiers might need some custom cell editors. Classifiers at least I would imagine needs to update with IDs of classifiers rather than a string
  2. Only seeing the "do you want to leave" confirmation would definitely make sense only if you haven't saved, it would just need to be tracked correctly. Each tab now saves it's own profile now.

pjmonks added 3 commits July 28, 2022 11:01
The 'all' param does not work on that endpoint, so workaround it for now
Virtual scrolling should render the list item DOM options more efficiently when the list is large
@pjmonks
Copy link
Contributor Author

pjmonks commented Jul 28, 2022

@pjmonks pjmonks requested a review from aaronforshaw July 28, 2022 11:22
Copy link
Contributor

@aaronforshaw aaronforshaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing all the comments, raising new tickets where necessary.

I just noticed one other issue, which I didn't spot earlier: I think the validate button and indicator should be hidden for the default profile.

@pjmonks
Copy link
Contributor Author

pjmonks commented Jul 28, 2022

@aaronforshaw There is actually one case when we validate the default profile, it checks if the multiplicity value you entered is in the correct format e.g. "0..1" and not some random numbers/characters. To adjust that properly that would probably also require a custom cell editor, which I think would be another issue to raise.

@pjmonks pjmonks requested a review from aaronforshaw July 28, 2022 13:48
@pjmonks pjmonks merged commit 5dcb707 into develop Jul 28, 2022
@pjmonks pjmonks deleted the feature/gh-594 branch July 28, 2022 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants