5903 Commits

Author SHA1 Message Date
Oliver Günther 73892cd6d9 Remove preview mode 2026-06-10 12:27:19 +02:00
ulferts db815d0d22 Merge remote-tracking branch 'origin/dev' into merge-release/17.5-20260609045502 2026-06-09 09:32: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
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
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 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
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
ulferts 3f0ead428d attempt to fix flickering subproject creation spec
rspec spec/features/projects/subproject_creation_spec.rb:59

The theory is that the page hasn`t completed the turbo request and stale dom elements are evaluated
2026-06-03 18:37:43 +02:00
OpenProject Actions CI 13c2ee75ba Merge branch 'release/17.5' into dev 2026-06-03 12:57:00 +00:00
Pavel Balashou 5f962c1831 Merge pull request #23482 from opf/bug/75436-jira-migrator-project-selector-ui-state-is-wrong-when-server-response-is-slow-for-some-request
[#75436] Jira Migrator Project Selector: UI state is wrong when server response is slow
2026-06-03 08:36:33 +02:00
Oliver Günther 11dc79a74d Merge remote-tracking branch 'origin/release/17.5' into dev 2026-06-02 16:22:39 +02:00
Henriette Darge f3207d5a02 Merge pull request #23455 from opf/75387-rename-section-action-is-called-rename-group
[75387] Updates the type form configuration labels to use the Figma terminology
2026-06-02 14:54:13 +02:00
OpenProject Actions CI 523ef39065 Merge branch 'release/17.5' into dev 2026-06-01 14:42:29 +00:00
as-op 42dcbcdbf7 Merge remote-tracking branch 'origin/bug/75436-jira-migrator-project-selector-ui-state-is-wrong-when-server-response-is-slow-for-some-request' into bug/75436-jira-migrator-project-selector-ui-state-is-wrong-when-server-response-is-slow-for-some-request 2026-06-01 15:30:32 +02:00
as-op 9cb6746ed4 add tests for the project selector 2026-06-01 15:30:23 +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
OpenProject Actions CI b2f72fd486 Merge branch 'release/17.5' into dev 2026-05-30 04:49:04 +00:00
Alexander Brandon Coles 86e40ffffe Adapt specs to capybara_accessible_selectors 0.16
Refactors the custom `:list`/`:list_item` selectors onto CAS's
`add_role_selector` and drops the now-native `Capybara::Node::Simple#role`
hack. `:list_item` resolves the listitem role, so specs matching
non-listitem `<li>` are updated (`have_row` for the custom field table,
presentation dividers via CSS).

CAS 0.16 also resolves role selectors by computed role and accessible
name, which our CSS-styled tables and Primer menus do not expose through
plain markup. Affected feature specs switch to robust locators:
Capybara's `:table_row`, the FullCalendar `data-date`, and the action
menu's real accessible name ("Edit status").

