[AGILE-178] Changing the status of a work package in the sprint board does not update the column#24289
Draft
thykel wants to merge 5 commits into
Draft
[AGILE-178] Changing the status of a work package in the sprint board does not update the column#24289thykel wants to merge 5 commits into
thykel wants to merge 5 commits into
Conversation
… does not update the column
3 tasks
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
🔁 Taken over from #23811
Ticket
https://community.openproject.org/work_packages/AGILE-178
What are you trying to accomplish?
Fixes a bug on action boards (sprint boards and Kanban boards): changing a work package's status from the details panel does not move its card to the matching column.
Steps to reproduce
The card only ends up in the right column after a manual full page reload. As noted in the report, this affects all action boards, not just sprint boards.
Root cause
The details panel is rendered server-side into the
content-bodyRightTurbo frame (app/views/work_packages/split_view.html.erb), and its body embeds the Angular work package view as a separately-bootstrapped custom element. Edits made there do not reach the board's Angular HAL event bus, soBoardListComponent.listenToActionAttributeChanges()never fires. The polling fallback (QueryUpdatedService) only watches each query definition'supdatedAt, not the work packages it contains, so it never detects the status change either. The result is that the affected columns are never refreshed.What approach did you choose and why?
I bridged the Hotwire details panel back to the Angular board by listening for
turbo:frame-loadevents on thecontent-bodyRightframe inBoardListContainerComponent. When that frame finishes loading, every column is refreshed via the existing publicBoardListComponent.updateQuery(false), so each list re-runs its filtered query and the card naturally lands in the correct column (and disappears from the old one).<a href=base_route data-turbo>rendered inside the frame, so closing the panel navigates the frame and emitsturbo:frame-load— directly matching the reporter's expectation that "after closing the details panel, the board should be reloaded". The same hook also covers any in-panel save that re-renders the frame.skip(1)ignores the panel's initial open (when nothing has changed yet) to avoid a redundant reload.event.target.id === 'content-bodyRight', so nested frames (e.g. the activity tab) do not trigger refreshes.Alternative considered and discarded: re-emitting synthetic HAL events from the Turbo frame into the Angular event bus. That is more invasive and cross-stack; the frame-load hook is contained, frontend-only, and reuses the board's existing refresh path.
Screenshots
No visual changes (behavioral fix — cards now move to the correct column after a status change in the details panel).
Merge checklist