[#57904] meeting reload button will take you to your previous spot on the page #16809
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ticket
https://community.openproject.org/wp/57904
What are you trying to accomplish?
Whenever another user makes changes to a meeting, you will get a flash notification that encourages you to reload in order to see the updated contents of the page.
Until now, your viewport was moved back all the way up to the beginning of the page whenever you clicked on that reload button.
With this feature, clicking the reload button will remember your current position on the page and move you back down again.
Caveat: if you do not use the reload button, but trigger a reload manually, your position will be discarded.
Screenshots
reload_refresh.mov
What approach did you choose and why?
Introduced a new boolean value that can be set via Stimulus to enable this feature. If done so, the pollForChangesController will track the last known scroll position before reloading the page.
Restoring the last known position only happens when the reload button is used. This is done so that the last known position on the page is NOT restored when you re-enter a meeting page that you've visited previously.
The scroll position is remembered in the
sessionStorage
. This means it is exclusive to the current tab. Additionally, the current path with the meeting id is used as a key. This avoids positional changes on the wrong page when visiting multiple meeting pages after another.Merge checklist