Commit Graph

540 Commits

Author SHA1 Message Date
Alexander Brandon Coles c085eefb06 Merge branch 'dev' into code-maintenance/angular-22 2026-06-10 08:39:31 +01:00
ulferts db815d0d22 Merge remote-tracking branch 'origin/dev' into merge-release/17.5-20260609045502 2026-06-09 09:32:19 +02:00
Alexander Brandon Coles d3d1f1e7b2 Merge branch 'dev' into code-maintenance/angular-22 2026-06-08 10:05:24 +01:00
Alexander Brandon Coles e419c22c95 [DREAM-707] Stabilize Angular track keys
Use stable scalar keys for Angular `@for` loops with rebuilt object
values across breadcrumbs and related list templates to avoid DOM
recreation warnings.

https://community.openproject.org/wp/DREAM-707
2026-06-08 08:17:19 +01:00
Alexander Brandon Coles da4c96c2bd [OP-19369] Avoid git actions menu component ID collision
https://community.openproject.org/wp/OP-19369
2026-06-07 23:17:13 +01:00
Alexander Brandon Coles 7020778ee5 [OP-19470] Update Angular to v22
Force updates Angular dependencies:

    ng update @angular/core@22 @angular/cli@22 --force

And performs automated upgrade:

= Adds `ChangeDetectionStrategy.Eager` to all components.
- Adds 'withXhr' to 'provideHttpClient' function calls when the
  'HttpXhrBackend' is used.
- Wraps optional chaining expressions in $safeNavigationMigration().
- Disables the 'nullishCoalescingNotNullable & optionalChainNotNullable
  extended diagnostics.
- Adds 'strictTemplates: false' in tsconfig.json when not set.

