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

feat: dashboard slideshow #3081

Conversation

jenniferarnesen
Copy link
Collaborator

@jenniferarnesen jenniferarnesen commented Sep 6, 2024

Implements DHIS2-13038

Details about how it works:

  1. When entering the Slideshow/fullscreen, the parent div of the ItemGrid is put into browser fullscreen. That same div remains in fullscreen the entire time, while the dashboard items are displayed/hidden in turn using css opacity. Css opacity is used instead of display or visibility so that the items can first be resized to fullscreen while "invisible", and then be made visible.

  2. When first opening the slideshow, a flag (isPreSlideshow) is used to initially hide the item with opacity: 0 so that it can be resized and then appear fullscreen without the user seeing the resizing happen. This works ok, but I'm not sure it's worth the trouble

  3. Progressive loading. When the dashboard goes into fullscreen/slideshow, then progressive loading, instead of being based on proximity to the viewport, will load the next and previous items in the fullscreen display order.

TODO

  • progressive loading
  • check all item types
  • small screen view (no fullscreen in small screen view)
  • applied filters and active types
  • verify print views, especially tables
  • cypress tests
  • Tested on large displays
  • Disable nav buttons when there is only 1 item
  • "Filter applied" label
  • Offline should be possible to see visualizations if they are already loaded
  • Hi-res screen - navigation bar is visibly resizing
  • Opening legend on chart, lose keyboard navigation - this is expected behavior

@dhis2-bot
Copy link
Contributor

dhis2-bot commented Sep 6, 2024

🚀 Deployed on https://pr-3081.dashboard.netlify.dhis2.org

@dhis2-bot dhis2-bot temporarily deployed to netlify September 6, 2024 09:58 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify September 9, 2024 15:28 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify October 8, 2024 14:01 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify October 9, 2024 06:58 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify October 31, 2024 14:46 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify November 1, 2024 09:20 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify November 5, 2024 08:46 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 19, 2024 14:26 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 19, 2024 14:31 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 19, 2024 16:39 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:08 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:13 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:18 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:23 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:28 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:32 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify December 20, 2024 11:42 Inactive
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 New issue
1 New Code Smells (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 dhis2-bot temporarily deployed to netlify December 20, 2024 11:49 Inactive
@jenniferarnesen jenniferarnesen added e2e record Apply this label to a pull request to trigger recording of E2E tests on Cypress Cloud and removed e2e record Apply this label to a pull request to trigger recording of E2E tests on Cypress Cloud labels Dec 20, 2024
@jenniferarnesen jenniferarnesen merged commit cb2b931 into feat/release-DHIS2-18441-and-DHIS2-13038 Dec 20, 2024
64 of 68 checks passed
@jenniferarnesen jenniferarnesen deleted the feat/slide-show-display-none branch December 20, 2024 15:19
jenniferarnesen added a commit that referenced this pull request Dec 20, 2024
Implements https://dhis2.atlassian.net/browse/DHIS2-13038

Details:

1. When entering the slideshow/fullscreen, the parent div of the ItemGrid is put
into browser fullscreen. That same div remains in fullscreen the entire time, while
the dashboard items are displayed/hidden in turn using css opacity. Css opacity is
used instead of display or visibility so that the items can first be resized to
fullscreen while "invisible", and then be made visible. This means that the user
doesn't see a flash of the visualization in its regular item size before it gets resized.

2. Progressive loading. When the dashboard goes into fullscreen/slideshow, then progressive
loading will load the next and previous items in the fullscreen display order instead of
being based on proximity to the viewport.

3. RTL support has been implemented for the slideshow navigation buttons. It was decided
after discussions with in-house RTL experts that the order
of the dashboard items would remain LTR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
e2e record Apply this label to a pull request to trigger recording of E2E tests on Cypress Cloud
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants