108460 Commits

Author SHA1 Message Date
Dombi Attila 15af95dee0 [OP-19483] Introduce Bundler cooldown
https://community.openproject.org/wp/OP-19483
2026-06-09 15:44:49 +03:00
OpenProject Actions CI b4ee3567be update locales from crowdin [ci skip] 2026-06-09 12:42:09 +00:00
OpenProject Actions CI 16707c0224 update locales from crowdin [ci skip] 2026-06-09 12:39:31 +00:00
Kabiru Mwenja e92b78d500 [STC-805] Numeric ID showing in Gitlab tab on work packages without links to issues (#23627)
https://community.openproject.org/wp/STC-805
2026-06-09 14:35:46 +03: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
corinnaguenther 1450c4903e Release notes 17.5 update (#23526)
* Release notes 17.5 update

[OP-19139] 17.5 Release notes prepared

https://community.openproject.org/wp/OP-19139

* Add link to docs

* Delete nested groups section
2026-06-09 13:27:23 +02:00
Jan Sandbrink 1feba4d963 Move CanonicalPageInfo query into internal namespace
Making it more clear that this is a query for internal usage
2026-06-09 13:15:28 +02:00
Jens Ulferts ceb7771000 Merge pull request #23495 from opf/fix/improve_speed_of_backlog_filtering
Fix/improve speed of backlog filtering
2026-06-09 12:03:57 +02:00
Klaus Zanders c0ecc6af5d Fix rubocop issue in Controller 2026-06-09 11:50:28 +02:00
Klaus Zanders 69f15b7fab Sort file 2026-06-09 11:34:30 +02:00
Klaus Zanders de875258a4 Get rid of some additional comments 2026-06-09 11:29:14 +02:00
Jan Sandbrink e6d02ca89d Merge pull request #23528 from opf/configure-internal-wiki
Add UI for internal wiki provider
2026-06-09 11:22:53 +02:00
Eric Schubert e8fea8cc8a Merge pull request #23581 from opf/implementation/73352-add-create-wiki-page-dialog
[#73352] added create wiki page dialog
2026-06-09 11:21:37 +02:00
Klaus Zanders fd31ca162c Use large-portrait and center the modals 2026-06-09 10:31:44 +02:00
Klaus Zanders e43b84766b Add dialog that shows a scheduling violation 2026-06-09 10:31:43 +02:00
Klaus Zanders a0e21a9df9 Add methods to detect scheduling violations with the work package 2026-06-09 10:31:43 +02:00
Klaus Zanders c4659b295b Use correct filter form 2026-06-09 10:31:42 +02:00
Klaus Zanders 80b1ce5a60 Fix layout of resource_management en.yml 2026-06-09 10:31:42 +02:00
Klaus Zanders f3319c8a36 Fix specs after adding the principal_explicit flag 2026-06-09 10:31:41 +02:00
Klaus Zanders e3fe605ce9 Condense comments 2026-06-09 10:31:41 +02:00
Klaus Zanders cc688f5973 Refactor form component for allocation step 2026-06-09 10:31:40 +02:00
Klaus Zanders 978b89121e Add multi-step "Allocate resource" dialog
Implement the dialog for creating a resource allocation as a two-step
Primer dialog driven by Turbo streams:

  1. Kind step: choose between an explicit principal and a
     filter-criteria placeholder.
  2. Allocation step: the per-kind form (principal/work package, date
     range, hours, filter name) swapped in without navigation.

Backend changes:
  - Controller `new`/`step`/`create` actions render and update the
    dialog via Turbo streams; entity and principal are resolved against
    the project and the user's visibility.
  - Add `principal_explicit` to distinguish an assigned principal from a
    named filter placeholder, with validations and a
    `needs_principal_assignment` scope on ResourceAllocation.
  - Add the `step` collection route.
  - ViewComponents and form objects under app/components and app/forms.
  - Locales for the dialog copy.

Add request, feature, and model specs covering the flow.
2026-06-09 10:31:39 +02:00
Klaus Zanders 323c095e36 Use real timestamp IDs for resource allocation migrations
The migrations used a date plus a fake incrementing hour counter
(e.g. 20260602120000, ...130000, ...140000) rather than real
timestamps. Those synthetic IDs risk colliding with migrations added
elsewhere in the app. Rename them to their actual file creation time:

  20260602120000 -> 20260602152805  add_users
  20260602130000 -> 20260602152807  create_..._journals
  20260602140000 -> 20260602170908  add_filter_name

create_resource_allocations already had a real timestamp and is left
unchanged. Order and resulting schema are preserved.
2026-06-09 10:31:39 +02:00
Klaus Zanders 3466daba5e Add methods to resolve the user filter to users 2026-06-09 10:31:38 +02:00
Klaus Zanders 9be91ca804 Store the name for resource allocation user filters 2026-06-09 10:31:38 +02:00
Klaus Zanders b7640dfccd Implement journaling for resource allocations 2026-06-09 10:31:37 +02:00
Klaus Zanders ccf61ead91 Add GlobalID handling for ResourceAllocation#entity 2026-06-09 10:31:37 +02:00
Klaus Zanders 204d0516f8 Accessors to set allocated time in hours 2026-06-09 10:31:36 +02:00
Klaus Zanders cff618a153 Add reviewed_by and requested_by to the resource allocation 2026-06-09 10:31:36 +02:00
Klaus Zanders 45afae52d6 Ensure ResourceAllocation is scoped to a work package for now, allow further classes later 2026-06-09 10:31:35 +02:00
Klaus Zanders 63cf1dea7e Implement stub controller for Resource Allocations 2026-06-09 10:31:34 +02:00
Jens Ulferts 319633fd99 Merge pull request #23619 from opf/merge-release/17.5-20260609045502
Merge release/17.5 into dev
2026-06-09 10:07:07 +02:00
Marcello Rocha dd0b94692c Implements GET /wiki_page_links (#23597)
* Create tests for the endpoint

* Filter by PageLink#type

* Implements the endpoint
2026-06-09 10:03:42 +02:00
ulferts 4f59344fdb fix lockfileVersion 2026-06-09 09:40:46 +02:00
dependabot[bot] de3f31f3df Bump the typescript-eslint group in /frontend with 2 updates (#23621)
Bumps the typescript-eslint group in /frontend with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser).


Updates `@typescript-eslint/eslint-plugin` from 8.59.4 to 8.60.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.60.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.59.4 to 8.60.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.60.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: typescript-eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: typescript-eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-09 08:35:17 +01: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
Oliver Günther 92a0c03c42 Fix fetching of SAML metadata for large aggregate endpoints (#23531)
* Fix fetching of SAML metadata for large aggregate endpoints

https://community.openproject.org/work_packages/OP-19420

* Use XML pull parser to avoid text parsing
2026-06-09 09:13:52 +02:00
Oliver Günther adfe334449 Merge pull request #23605 from opf/feat/flat-meeting-objects
Flat meeting API objects
2026-06-09 09:06:44 +02:00
Mir Bhatia 6f0e53f406 Please rubocop 2026-06-09 09:05:28 +02:00
Klaus Zanders b25543b490 Merge pull request #23622 from opf/dependabot/bundler/dev/retriable-3.5.1
Bump retriable from 3.5.0 to 3.5.1
2026-06-09 08:57:48 +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
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 1599bde011 Return a proper failure if unexpected JSON is encountered
Instead of raising an error, we use throw-catch based control flow
to return the same failure that would be returned if the response
had not been JSON at all.
2026-06-09 08:51:50 +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