DiamondLightSource/SynchWeb

Bulk sample update is difficult to use

Opened this issue · 1 comments

ejd53 commented

Chrome, Version 112.0.5615.140 (Official Build) (64-bit)

In the Container view, e.g., https://ispyb.diamond.ac.uk/containers/cid/260277, there is a table of samples within the puck. There is a bulk-populate form above this table. It has some usability issues.

Possible to update in intermediate state

There can be a delay of several seconds between selecting a column and having it highlighted and populated with the new values. This is easily enough time to select a column, select a value, and hit Update Samples. It is possible to submit the update form during this delay, but it does not update the underlying records, despite the "successfully updated" message appearing. I assume that it's "updating" with the values that are in the table when the AJAX request is sent, rather than with those selected in the bulk update form.

It's also possible to change and submit the bulk update form after the AJAX update has been sent, but before it completes, further adding to the confusion.

Ideally, the table would be populated with the updated values so quickly as to render it impossible to submit the form before this happens. Failing that, it should not be possible to submit the form until the table updates, and certainly not while the AJAX update is in progress. It'd be nice to have some visual indication, whether a spinner or just disabling the form, to show that UI and AJAX updates are in progress.

Singular v plural

The success message refers to "sample", singular, when all samples in the puck were (or should have been) updated.

Insufficiently clear notification of errors

"Successfully updated" appears but the fields are not updated, and it's not obvious that there was an error. For example, "Screening Method" can't be set to "better than" without a minimum resolution value having been set:

To reproduce:
Open the Unattended Data Collection tab of the table. Note that "Minimum resolution" column contains no values.
Select "Screening Method" and "Better than" in the bulk update form.
Wait for table fields to be highlighted.
Click "Update samples".

Expected:
Fields are saved.
Green "successfully updated" bar appears at top of window.
(or)
Fields are not saved
Red error message appears at top of window
Green "successfully updated" does not appear

Actual:
Fields are not saved.
Green "successfully updated" bar appears at top of window.
"Update samples" button gains a thin red border.
Red "minimum resolution must be set" errors appear out of sight below table.
Error box disappears, often before you can scroll down to read it (if you know it's there)

Oddly, I get different behaviour for point number 3. I don't get the green "successfully updated" bar at the top, and the errors at the bottom don't disappear, even if I wait >30s. Using Chrome (113) and Firefox (102.8).

Have made an internal ticket to push this forward (https://jira.diamond.ac.uk/browse/LIMS-691)