Commit Graph

15561 Commits

Author SHA1 Message Date
Alexander Brandon Coles 39955b723d Declare Backlogs controllers on the turbo frame
Moves the controller declarations from the inner div onto the frame tags
themselves, so the list refresh controller reloads `this.element` instead
of breaking out via `closest`.

The turbo frame tags carry identical attributes, so that morph refreshes
cannot strip the controllers off the live element.
2026-06-11 12:44:01 +01:00
Alexander Brandon Coles 899edbdd65 Factor list_id into Backlogs move target checks
Resolves a list move when either `list_type` or `list_id` is given, so a
`list_id` passed without its type now fails as an invalid target instead
of being silently ignored by the direction handling.
2026-06-11 12:44:00 +01:00
Alexander Brandon Coles dca73e2840 Handle menu close race in Backlogs dismiss_menu
A menu item that opens a modal closes its popover asynchronously, so the
overlay can disappear between the visibility check in `dismiss_menu` and
the click, raising `Capybara::ElementNotFound`.

Rescues it like the existing interactability case, re-raising unless the
menu is gone or a modal owns focus.
2026-06-11 12:44:00 +01:00
Alexander Brandon Coles 4ff6b3b01f Merge branch 'dev' into implementation/74970-backlogs-pragmatic-dnd 2026-06-10 16:08:00 +01:00
Alexander Brandon Coles 80bb7559ec Apply box-list-item state colors to card rows
Moves the cursor modifiers from rows onto the card itself, drops the old
row tab stop, and applies the box-list-item state colors. Clicking marks
a card selected instantly; aria-current still tracks the open item.
2026-06-10 15:48:34 +01:00
Yauheni Suhakou beb0bd2cab Implement referencing pages query (#23544) 2026-06-10 16:11:15 +02:00
Alexander Brandon Coles 8127d71d6a Merge pull request #23588 from opf/code-maintenance/angular-22
[OP-19470] Upgrade Angular to v22
2026-06-10 14:01:14 +01:00
Oliver Günther f389bb1c9b Merge pull request #23629 from opf/fix/meeting-backlog-section
Expose the backlog section visibly through the meetings API, ensuring it appears
2026-06-10 14:06:40 +02:00
Oliver Günther cd5ceba958 Allow embed_links to be parameterized, controlling which elements should be embedded 2026-06-10 13:43:06 +02:00
Alexander Brandon Coles 7b9bcf331d Remove per-item move URL from sortable lists
No template ever sets the per-item `moveUrl` Stimulus value, so the root
controller's URL template is the only move URL source. Drops the defunct
payload field, the resolver precedence branch, and the spec fixtures and
absence assertions that referenced the removed attribute.
2026-06-10 12:11:17 +01:00
Klaus Zanders 35a20584b5 Only refresh the banner instead of the entire form 2026-06-10 13:03:56 +02:00
Klaus Zanders caefdd0ab0 When the allocation spans over multiple schedules, also show this in the warning 2026-06-10 12:44:09 +02:00
Alexander Brandon Coles 42f050d868 Handle Backlogs menu modal cleanup
Skip action-menu overlay dismissal once a modal is visible. Menu actions
can open the move dialog before the overlay is removed, and Selenium
cannot click that stale overlay while the modal owns focus.
2026-06-10 11:35:00 +01:00
Klaus Zanders c2b3ec89cc Show availability factor in the overbooking warning 2026-06-10 12:19:10 +02:00
Klaus Zanders eccaf94237 Show warning for scheduling outside of work package hours in the dialog itself 2026-06-10 11:59:37 +02:00
Klaus Zanders 372c295422 Add gray background for the box 2026-06-10 11:59:18 +02:00
Klaus Zanders 4f425b03fb Display the correct working schedule 2026-06-10 11:59:17 +02:00
Klaus Zanders 660806aeeb Show overbooking warning for a user 2026-06-10 11:59:12 +02:00
Klaus Zanders d828f28c85 Resource Allocation calculation 2026-06-10 11:57:02 +02:00
Klaus Zanders 34c262c489 Add more scopes for working time related models 2026-06-10 11:57:00 +02:00
Klaus Zanders bda6278fd6 Merge pull request #23512 from opf/resource-allocation-modals
Resource allocation modals
2026-06-10 11:50:11 +02:00
Oliver Günther d851d25524 Merge remote-tracking branch 'origin/release/17.5' into dev 2026-06-10 11:29:44 +02:00
Oliver Günther efc7a8afb6 Fix IFC direct upload callback failing on non-standard store paths
attachment_id_from_key used a regex anchored to `uploads/` which does
not match store paths on SaaS instances where the store_dir is
overridden with an instance-specific prefix (e.g. instance_qa_bim/...).

https://community.openproject.org/projects/STB/work_packages/STB-80/activity
2026-06-10 11:28:06 +02:00
Alexander Brandon Coles dab2a0ded8 Harden Backlogs DnD edge cases
Always restore the Backlogs move-request probe after the pick-up helper
runs, including obsolete-node retries and early exits.

Also make URI template expansion fully null-safe so a missing
URITemplate extension skips template-based moves instead of throwing
from toString().
2026-06-10 09:57:28 +01:00
Alexander Brandon Coles 67568586fe Fix Backlogs DnD probe assertions
Keep the move-request probe installed until the no-request assertion has
observed the settled drag result.

Also assert against the real Pragmatic DnD target types so the
pick-up-and-release probe can catch an accidental item-level target.
2026-06-10 09:25:54 +01:00
Alexander Brandon Coles 22a47b4ccd Permit position moves in Backlogs
The Backlogs move service still supports absolute position moves, but
the controller was filtering the position parameter before it reached
the service.

Permit the parameter again and cover the controller hop so position-only
moves keep working while prev_id precedence remains in the service
specs.
2026-06-10 09:25:53 +01:00
Alexander Brandon Coles d4ddd2fc11 Keep Backlogs list refresh connected
The frame response must attach refresh behavior to loaded content
because the outer src frame attributes are not replaced.
2026-06-10 09:25:53 +01:00
Klaus Zanders 879d4e8abe Allow to schedule resource allocations on just one day 2026-06-10 09:40:08 +02:00
Alexander Brandon Coles c085eefb06 Merge branch 'dev' into code-maintenance/angular-22 2026-06-10 08:39:31 +01:00
Jan Sandbrink f102eecdc3 Adapt to latest OpenProject plugin for XWiki
This now allows to fetch canonical page infos using GET and should
return a 404 if a page with the given name does not exist.
2026-06-10 08:37:26 +02:00
OpenProject Actions CI e55881e5d9 update locales from crowdin [ci skip] 2026-06-10 04:35:21 +00:00
OpenProject Actions CI 9f7af52eff update locales from crowdin [ci skip] 2026-06-10 04:33:09 +00:00
Oliver Günther 58dfa111ba Fix meeting backlog section exposing API 2026-06-10 06:15:41 +02:00
Ivan Kuchin 7b5403f1be Merge pull request #23515 from opf/pluck-matcher
Pluck matcher
2026-06-09 22:19:42 +02:00
Alexander Brandon Coles 38bb518ff9 Use Backlogs move URL template for drag and drop
Replaces the per-item move URLs with a single RFC 6570 URL template that
the `sortable-lists` container renders once, and the Stimulus controller
expands client-side. This deduplicates the URL across the rows and keeps
query parameters such as `all=1` in one place.
2026-06-09 20:25:02 +01:00
Alexander Brandon Coles 2a6f4c4519 Extract Backlogs::MoveTarget value object
Centralises the sprint/backlog_bucket/inbox to column mapping that was
duplicated as inverse logic between `WorkPackageCardMenuComponent` (work
package state to list inputs) and `Backlogs::WorkPackages::UpdateService`
(list inputs to persisted attributes), so the list-type vocabulary and
the `list_id` normalisation rules live in a single place.
2026-06-09 20:25:02 +01:00
Alexander Brandon Coles aa5262fd16 Switch to gray row hover color 2026-06-09 20:23:49 +01:00
Alexander Brandon Coles f18c69e773 [AGILE-251] Port backlogs to Pragmatic DnD
Replaces the previous Dragula-oriented card/list wiring with Pragmatic
Drag and Drop Stimulus controllers for backlog cards and list targets.

Keeps draggable card state client-side, submits moves through the
existing backlogs move endpoints, and tolerates empty drop-target
reports by resolving the element under the pointer.

Renders the draggable attribute and Stimulus item id from the server so
Turbo morphs preserve the DnD contract.

Unifies the move-target encoding on a list_type/list_id pair across the
drag JS, move dialogs, and card menu, dropping the legacy target_id
string so the service resolves the destination list directly. Renders
both move dialogs through the Primer forms DSL instead of safe_join.

https://community.openproject.org/wp/AGILE-251
2026-06-09 20:23:48 +01:00
Alexander Brandon Coles 956cdd9f42 Document Backlogs drag and drop language 2026-06-09 20:23:47 +01:00
OpenProject Actions CI 63b5e3009d update locales from crowdin [ci skip] 2026-06-09 16:10:53 +00:00
OpenProject Actions CI 86f9f2975f update locales from crowdin [ci skip] 2026-06-09 16:08:35 +00:00
ulferts 0f9cb250dd again try to stabilize flickering my page work package table spec 2026-06-09 17:58:25 +02:00
Klaus Zanders d3b86ed049 Fix specs 2026-06-09 16:48:40 +02:00
Klaus Zanders 2b3ca6fbf3 Only load principals that are members of the project 2026-06-09 16:33:38 +02:00
Klaus Zanders ae42d25894 Add specs denying the create action for an allocation 2026-06-09 16:25:13 +02:00
Klaus Zanders 121fe536d8 Guard the Allocate action behind the allocate_user_resources permission 2026-06-09 16:22:28 +02:00
Klaus Zanders 4020444b64 Get rid of custom CSS for the footer 2026-06-09 16:20:24 +02:00
Mir Bhatia 9f89ecda16 Merge pull request #23166 from opf/implementation/74725-build-select-panel-quickfilter
[#74725] Build select panel quickfilter
2026-06-09 15:38:06 +02:00
Jan Sandbrink fc8eb59663 Merge pull request #23554 from opf/stable-page-reference
XWiki: Stable page reference
2026-06-09 14:48:41 +02:00
OpenProject Actions CI b4ee3567be update locales from crowdin [ci skip] 2026-06-09 12:42:09 +00:00