Commit Graph

17925 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
Tobias Dillmann 61c5224cbd [#73887] mocked_permission_helper mirrors UserPermissibleService for empty project
It should not grant all permissions if the project argument is `nil`.
2026-06-10 19:47:12 +02:00
Tobias Dillmann 116f84e8d9 [#73887] Remove unnecessary cast 2026-06-10 19:47:12 +02:00
Tobias Dillmann f3a69c179c [#73887] Repair WP PDF export spec by introducing buckets 2026-06-10 19:47:12 +02:00
Tobias Dillmann c51da0534c [#73887] Backlog bucket WP details spec 2026-06-10 19:47:12 +02:00
Yauheni Suhakou beb0bd2cab Implement referencing pages query (#23544) 2026-06-10 16:11:15 +02: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
Klaus Zanders 1d45a95168 Merge pull request #23540 from opf/resource-allocation-user-time
[Resource Management] Calculation Logic
2026-06-10 13:54:41 +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
Oliver Günther 73892cd6d9 Remove preview mode 2026-06-10 12:27:19 +02:00
Klaus Zanders 34c262c489 Add more scopes for working time related models 2026-06-10 11:57:00 +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 519964d581 [DREAM-715] Favourite projects are not visible when they are not on the root level (#23653)
Always expand the hierarchy in "favorite" mdoe
2026-06-10 10:48:54 +02:00
Henriette Darge 5a3eaa11e3 Always expand the hierarchy in "favorite" mdoe 2026-06-10 09:23:12 +02: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
Ivan Kuchin 7b5403f1be Merge pull request #23515 from opf/pluck-matcher
Pluck matcher
2026-06-09 22:19:42 +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
Jan Sandbrink fc8eb59663 Merge pull request #23554 from opf/stable-page-reference
XWiki: Stable page reference
2026-06-09 14:48:41 +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
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 6f207589ef Update label to change colours and include counter conditionally 2026-06-09 08:53:15 +02:00
Jan Sandbrink f466dd3832 Reduce maximum result size of XWiki search_pages
This is only done to improve worst-case latency, because
we perform one additional request per result.

Local testing showed a latency above 1000ms for 50 results
and ~500ms for 20 results. I'd expect real world scenarios to
be slightly worse, because of higher network latency.
2026-06-09 08:51:51 +02:00
Jan Sandbrink 1ba2bf95ce Use stable identifiers to fetch XWiki pages
We now have two ways to fetch page infos from XWiki:

* using the canonical identifier (but through a new endpoint that will resolve stable identifiers as well)
* using the stable identifier

Since we want to store the stable identifier, the stable version is the one exposed through the XWiki registry.
The canonical form is required to fully resolve some list queries from XWiki properly.
2026-06-09 08:51:27 +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
OpenProject Actions CI 24be36fce6 Merge branch 'release/17.4' into release/17.5 2026-06-09 05:55:31 +00:00
Oliver Günther 7bf32598ed Also use message_pack for ConfidentialCache
YAML default coder uses aliases which break on safe_load
2026-06-09 07:54:33 +02:00
Judith Roth 595872727c [STC-779] Add tests for CTRL-Z in documents
https://community.openproject.org/wp/STC-779
2026-06-08 16:26:19 +02:00
Behrokh Satarnejad 63332d3957 [Dream-709] Highlighting of selecting WP does not work in notification center (#23599)
* Fix selected notification highlight for semantic WP IDs

* Update spec
2026-06-08 11:35:22 +02:00
Jan Sandbrink 42ee5fc134 Allow to disable SSRF filter selectively in specs
Otherwise they would interfere with running specs when
recording VCR cassettes.
2026-06-08 08:15:39 +02: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
ulferts 19468b6b68 attempt to fix flickering search spec
rspec ./spec/features/search/search_spec.rb:307

the search for the first work package, having 1 in the subject, led to all 1x work packages being found.
2026-06-05 22:45:09 +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
ulferts 54e2ab570e attempt to fix flickering search spec
rspec ./spec/features/search/search_spec.rb:307

check for the expected rows to show up after removing a filter before adding the next one.
2026-06-05 16:41:41 +02:00
ulferts 28ff65cb0e attempt to fix flickering activity spec
rspec ./spec/features/activities/activity_page_navigation_spec.rb:137
2026-06-05 15:58:48 +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
Ivan Kuchin 91c4566c55 chain experiment 2026-06-04 21:23:19 +02:00
Ivan Kuchin e0617c097a have_attr matcher 2026-06-04 21:23:19 +02:00
ulferts 6ab4d02059 attempt to fix flickering activity spec
rspec ./spec/features/activities/work_package/activities_spec.rb:678

The attempt is to have the frontend wait for the turbo stream response rather than a fixed timeout.
The removed wait_for seems to be non-functional.
2026-06-04 16:43:50 +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
Jan Sandbrink 663dc3f182 Merge pull request #23480 from opf/httpx-ssrf-filter
Add SSRF filter for HTTPX
2026-06-04 07:19:42 +02:00