Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat: lazy load dashboards into the navigation menu [DHIS2-10624]#3226

Draft
jenniferarnesen wants to merge 53 commits intomasterfrom
feat/limit-dashboard-preloading-DHIS2-10624
Draft

feat: lazy load dashboards into the navigation menu [DHIS2-10624]#3226
jenniferarnesen wants to merge 53 commits intomasterfrom
feat/limit-dashboard-preloading-DHIS2-10624

Conversation

Copy link
Collaborator

jenniferarnesen commented Feb 21, 2025 *
edited
Loading

Implements DHIS2-10624


Key features

To improve dashboard app performance for users with access to many dashboards, use paging to limit the number of dashboards loaded into the navigation menu

Description

The navigation menu now has "infinite" scrolling similar to the data item selector in DV and LL. Scrolling to the bottom triggers a fetch of the next page of results (page size set to 200 as suggested by Lars in the Jira ticket). Searching works the same way, sending a request with the filter text and get the results, paged. Searching is debounced to 300ms.

The CacheableViewDashboard code is primarily determining whether there is a dashboard the user can view: when the app initially loads, instead of fetching all the dashboards like before, it now fetches a single dashboard to answer the question of whether there are any dashboards.

The list of dashboards has been removed from redux and is now kept in the NavigationMenu state. Each time the user opens the menu, the first page of dashboards is fetched.

The "starred" status of the dashboard being displayed is now kept in the redux 'selected' property.

The component EndIntersectionDetector was adapted from the Data Item selector (transfer) component of the same name (from analytics).


TODO


Copy link
Contributor

dhis2-bot commented Feb 21, 2025 *
edited
Loading

dhis2-bot temporarily deployed to netlify February 21, 2025 12:20 Inactive
dhis2-bot temporarily deployed to netlify February 21, 2025 13:51 Inactive
dhis2-bot temporarily deployed to netlify February 21, 2025 14:53 Inactive
dhis2-bot temporarily deployed to netlify February 21, 2025 16:05 Inactive
dhis2-bot temporarily deployed to netlify February 24, 2025 15:06 Inactive
dhis2-bot temporarily deployed to netlify February 26, 2025 09:48 Inactive
dhis2-bot temporarily deployed to netlify February 26, 2025 10:19 Inactive
dhis2-bot temporarily deployed to netlify February 26, 2025 10:41 Inactive
dhis2-bot temporarily deployed to netlify February 26, 2025 12:57 Inactive
dhis2-bot temporarily deployed to netlify February 26, 2025 13:19 Inactive
dhis2-bot temporarily deployed to netlify March 5, 2025 14:15 Inactive
jenniferarnesen changed the title feat: limit dashboard preloading feat: lazy load dashboards into the navigation menu Mar 5, 2025
jenniferarnesen changed the title feat: lazy load dashboards into the navigation menu feat: lazy load dashboards into the navigation menu [DHIS2-10624] Mar 5, 2025
dhis2-bot temporarily deployed to netlify March 5, 2025 15:52 Inactive
dhis2-bot temporarily deployed to netlify March 7, 2025 12:08 Inactive
jenniferarnesen requested a review from HendrikThePendric March 7, 2025 14:23
dhis2-bot temporarily deployed to netlify March 7, 2025 14:30 Inactive
dhis2-bot temporarily deployed to netlify March 7, 2025 14:45 Inactive
jenniferarnesen added the e2e record Apply this label to a pull request to trigger recording of E2E tests on Cypress Cloud label Mar 10, 2025
Copy link

cypress bot commented Mar 10, 2025 *
edited
Loading

dashboards-app Run #5314

Run Properties: Failed #5314 * 9db6b62dde i: Merge 17617d2aff231ba678b7ce324ded85ada7d51b8a into 3750cd3687cd0be12cfcce83e82e...
Project dashboards-app
Branch Review feat/limit-dashboard-preloading-DHIS2-10624
Run status Failed #5314
Run duration 07m 10s
Commit 9db6b62dde i: Merge 17617d2aff231ba678b7ce324ded85ada7d51b8a into 3750cd3687cd0be12cfcce83e82e...
Committer Jen Jones Arnesen
View all properties for this run /