https://community.openproject.org/wp/OP-19470
2026-06-07 21:01:53 +01:00
Tomas Hykel ba9f92e82a [STC-805] Use semantic IDs in github/gitlab suggestions 2026-06-04 20:47:20 +02:00
OpenProject Actions CI f9336b69c1 update locales from crowdin [ci skip] 2026-06-04 04:41:43 +00:00
OpenProject Actions CI a0b7b96ea4 update locales from crowdin [ci skip] 2026-06-04 04:37:15 +00:00
Oliver Günther 226a7298a5 Use unique component class to avoid clashes 2026-05-27 10:02:37 +02:00
Ivan Kuchin e3afba4465 follow yamllint except key ordering 2026-05-26 16:33:15 +02:00
Oliver Günther 344cb17994 Remove component identifier op-git-actions-menu
They are being used as dropdown components, and referenced by class
anyway
2026-05-26 09:03:01 +02:00
OpenProject Actions CI 7983e8f4cb update locales from crowdin [ci skip] 2026-05-26 04:30:40 +00:00
OpenProject Actions CI 3ca0c4d361 update locales from crowdin [ci skip] 2026-05-26 04:28:22 +00:00
Ivan Kuchin e474f0eae5 fix whitespace in a spec 2026-05-21 17:07:34 +02:00
Ivan Kuchin 22e42c7f8c fix copy result label placement 2026-05-21 17:07:34 +02:00
Ivan Kuchin 68f3764066 apply min-height to button too and align it to top 2026-05-21 17:07:34 +02:00
Ivan Kuchin b63fbbbeaa fix min-height to be 1rem (16px) 2026-05-21 17:07:34 +02:00
Ivan Kuchin 84750fa9e1 fix gitlab commit message expectation and add it for github integration 2026-05-21 17:07:34 +02:00
Ivan Kuchin 6bac672e60 use textarea for possibly multiline texts/commands 2026-05-21 17:07:34 +02:00
Tom Hykel 545cecbdaa Merge pull request #23272 from opf/feat/74364-github-webhook-semantic-ids
feat: Support semantic WP identifiers in GitHub webhook handler
2026-05-20 20:26:06 +02:00
Tomas Hykel cafbca292d DRY up the route constraint in GithubIntegration helper 2026-05-20 17:25:49 +02:00
Tomas Hykel 7f506a1a8e feat: Support semantic work package identifiers for GitHub 2026-05-20 10:22:58 +02:00
Tomas Hykel f39957d226 feat: Support semantic identifiers in Git snippets tooltip 2026-05-19 20:03:18 +02:00
OpenProject Actions CI d5b027b04b update locales from crowdin [ci skip] 2026-05-19 04:31:41 +00:00
Alexander Brandon Coles c32f2f2e26 [#74950] Migrate Angular DI to inject()
Migrates Angular constructor-based dependency injection to the
`inject()` function. The initial pass used the Angular schematic;
manual follow-up handled abstract classes, inheritance-sensitive
constructors, and call sites that still instantiate services
directly.

Schematic command:

  cd frontend && npx ng generate @angular/core:inject-migration \
    --path ./ \
    --migrate-abstract-classes \
    --backwards-compatible-constructors=false \
    --non-nullable-optional=false

https://community.openproject.org/wp/74950
2026-05-18 10:23:52 +02:00
OpenProject Actions CI c7b78cc338 update locales from crowdin [ci skip] 2026-05-09 04:14:05 +00:00
Alexander Brandon Coles 6e8510ca1d [#66563] Migrate specs to Vitest
Apply Angular's Vitest migration schematic to update frontend and plugin
specs from Jasmine globals to Vitest APIs.

    ng g @schematics/angular:refactor-jasmine-vitest

Fix migrated edge cases where async assertions or shallow tests changed.

https://community.openproject.org/wp/66563
2026-05-08 09:52:17 +02:00
OpenProject Actions CI f23a76833a update locales from crowdin [ci skip] 2026-05-03 04:21:13 +00:00
OpenProject Actions CI 4e56e47774 update locales from crowdin [ci skip] 2026-04-24 04:10:24 +00:00
Mir Bhatia ddaff61e26 Merge pull request #22762 from opf/fix/68573-blank-page-and-error-404-when-calendar-board-team-planner-role-is-deleted
Draft: [68582] Blank page and error 404 when calendar, board, team planner, role is deleted
2026-04-23 09:29:38 +02:00
Mir Bhatia c8148ab799 Fix more redirection HTTP statuses 2026-04-22 16:44:50 +02:00
OpenProject Actions CI c58ea9cd12 update locales from crowdin [ci skip] 2026-04-17 04:06:27 +00:00
Ivan Kuchin 6e648e6551 return array of message parts instead of joining and splitting again 2026-04-15 21:06:34 +02:00
Ivan Kuchin 9b6ca1e3e6 adapt gitlab html and style 2026-04-15 20:41:44 +02:00
Ivan Kuchin 2503c8d20b provide separate paragrahps as separate -m arguments instead of relying on literal newlines
Also removes newline at the end which will be automatically inserted by
git
2026-04-15 20:41:44 +02:00
Ivan Kuchin 44eeba5ad3 fix sinqle quote escaping 2026-04-15 20:41:44 +02:00
OpenProject Actions CI c559f08572 update locales from crowdin [ci skip] 2026-04-14 13:05:56 +00:00
OpenProject Actions CI dd7f45a05e update locales from crowdin [ci skip] 2026-04-14 04:04:43 +00:00
OpenProject Actions CI f97f227f12 update locales from crowdin [ci skip] 2026-04-13 04:08:47 +00:00
OpenProject Actions CI 0a1830cbf0 update locales from crowdin [ci skip] 2026-04-12 14:09:30 +00:00
OpenProject Actions CI 13e368f21e update locales from crowdin [ci skip] 2026-04-12 04:06:25 +00:00
OpenProject Actions CI e8e46408b4 update locales from crowdin [ci skip] 2026-04-11 03:55:45 +00:00
OpenProject Actions CI 10937badb2 update locales from crowdin [ci skip] 2026-04-09 11:38:47 +00:00
OpenProject Actions CI 8157603028 update locales from crowdin [ci skip] 2026-04-09 03:59:36 +00:00
OpenProject Actions CI a9b1d7920e update locales from crowdin [ci skip] 2026-04-08 04:07:10 +00:00
Alexander Brandon Coles ec796281bd Merge pull request #22222 from opf/code-maintenance/remove-zone.js-spec-migration
[#72834] Migrate frontend specs to Zoneless, removing zone.js
2026-04-06 15:27:15 +01:00
Alexander Brandon Coles 6506e28d81 Fix zone.js migration for 3 remaining specs
- `op-autocompleter`: `jasmine.clock()` does not reliably intercept
  RxJS `asyncScheduler` timers created inside other timer callbacks
  (due to the component's `ngAfterViewInit` wrapping setup in
  `setTimeout(..., 25)`). Converts the 'with debounce' test to
  `async/await` with real `setTimeout` waits (100ms each), which
  lets the component's internal timer chain complete naturally.
  The two 'without debounce' tests are unaffected.
- `attribute-help-text`: replaces `await Promise.resolve()` with
  `await new Promise(resolve => setTimeout(resolve, 0))`, which
  guarantees the full 4-level Promise chain
  (`async getId()` → `.then(show)` → `.finally(cleanup)`) has
  settled before assertions run.
- `git-actions.service` (github_integration module): removes the
  redundant `waitForAsync` `beforeEach` that was overwritten by a
  second plain `beforeEach` anyway.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 14:50:42 +01:00
OpenProject Actions CI d206e3fbd5 update locales from crowdin [ci skip] 2026-04-06 04:03:26 +00:00
Alexander Brandon Coles dd70eceac9 Merge branch 'dev' into merge-release/17.3-20260403042014
# Conflicts:
#	config/locales/crowdin/ru.yml
#	modules/backlogs/config/locales/crowdin/ru.yml
2026-04-03 19:50:48 +02:00