Commit Graph

31091 Commits

Author SHA1 Message Date
Jan Sandbrink 06c462112e Create page command and service
Wiring up actual page creation to the dialog that has been prepared
beforehand.

The commands are merely responsible for creating pages in the corresponding
wiki provider. The new CreateLinkedPageService takes care of combining
the two steps needed by the UI:

1. Creating the page
2. Linking it
2026-06-12 14:49:05 +02:00
Henriette Darge 454bf70b0e Merge pull request #23651 from opf/bug/dream-724-search-input-is-not-initially-focused
[DREAM-724] Search input is not initially focused
2026-06-11 07:50:46 +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
Henriette Darge 5a3eaa11e3 Always expand the hierarchy in "favorite" mdoe 2026-06-10 09:23:12 +02:00
Henriette Darge fa766e315f Automatically focus the search input when the project selector is opened 2026-06-10 08:01:25 +02:00
Jens Ulferts 3497816850 Merge pull request #23624 from opf/code-maintenance/68063-journals-predecessor-cte
Code Maintenance/STC-462: Resolve only-changes predecessor once via a journals CTE
2026-06-09 15:56:57 +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
Kabiru Mwenja bb317278ba Merge pull request #23582 from opf/bug/stc-811-documents-pagination-breaks-upon-filtering-the-list
[STC-811] Fix pagination for filtered Documents & Reserved identifiers
2026-06-09 14:32:29 +03:00
Klaus Zanders b7640dfccd Implement journaling for resource allocations 2026-06-09 10:31:37 +02:00
ulferts db815d0d22 Merge remote-tracking branch 'origin/dev' into merge-release/17.5-20260609045502 2026-06-09 09:32:19 +02:00
Kabiru Mwenja f94d7b0bfc Resolve the changes-filter predecessor once in a journals CTE
The :only_changes filter re-seeked each journal's predecessor in every EXISTS
branch (~7 LATERAL lookups per row). A CTE now shadows the journals table,
exposing predecessor_id/predecessor_data_id once per row, and each branch reads
those columns instead. On a 703-journal work package this cuts the COUNT from
~1.13M to ~35K shared buffers.
2026-06-09 10:25:21 +03:00
Mir Bhatia 6f0e53f406 Please rubocop 2026-06-09 09:05:28 +02:00
Kabiru Mwenja 96d5b5805f Merge pull request #23587 from opf/code-maintenance/68063-lateral-predecessor-changes-filter
Code Maintenance/STC-462: Fix slow "only changes" activity filter on work packages with long histories
2026-06-09 09:53:32 +03:00
Mir Bhatia 6f207589ef Update label to change colours and include counter conditionally 2026-06-09 08:53:15 +02:00
Mir Bhatia 7957079830 Add clear button and turbo navigate instead of full page reload 2026-06-09 08:53:14 +02:00
Mir Bhatia eaf8eb0c17 Add single select version 2026-06-09 08:53:12 +02:00
Mir Bhatia 141f4b1669 Improve async version 2026-06-09 08:53:11 +02:00
Mir Bhatia 1d8329c220 Try async fetch 2026-06-09 08:53:08 +02:00
Mir Bhatia cc3c3fbdf6 Add component specs 2026-06-09 08:51:19 +02:00
Mir Bhatia addc37c0ff Rename QuickFilter::SegmentedControlComponent 2026-06-09 08:51:17 +02:00
Mir Bhatia e0d7aff43a Add QuickFilter::SelectPanelComponent 2026-06-09 08:45:13 +02:00
Kabiru Mwenja 32a8bc43cc Surface the predecessor lateral alias at each call site
The LATERAL subquery is aliased `predecessor` where it is joined rather
than inside the helper, so the relation each EXISTS clause references is
visible without reading the helper.
2026-06-09 08:36:32 +03:00
Tomas Hykel e9f0615e51 apply the index overload via optional pagination_params 2026-06-08 21:54:28 +02:00
Henriette Darge 7411f1d985 Set min-height to avoid label being cut off 2026-06-08 11:01:35 +02:00
Kabiru Mwenja 879cb108c9 Seek changes-filter predecessor via LATERAL instead of a version scan
The :only_changes activity filter identified each journal's predecessor
with `version = (SELECT MAX(version) WHERE version < current)`. That
predicate cannot use the (journable_type, journable_id, version) index,
so Postgres scanned every journal of the journable and filtered by
version — turning a per-page filter into an O(history) sweep run twice
(pagy's count plus the page query). A LATERAL `ORDER BY version DESC
LIMIT 1` seeks the predecessor through that index in a single row,
preserving gap-tolerant matching on `< version`.
2026-06-08 10:18:05 +03:00
Henriette Darge 396de9362f [74625] Make project hierarchy collapsable in the global project selector (#23137)
* Use new async FilterableTreeView for global project selector

* Remove replaced angular component

* Fine tune sorting and expansion state of the new project selector

* Update primer to 0.86.1

* Add workspace information and filter results hierarchy information to project selector

* Include review feedback: Harmonize I18n keys, fix visible scope, use guarded local storage

* Add a turboFrame in the project select overlay to only load the projects when it is actually opened

* Restore BIM tab styles which were broken for a while already but the new project selector changes made it so bad that the test broke because the plus icon was overlapping the checkbox

* Clarify spec expectation
2026-06-08 08:14:47 +02:00
Henriette Darge 13fbeb1612 Merge pull request #23458 from opf/code-maintenance/75462-harmonize-colours-for-selection-state-between-backlogs-workpackages-and-notifications
[75462] Harmonize colours for selection state between Backlogs, WorkPackages & Notifications
2026-06-08 07:48:56 +02:00
Jens Ulferts 6885ca695d Merge pull request #23580 from opf/merge-release/17.5-20260605114354
Merge release/17.5 into dev
2026-06-05 16:42:32 +02:00
Kabiru Mwenja fd22629702 Code Maintenance/STC-462: Tidy the activity-tab paginator and centralise filter modes (#23552)
https://community.openproject.org/wp/STC-462

Two readability passes over the work package activity tab, no behaviour change. The paginator's private methods are reordered to follow their call order so the file reads top-down from `#call`, and the three activity filter modes (`:all`, `:only_comments`, `:only_changes`) — until now bare symbols duplicated across the controller, paginator, journal components and the hidden form — move into a single `WorkPackages::ActivitiesTab::Filters` module so the modes have one source of truth and can't drift apart. The diff reaches beyond the paginator into the controller, several components and a form, since that's where the symbols were scattered.
2026-06-05 16:50:08 +03:00
Tomas Hykel 285f3381a9 [STC-811] Fix pagination for filtered Documents & Reserved identifiers 2026-06-05 14:18:05 +02:00
ulferts 4f5a52edf9 Merge remote-tracking branch 'origin/dev' into merge-release/17.5-20260605114354 2026-06-05 13:44:46 +02:00
Kabiru Mwenja 2dcc7dd5d1 Remove dead paginate entry point and clarify resolved-anchor recording
The Paginator.paginate class method bypassed the instance, discarding the
resolved_anchor state the controller reads after .call; it had no callers, so
drop it and keep the single new(...).call entry point. Extract the activity
anchor side effect into record_resolved_anchor so the intent is explicit at the
call site, and pin the server contract with a request spec asserting an
unresolvable activity anchor omits the resolved-comment value.
2026-06-05 14:38:02 +03:00
Kabiru Mwenja 5fdf57df69 Defer activity-tab sequence_version to anchor resolution
The work package activity tab computed a per-journal sequence_version on
every render — a ROW_NUMBER() window function over a LATERAL join — only to
stamp the legacy data-anchor-activity-id that #activity-N deep links rely on.
Nothing mints those links anymore; copy and share links use
#comment-<journal id>, which needs no extra query.

The activity number is now resolved on demand. Only a request carrying
?anchor=activity-N runs the window function, mapping the number to a journal
id the paginator exposes as resolved_anchor. The view hands that to the
client, which rewrites #activity-N to the canonical #comment-<id> and scrolls
using the comment anchor already present in the DOM. Default renders no longer
touch the window function.

References WP #68063.
2026-06-05 14:26:04 +03:00
Kabiru Mwenja 376f5fcdc3 Code Maintenance/STC-462: Move work package activity tab from in-memory to database-level pagination (#23434) 2026-06-05 14:21:47 +03:00
as-op 3ef51bd4c4 [JIM-111] Jira Migrator: Do not disable the button if the instance is not switched to semantic identifiers
https://community.openproject.org/wp/JIM-111
2026-06-04 16:29:27 +02:00
Alexander Brandon Coles a7e0dc3f75 Merge remote-tracking branch 'opf/dev' into HEAD
# Conflicts:
#	modules/backlogs/config/locales/crowdin/cs.yml
#	modules/backlogs/config/locales/crowdin/es.yml
#	modules/backlogs/config/locales/crowdin/it.yml
#	modules/backlogs/config/locales/crowdin/ko.yml
#	modules/backlogs/config/locales/crowdin/pl.yml
#	modules/backlogs/config/locales/crowdin/pt-BR.yml
#	modules/backlogs/config/locales/crowdin/ro.yml
#	modules/backlogs/config/locales/crowdin/zh-CN.yml
#	modules/backlogs/spec/features/inbox_column_spec.rb
#	modules/backlogs/spec/support/pages/backlog.rb
#	modules/resource_management/config/locales/crowdin/es.yml
#	modules/resource_management/config/locales/crowdin/it.yml
#	modules/resource_management/config/locales/crowdin/ko.yml
#	modules/resource_management/config/locales/crowdin/pl.yml
#	modules/resource_management/config/locales/crowdin/zh-CN.yml
#	modules/wikis/config/locales/crowdin/es.yml
#	modules/wikis/config/locales/crowdin/it.yml
#	modules/wikis/config/locales/crowdin/ko.yml
#	modules/wikis/config/locales/crowdin/pl.yml
#	modules/wikis/config/locales/crowdin/pt-BR.yml
#	modules/wikis/config/locales/crowdin/zh-CN.yml
2026-06-04 09:44:51 +02:00
Henriette Darge df05959de7 Merge pull request #23542 from opf/dream-706-newly-created-wp-custom-field-cannot-be-added-to-an-existing-wp-form-configuration
[dream-706] Newly created WP custom field cannot be added to an existing WP form configuration
2026-06-04 09:28:55 +02:00
Henriette Darge 6c04182dff Simplify test case 2026-06-04 09:05:50 +02:00
Behrokh Satarnejad 8801288af0 Clean stale attributes in type form configuration 2026-06-03 16:16:42 +02:00
Tomas Hykel a4ae9a44c9 Allow viewing Activity attachments in shared WPs 2026-06-03 16:08:36 +02:00
Alexander Brandon Coles 71c3cec789 Merge pull request #23488 from opf/code-maintenance/75446-filters-form-component-rework
[OP-19415] Convert FilterForm to ViewComponent
2026-06-03 15:58:36 +02:00
OpenProject Actions CI 13c2ee75ba Merge branch 'release/17.5' into dev 2026-06-03 12:57:00 +00:00
Behrokh Satarnejad 78f5124afd [OP-19404] Section cannot be dragged and dropped outside of current view (#23527)
Fix type form section drag auto-scroll
2026-06-03 14:53:34 +02:00
Tom Hykel 2e01aff2a3 Merge pull request #23325 from opf/bug/74927-unable-to-change-a-parent-on-bulk-edit-of-work-packages-with-semantic-id
[#74927] Unable to change a parent on bulk edit of work packages with semantic ID
2026-06-03 13:39:06 +02:00
Tomas Hykel 27397984c2 add a comment 2026-06-03 12:43:46 +02:00
Henriette Darge 287b8c6e4a Apply differentiation between selected and pressed to WP table view 2026-06-03 11:48:05 +02:00
Kabiru Mwenja 07029e9f26 Merge pull request #23514 from opf/bug/stc-742-admin-page-for-semantic-ids-long-ids-cause-overflow
Bug/STC-742: Fix column overflow in semantic ID autofix preview table
2026-06-03 12:13:22 +03:00
Kabiru Mwenja 284e62abbf Switch to inline message component as the more conventional structure
Discussed in UX meeting an accepted:
https://community.openproject.org/meetings/10359#outcome-3654
2026-06-03 11:27:28 +03:00