Can refresh listing when opening context menu, resulting in wrong item being operated on.
Observed in integration test:
Between when the right-click event happens and the context menu pops up on the project panel, it is possible for the list to be refreshed. When this happens, the wrong item may be selected.
In this integration test specifically, the sequence of events seems to be:
- Refresh button is clicked, refresh starts
- Find item in list, initial right-click event happens
- The refresh event completes, refreshing the list in DOM
- The context menu click event selects the wrong thing.
This particular test should probably wait until the refresh is completed. However, we should come up with a general approach to defer refreshing the UI unexpectedly if the user seems to be interacting with it.
#12 Updated by Daniel Kutyła 5 days ago
New version first commit: https://dev.arvados.org/projects/arvados-workbench-2/repository/revisions/7f80f22374711ce0c55d7a1657b9039fe84a2c1f
Test run: https://ci.arvados.org/job/developer-tests-workbench2/488
Added overlay to prevent modifications while refreshing page contents
#13 Updated by Daniel Kutyła 4 days ago
New version first commit: https://dev.arvados.org/projects/arvados-workbench-2/repository/revisions/7ebf70dc266ce6a01f930d89e599120641f248da
Test run: https://ci.arvados.org/job/developer-tests-workbench2/489
Fixed failing unit tests
#16 Updated by Daniel Kutyła 3 days ago
New version first commit: https://dev.arvados.org/projects/arvados-workbench-2/repository/revisions/dd63617d23cd24703e9847a8971af8b069e3ce38
Test run: https://ci.arvados.org/job/developer-tests-workbench2/491
Rebased with newest main
#17 Updated by Peter Amstutz 3 days ago
This makes sense. I like that it dims the user interface to indicate you can't interact with it. As a minor note, I did notice that because the overlay apparently has no mouse click handler, if I right click on the page while it is in the disabled state, I get the browser's context menu, which was a little surprising.
I'm am concerned that if a reload takes a long time or has an unhandled error, the whole user interface would be unresponsive and force the user to reload the page. Perhaps it could just disable the center panel and leave the left hand tree clickable?
Related to this, when clicking on something on the left hand tree to switch the center panel, it often shows the old content (for a different object) for a few moments until new content is loaded. Given a slow load, the user could mistakenly start interacting with the old content. It would be better if it first cleared the panel and/or disabled it (using the feature in this branch) until the new content was loaded.