The `:columnheader` `colindex` filter lost its off-by-one offset and now
uses the true 1-based `th` position. Also fixes Webhooks `RowComponent`
spec capitalization.
2026-05-29 20:41:25 +02:00
Kabiru Mwenja 14ef6f901d Use semantic identifier for server-rendered search result links
Work package results on the search page build their link through the
acts_as_event url proc, which passed the numeric primary key instead of
the work package's display id. In semantic mode this rendered
/work_packages/<id> even though the row showed the semantic identifier,
unlike Rails URL helpers that already resolve the object via to_param.
Pass display_id so the link follows the same convention everywhere.
2026-05-29 19:12:27 +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
Behrokh Satarnejad a60334373f Updates the work package type form configuration labels to use the
Figma terminology
2026-05-29 12:25:00 +02:00
Behrokh Satarnejad 5f0c53c0cd Change translation strings for groups 2026-05-29 11:00:31 +02:00
Tomas Hykel dca5065e56 Add "Beta" to semantic identifier setting page 2026-05-29 10:30:29 +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
Ivan Kuchin 1437167b0a handle multiple createable workspace types in specs 2026-05-28 13:54:35 +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
Oliver Günther a1505dc0f5 Merge remote-tracking branch 'origin/release/17.5' into dev 2026-05-27 09:58:01 +02:00
Behrokh Satarnejad dbef4d9e71 [74931] Show type of field beside the attribute (#23205)
* Show filed type beside its name

* Add feature spec

* Add a comment for field_type_label

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Add custom field type label assertion to feature spec

* Move custom field to active group before asserting type label

* Rename the displayed field format value from field_type to
field_format_label and reuse CustomFieldsHelper for custom field format
labels.

* Make the table configuration modal wait more and embedded work package table loading take longer to avoid flaky failures when the modal or embedded table is still refreshing in CI

* Undo changes for switch_to method

* Undo changes for the tests that are sometimes failing on CI

* Update spec/features/types/form_configuration_spec.rb

Co-authored-by: Henriette Darge <h.darge@openproject.com>

* Update spec/helpers/types_helper_spec.rb

Co-authored-by: Henriette Darge <h.darge@openproject.com>

* Rubocop errors fixed

* Fix flaky field format labels spec by revisiting page after custom field creation

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Henriette Darge <h.darge@openproject.com>
2026-05-27 09:24:38 +02:00
Alexander Brandon Coles 2935a9386f Stabilize cancel editing home navigation
Wait for the Turbo visit to finish before the Selenium example resets.
2026-05-27 00:33:13 +02:00
Alexander Brandon Coles c776be17cc Make WP query history filter checks idempotent
Turbo can restore the query filter pane as either open or closed during
browser history traversal. Use an idempotent helper before asserting
restored filters so the spec checks the query state instead of depending
on the current pane visibility.
2026-05-26 23:17:42 +02:00
Alexander Brandon Coles ab3b74dbf2 Patch Puma socket timeout failure 2026-05-26 17:18:05 +02:00
David F 8403bb74f2 Generalize datetime helper for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F 1ce489a2e0 Turn partials into form components. wp/74380 2026-05-26 08:14:56 +02:00
Tomas Hykel 948fa43321 chore: Remove feature flag for project-based work package identifiers 2026-05-25 17:45:06 +02:00
Tomas Hykel b8f49b9e6e chore: Rename label of instance identifier conversion button 2026-05-20 17:37:56 +02:00
Kabiru Mwenja e2631598c2 Merge pull request #23204 from opf/feature/editor-mention-semantic-id
Render work-package mentions with the current display identifier
2026-05-20 17:26:50 +03:00
Jens Ulferts 0ceaa2617c Merge pull request #23181 from opf/code-maintenance/74768-remove-calculated_value_project_attribute-feature-flag
[#74768] Remove calculated_value_project_attribute feature flag
2026-05-20 16:09:46 +02:00
Kabiru Mwenja 70931762d9 Merge remote-tracking branch 'origin/dev' into feature/editor-mention-semantic-id
# Conflicts:
#	frontend/src/vendor/ckeditor/ckeditor.js
#	frontend/src/vendor/ckeditor/ckeditor.js.map
2026-05-20 16:33:47 +03:00
Oliver Günther 3b3791f9ec Use correct configuration for group filter on user administration
https://community.openproject.org/work_packages/74763
2026-05-20 09:18:57 +02:00
OpenProject Actions CI 7e1c003ba7 Merge branch 'release/17.4' into dev 2026-05-20 06:43:24 +00:00
OpenProject Actions CI 82c65d6a27 Merge branch 'release/17.3' into release/17.4 2026-05-20 06:42:24 +00:00
Ivan Kuchin b648341030 [#74768] Remove calculated_value_project_attribute feature flag
https://community.openproject.org/wp/74768
2026-05-19 17:42:42 +02:00
Oliver Günther 3fcdc893b4 Also use visible scope for activities view 2026-05-19 08:47:56 +02:00
Jan Sandbrink 90acd7a022 Merge pull request #22549 from opf/session-auth-csrf-protection
Consider Sec-Fetch-Site header for session auth
2026-05-18 08:59:56 +02:00
Kabiru Mwenja 2a7e2aaca8 Lock wysiwyg autocomplete round-trip across modes
The `## / ###` autocomplete assertions pin both `data-id` (the
record id, `mentioned_work_package.id` in either mode) and
`data-display-id` (what the user typed — `wp_display_id` resolving
to the numeric id in classic and the identifier in semantic) on the
widget DOM that appears in the editor right after a pick. The
classic / semantic asymmetry now lives in the assertion itself
rather than in a per-context CSS selector.
2026-05-15 10:59:10 +03:00
Kabiru Mwenja c7510368d3 Pass id and label as lets to mention-trigger shared example
The previous version reached for `wp.display_id` and `wp.formatted_id`
inside the example body, so the spec was implicitly re-testing the
dispatch logic of those helpers (covered elsewhere) rather than
asserting on the column values it actually cares about.

Each consuming context now defines `wp_id` and `wp_label` lets so the
shared example asserts directly on the typed value and the rendered
link label. Classic mode passes `wp.id` and `"##{wp.id}"`. Semantic
mode passes `wp.identifier` for both — the rendered link drops the `#`
for semantic identifiers.
2026-05-15 10:59:10 +03:00