Project

General

Profile

Actions

Bug #23194

closed

Workbench's project view (data tab) listing doesn't reset pagination on change

Added by Lucas Di Pentima 6 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Story points:
-
Release relationship:
Auto

Description

When viewing a project's content listing, if the user changed to a page different than the 1st one and clicks away to browse another project (like its Home project), it may get into a confusing situation where the listing appears empty, because the page number is kept and the project doesn't contain enough items.

See attached video for a clear example.


Files


Subtasks 1 (0 open1 closed)

Task #23216: Review 23194-project-panel-pagination-resetResolvedStephen Smith10/27/2025Actions
Actions #1

Updated by Brett Smith 5 months ago

  • Release set to 83
  • Target version deleted (Future)
Actions #2

Updated by Brett Smith 5 months ago

  • Assigned To set to Stephen Smith
Actions #3

Updated by Brett Smith 5 months ago

  • Target version set to Development 2025-10-29
Actions #4

Updated by Brett Smith 5 months ago

  • Subtask #23216 added
Actions #5

Updated by Stephen Smith 5 months ago

  • Status changed from New to In Progress
Actions #6

Updated by Stephen Smith 5 months ago

Changes at arvados|b9ccea725ae20c932fe2e82366523d80cb0092a4 branch 23194-project-panel-pagination-reset
Tests developer-run-tests-services-workbench2: #1662

  • All agreed upon points are implemented / addressed. Describe changes from pre-implementation design.
    • Changed project panel data to functional to be consistent with project panel run
    • Simplified run mapStateToProps since getResource already handles returning undefined on undefined uuids
    • Converted ProjectPanel to functional since I wanted to use useEffect to handle pagination reset on location change
    • Moved shouldComponentUpdate logic into a preventRerender
    • Added a useEffect to reset pagination of both tabs' data explorers whenever the current uuid changes
    • Added test to check that pagination resets when navigating to another location
    • Re-added dispatch to Project panel since it's still used, and connecting a mapDispatchToProps removes it unless manually added back
    • Fix 1 flaky test, it was checking the search field very quickly before the tab defaulted to overview when navigation happened. Added an explicit tab change and swapped out some lines with our helper methods that includes waits
    • Added xhost +local: to the interactive test target which is needed to forward X11 to docker (may be redundant for some systems, I use local: to minimize risk of opening up permissions to the X server so this will at most allow permissions of other users on the same system but not over the network)
    • Did some refactoring since I didn't like adding yet another copy of createContainerRequest
      • Basically every createContainerRequest was identical, so I made createDefaultContainerRequest which also allows overriding values. The only one that wasn't identitcal was the one that adds properties, but that was easy to accommodate.
      • Instead of also copying in the setupDockerImage, I saw this as an opportunity to split that out allowing us to optimize by sharing docker images between container requests instead of creating a new docker image with every test container request - since setting up the docker image involves creating a collection and 2 link resources every time, and we always use 'arvados/jobs' anyway.
      • I still wasn't able to fully re-use the same dockerImage collection for entire specs, because it uses createCollection under the hood, which causes it to be cleared in between tests. Still an improvement though. For tests that use the dockerImage in every test, I did the setup in beforeEach - otherwise it's setup at the beginning of the test that needs it.
  • Anything not implemented (discovered or discussed during work) has a follow-up story.
    • none
  • Code is tested and passing, both automated and manual, what manual testing was done is described.
    • Passes existing and new tests
  • The tested code incorporates recent main branch changes.
    • yes
  • New or changed UI/UX has gotten feedback from stakeholders.
    • n/a
  • Documentation has been updated.
    • n/a
  • Behaves appropriately at the intended scale (describe intended scale).
    • no change
  • Considered backwards and forwards compatibility issues between client and server.
    • none
  • Follows our coding standards and GUI style guidelines.
    • yes
Actions #7

Updated by Lisa Knox 5 months ago

LGTM

Actions #8

Updated by Stephen Smith 5 months ago

  • Status changed from In Progress to Resolved
Actions #9

Updated by Brett Smith 5 months ago

  • Release changed from 83 to 79
Actions

Also available in: Atom PDF