Commit Graph

18686 Commits

Author SHA1 Message Date
OpenProject Actions CI 523ef39065 Merge branch 'release/17.5' into dev 2026-06-01 14:42:29 +00:00
Behrokh Satarnejad b28412185e [75384] Section cannot be dragged and dropped outside of current view (#23460)
Fix form configuration sections drag-and-drop scrolling
2026-06-01 16:04:52 +02:00
Oliver Günther 851a3595b4 Add BCF import permission text to clarify permission impact (#23453)
* Add BCF import permission text to clarify permission impact

* Add CSS fix to avoid breaking the column inside a form-field
2026-06-01 15:19:36 +02:00
Oliver Günther 50a3113e8a Merge remote-tracking branch 'origin/release/17.4' into release/17.5 2026-06-01 15:18:10 +02:00
Oliver Günther 1070b8f7f7 Merge branch 'release/17.3' into release/17.4 2026-06-01 15:17:58 +02:00
Oliver Günther 29383d0985 Disallow turbo-power submit events (#23484)
* Disallow turbo-power submit events

* Add spec

* Manually register actions we use
2026-06-01 15:17:45 +02:00
Oliver Günther 1633b6d325 Disallow turbo-power submit events (#23484)
* Disallow turbo-power submit events

* Add spec

* Manually register actions we use
2026-06-01 15:17:16 +02:00
Henriette Darge 173d523030 Merge pull request #23390 from opf/housekeeping/remove-spot-focus
Remove spot focus styles
2026-06-01 13:45:36 +02:00
Alexander Brandon Coles ba80c908ca Merge pull request #21480 from opf/dependabot/bundler/dev/capybara_accessible_selectors-v0.16.0
Bump capybara_accessible_selectors from v0.15.0 to v0.16.0
2026-06-01 12:31:49 +02:00
Henriette Darge 2470f6a9cf Remove spot focus style 2026-06-01 11:38:48 +02:00
Klaus Zanders 872a56dfb4 Merge pull request #23457 from opf/filter-form-with-wp-query
Updates to `Filters::FilterForm` to make it work with `Query`
2026-06-01 11:35:26 +02:00
Kabiru Mwenja 9802ef39cc Merge pull request #23342 from opf/fix/74834-numeric-id-in-url-of-the-wp-link-when-op
fix(ui): Numeric ID in URL of the wp link when opened from search results (WP #74834)
2026-06-01 09:53:55 +03:00
Henriette Darge 0f6e27bc49 Merge remote-tracking branch 'origin/release/17.5' into dev 2026-06-01 08:40:50 +02:00
Behrokh Satarnejad f171909599 Bump Primer to 0.86.2 version (#23459)
ump primer to 0.86.2
2026-06-01 08:04:21 +02:00
Klaus Zanders e53b50fa94 Merge branch 'dev' into filter-form-with-wp-query 2026-05-30 17:08:42 +02:00
Kabiru Mwenja 8d53064d34 Narrow followItem guard to WorkPackageResource
followItem navigates only work package results, and displayId is defined
on WorkPackageResource rather than the HalResource base. Guarding on the
concrete type guarantees the displayId access at runtime instead of
leaning on union narrowing to reach it.
2026-05-30 09:18:24 +03:00
OpenProject Actions CI b2f72fd486 Merge branch 'release/17.5' into dev 2026-05-30 04:49:04 +00:00
Alexander Brandon Coles 0b4bcb5d3c Set accessible names on table column headers
capybara_accessible_selectors 0.16 resolves role selectors such as
`:columnheader` by the computed accessible name. In a browser that name
folds in the CSS `text-transform: uppercase` styling and the column
action-menu trigger text, so `have_columnheader("Subject")` no longer
matches a header whose accessible name resolves to "SUBJECT Open menu".

Sets an explicit `aria-label` equal to the plain caption on each header
cell, in both the server-rendered tables and the work package table, so
the accessible name is the column title alone. This also improves screen
reader output, which previously announced the uppercased text and the
menu label.
2026-05-29 19:30:27 +02:00
Kabiru Mwenja b29cf5a6bb Correct acts_as_event usage note and tighten followItem spec arg type
The header comment claimed search did not rely on acts_as_event; the
server-rendered search results page builds its work package links through
WorkPackage#event_url, so the note now reflects that search and atom feeds
both depend on it while the Activities subsystem uses its own providers.

Type the followItem spec helper from the method signature instead of
unknown, so the test states the argument contract explicitly.
2026-05-29 20:10:34 +03:00
Kabiru Mwenja 784756091f Strengthen global search spec to exercise real displayId getter
Build the work package fixture from WorkPackageResource with a HAL
$source instead of stubbing the displayId getter, so followItem is
verified through the production getter. Adds a classic-mode case proving
the numeric fallback drives the link, and an instanceof assertion
confirming the fixture takes the HAL branch.
2026-05-29 19:41:07 +03:00
Kabiru Mwenja 78025601fe Use semantic identifier for search dropdown result links
The autocomplete dropdown's visible result link and its click handler
navigated to the numeric work package id, so opening a suggestion landed
on /work_packages/<id> while keyboard selection already used the semantic
identifier. Route both through displayId so the link target matches the
identifier shown in the result row.

Rework the followItem unit spec to drive the method with plain typed
stubs instead of jasmine.createSpy, and have the wpPath stub return a
fragment so the window.location assignment does not navigate the runner.
2026-05-29 19:12:16 +03:00
Tomas Hykel 3415da148f fix(ui): Numeric ID in URL of the wp link when opened from search results (WP #74834) 2026-05-29 18:40:06 +03:00
Klaus Zanders 22f9288c06 Fix wp-list-invalid-query.service.ts that got broken during ESLint fixes 2026-05-29 16:48:01 +02:00
Behrokh Satarnejad f62c1e5bc7 [69451] Mobile - Include project on WP list is missing spacing (#23381)
* Add a gap for the items in button

* use the shared flex button modifier so label, badge, and dropdown icon keep proper spacing
2026-05-29 14:56:59 +02:00
Klaus Zanders 78abead8b4 Fix interaction between Filters::FilterForm and the WorkPackage Query 2026-05-29 13:40:58 +02:00
Tom Hykel 1a22f59d21 Merge pull request #23367 from opf/fix/74942-numeric-id-instead-of-semantic-one-on-th
[#74942] fix(ui): Support semantic identifiers on related work packages table
2026-05-29 13:10:37 +02:00
Alexander Brandon Coles f4ddfe11c8 Merge pull request #23256 from opf/fix/eslint-whitespace-errors
Fix auto-correctable eslint errors in `frontend/`
2026-05-29 11:32:14 +02:00
Klaus Zanders 7af6f5d6cf Merge pull request #23441 from opf/filter-form-component
Filter form component
2026-05-29 11:18:27 +02:00
Oliver Günther dc76ce8a57 Add CSS fix to avoid breaking the column inside a form-field 2026-05-29 10:59:26 +02:00
dependabot[bot] 8c786e479e Bump @vitest/eslint-plugin from 1.6.17 to 1.6.18 in /frontend in the vitest group across 1 directory (#23447)
Bump @vitest/eslint-plugin

Bumps the vitest group with 1 update in the /frontend directory: [@vitest/eslint-plugin](https://github.com/vitest-dev/eslint-plugin-vitest).


Updates `@vitest/eslint-plugin` from 1.6.17 to 1.6.18
- [Release notes](https://github.com/vitest-dev/eslint-plugin-vitest/releases)
- [Commits](https://github.com/vitest-dev/eslint-plugin-vitest/compare/v1.6.17...v1.6.18)

---
updated-dependencies:
- dependency-name: "@vitest/eslint-plugin"
  dependency-version: 1.6.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 10:50:34 +02:00
Alexander Brandon Coles ee8e954030 Fix frontend ESLint autocorrections (second pass)
Removes unnecessary type assertions that ESLint now detects after
library version drift. Adds eslint-disable for three casts that are
still required for type safety.
2026-05-29 10:16:40 +02:00
Klaus Zanders 6d4acfc0c9 Ensure turbo mode is not blocked by using hidden filed for filter forms 2026-05-29 10:09:31 +02:00
dependabot[bot] db29c1d758 Bump @typescript-eslint/parser from 8.59.3 to 8.59.4 in /frontend in the typescript-eslint group (#23446)
Bump @typescript-eslint/parser

Bumps the typescript-eslint group in /frontend with 1 update: [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser).


Updates `@typescript-eslint/parser` from 8.59.3 to 8.59.4
- [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.59.4/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.59.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  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-05-29 09:55:17 +02:00
Klaus Zanders 1f00123aa4 Extract a Filters::FilterForm that can be re-used in other primer forms 2026-05-29 09:28:02 +02:00
Klaus Zanders 0fe1f31822 Get rid of CSS styling on #add_filter_block and #add_filter_select.
Instead make it CSS classes and put it on the old instances
2026-05-29 09:28:01 +02:00
Behrokh Satarnejad 031c3ce1cc [73372] Wrong icon used when changing non working days (#23292)
* Create a new dialog component for non-working days

* Change the non-working days component

* Add feature spec

* Fix reload after canceling the action

* preserve submitted form data for confirmation, and simplify cancel handling

* Change header text

* Remove the typescript unnecessary codes and listening to a form submit and call update on confirm changes
2026-05-29 09:08:48 +02:00
Behrokh Satarnejad bfa2588bf4 [74198] Remove newest projects in project widget on homepage (#23136)
* Add footer component for widget box

* Add footer component to the widget box as a slot

* Change projects widget to show the favorite projects

* Fix failing test

* Change the subitems widget

* Change the costs and budgets widgets

* Change the meeting widget

* Change the WPs widget in version

* Change memebers widget in project overview

* Change the favorite projects widget in my page

# Conflicts:
#	frontend/src/app/shared/components/grids/widgets/project-favorites/widget-project-favorites.component.ts

* Add the widget box to the lookbook

* Add footer for members widget in dashboard

* Fix members widget capability check

* Add feature spec for favorites projects in my page

* Remove committed demo project gitlink

* Remove temporary body variables from the costs and budgets widget templates

* Remove the scroll for favorites widget

* Remove scrollbar for members and favorite projects widgets

* Change projects block to favorite projects

* Refine feature specs

* Fix the widget footer styles globally

* Rename the component name from project favorites to favorite projects

* Rename the test selector for project name

* Move widget content inside the body

* grid widgets stretch their content area so widget footers stay pinned to the bottom

* Ensure frontend-rendered grid widgets keep their turbo-loaded content in the widget flex layout so server-rendered footers stay pinned to the bottom
2026-05-29 08:37:17 +02:00
Alexander Brandon Coles e3184d47c1 Fix ESLint errors in project-edit-field
Adds explicit type assertions for `this.resource` when passed to
`isNewResource()`, which expects `{ id: string | null }`. The base
`Field.resource` is typed as `any`, causing two `no-unsafe-argument`
errors.
2026-05-28 21:01:45 +02:00
Alexander Brandon Coles 2f5106881f Fix ESLint errors in wp-list-invalid-query
Replaces global lodash (`_`) calls with native Array methods (`map`,
`find`, `filter`, `forEach`, `slice`) and adds proper type annotations
to eliminate all 38 `@typescript-eslint/no-unsafe-*` and
`no-explicit-any` errors. Introduces a local `QueryFormSchema`
intersection type so schema attribute access is statically typed.
2026-05-28 21:01:36 +02:00
Alexander Brandon Coles ab45745eac Fix frontend ESLint autocorrections
Apply safe TypeScript ESLint cleanups and trailing whitespace fixes
across frontend files.

Keep DOM lookups typed and nullable when generic autocorrection would
otherwise assert through missing elements or erase intended guards.
2026-05-28 20:44:00 +02:00
Ivan Kuchin c5df0c29f0 Merge pull request #23182 from opf/code-maintenance/74769-remove-portfolio_models-feature-flag
[#74769] Remove portfolio_models feature flag
2026-05-28 17:20:48 +02:00
dependabot[bot] c214fedc45 Bump codemirror and @types/codemirror in /frontend (#23430)
Bumps [codemirror](https://github.com/codemirror/basic-setup) and [@types/codemirror](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/codemirror). These dependencies needed to be updated together.

Updates `codemirror` from 5.65.20 to 5.65.21
- [Changelog](https://github.com/codemirror/basic-setup/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/basic-setup/commits)

Updates `@types/codemirror` from 5.60.5 to 5.60.17
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/codemirror)

---
updated-dependencies:
- dependency-name: codemirror
  dependency-version: 5.65.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/codemirror"
  dependency-version: 5.60.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-28 17:07:37 +02:00
Alexander Brandon Coles 4c752e257b Bump angular-eslint dependencies to 21.4.0 (#23397)
Bump angular-eslint to ^21.4.0

Remove explicit `@angular-eslint/*` dev dependencies. The core
`angular-eslint` package should resolve these packages.

See: https://github.com/angular-eslint/angular-eslint/blob/main/packages/angular-eslint/README.md
2026-05-28 16:54:17 +02:00
Alexander Brandon Coles 278ffad4ed Merge pull request #23409 from opf/dependabot/npm_and_yarn/frontend/dev/uirouter/angular-21.0.0
Bump @uirouter/angular from 17.0.0 to 21.0.0 in /frontend
2026-05-28 14:49:54 +02:00
OpenProject Actions CI 3e02e2863f Merge branch 'release/17.5' into dev 2026-05-28 12:18:34 +00:00
Henriette Darge c74076a173 Merge pull request #23373 from opf/bug/64359-work-package-configuration-dialog-s-highlighting-tab-has-no-space-between-radio-buttons-and-labels
[64359] Work package configuration dialog's highlighting tab has no space between radio buttons and labels
2026-05-28 14:13:29 +02:00
Ivan Kuchin 487f4a03d7 cleanup due to removal of projects bar 2026-05-28 13:54:34 +02:00
Ivan Kuchin f6e073f0a1 [#74769] Remove portfolio_models feature flag
https://community.openproject.org/wp/74769
2026-05-28 13:53:08 +02:00
dependabot[bot] a3ba08821b Bump the typescript-eslint group across 1 directory with 3 updates (#23422)
Bumps the typescript-eslint group with 3 updates in the /frontend directory: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.59.3 to 8.59.4
- [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.59.4/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.53.1 to 8.59.3
- [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.59.3/packages/parser)

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

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.59.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: typescript-eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.59.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: typescript-eslint
- dependency-name: typescript-eslint
  dependency-version: 8.59.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  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-05-28 13:18:30 +02:00
dependabot[bot] e11abbfdc5 Bump the vitest group in /frontend with 3 updates (#23423)
Bumps the vitest group in /frontend with 3 updates: [@vitest/browser-playwright](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser-playwright` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.7/packages/browser-playwright)

Updates `@vitest/coverage-v8` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.7/packages/coverage-v8)

Updates `vitest` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.7/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser-playwright"
  dependency-version: 4.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-28 12:32:15 +02:00