Test results
Failures 161
Flaky 0
Pending 76
Skipped 0
Passing 0
View all changes introduced in this branch /

Tests for review

filter_restrict.cy.js * 8 failed tests * e2e-chrome-parallel-40-5

View Output Video

Test Artifacts
Filter Restrictions > creates a new dashboard with no Filter Restrictions Test Replay Screenshots Video
Filter Restrictions > changes Filter Restrictions but they do not persist when clicking away without confirming Test Replay Screenshots Video
Filter Restrictions > shows Period and Organisation unit as selected by default when restricting dimensions Test Replay Screenshots Video
Filter Restrictions > persists Filter Restrictions changes while editing Filter settings Test Replay Screenshots Video
Filter Restrictions > persists Filter Restrictions changes after clicking confirm Test Replay Screenshots Video
Filter Restrictions > does not persist Filter Restrictions changes when exiting without saving Test Replay Screenshots Video
Filter Restrictions > saves Filter Restrictions changes and shows them in filter dimensions panel Test Replay Screenshots Video
Filter Restrictions > restricts filters to no dimensions and hides Add Filter button Test Replay Screenshots Video
translate_dashboard.cy.js * 1 failed test * e2e-chrome-parallel-40-5

View Output Video

Test Artifacts
adds translations Test Replay Screenshots Video
view_dashboard.cy.js * 6 failed tests * e2e-chrome-parallel-40-6

View Output Video

Test Artifacts
view dashboard > switches between dashboards Test Replay Screenshots Video
view dashboard > searches for a dashboard Test Replay Screenshots Video
view dashboard > searches for a dashboard with nonmatching search text Test Replay Screenshots Video
view dashboard > views a dashboard with items lacking shape Test Replay Screenshots Video
view dashboard > opens user's preferred dashboard Test Replay Screenshots Video
view dashboard > displays print layout preview and then print one-item-per-page preview Test Replay Screenshots Video
item_context_menu.cy.js * 4 failed tests * e2e-chrome-parallel-40-6

View Output Video

Test Artifacts
Item context menu > should have the correct link for Open in app menu option Test Replay Screenshots Video
Item context menu > opens the interpretations panel Test Replay Screenshots Video
Item context menu > verifies text item does not have a context menu Test Replay Screenshots Video
Item context menu > verifies chart item has a fullscreen option Test Replay Screenshots Video
view_dashboard.cy.js * 6 failed tests * e2e-chrome-parallel-42-6

View Output Video

Test Artifacts
view dashboard > switches between dashboards Test Replay Screenshots Video
view dashboard > searches for a dashboard Test Replay Screenshots Video
view dashboard > searches for a dashboard with nonmatching search text Test Replay Screenshots Video
view dashboard > views a dashboard with items lacking shape Test Replay Screenshots Video
view dashboard > opens user's preferred dashboard Test Replay Screenshots Video
view dashboard > displays print layout preview and then print one-item-per-page preview Test Replay Screenshots Video

The first 5 failed specs are shown, see all 37 specs in Cypress Cloud.

jenniferarnesen marked this pull request as draft March 10, 2025 10:13
dhis2-bot temporarily deployed to netlify March 21, 2025 14:28 Inactive
Copy link

sonarqubecloud bot commented Mar 21, 2025

Quality Gate failed

Failed conditions
2 New issues
1 New Bugs (required <= 0)
1 New Code Smells (required <= 0)
D Reliability Rating on New Code (required >= A)
2 New Critical Issues (required <= 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

dhis2-bot temporarily deployed to netlify March 21, 2025 14:34 Inactive
Copy link

sonarqubecloud bot commented Oct 14, 2025

Quality Gate failed

Failed conditions
4 New issues
D Reliability Rating on New Code (required >= A)
1 New Critical Issues (required <= 0)
3 New Code Smells (required <= 0)
1 New Bugs (required <= 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

dhis2-bot temporarily deployed to netlify October 14, 2025 09:50 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

HendrikThePendric Awaiting requested review from HendrikThePendric

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

e2e record Apply this label to a pull request to trigger recording of E2E tests on Cypress Cloud

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants