445 Commits

Author SHA1 Message Date
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
OpenProject Actions CI 13c2ee75ba Merge branch 'release/17.5' into dev 2026-06-03 12:57:00 +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
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
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
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
Tomas Hykel ae3f4aa689 fix: Adjust save button behaviour in identifier settings 2026-05-07 23:37:05 +02:00
Alexander Brandon Coles e8767481e9 [#70166] Fix accessibility errors found by ERB Lint (#21503)
* Fix GitHub/NoTitleAttribute, LinkHasHref errors

- Replaces `title` attribute with `aria-label` for interactive elements.
- Removes `title` from non-interactive elements.
- Converts `<a>` tags without proper `href` to `<button>` elements,
  using Primer `Button`/`IconButton` where possible.

# Conflicts:
#	app/views/custom_fields/_custom_options.html.erb
#	spec/features/admin/custom_fields/shared_custom_field_expectations.rb
#	spec/features/admin/custom_fields/work_packages/list_spec.rb

* Fix Autocomplete missing errors

* Fix GitHub/NoPositiveTabIndex errors

Removes all positive `tabindex` values.

* Fix Rails/LinkToBlank errors

* Replace toast with Primer Banner on LDAP form

* Add frozen_string_literal

* Ignore erb lint for deprecated files

* Fix linting errors in repository module

* Fix linting errors in budgets and custom actions

* Fix linting errors in member form and 2fa

* Fix linting errors in mcost types and wiki help and storages

* Fix linting errors in multi select filters, ifc viewer, and unsupported browser banner

* Fix failing spec

* Use Primer banner instead of op-toast where ever it is possible

* Use octicon instead of op_icon

* Fix failing tests

* Use no-decoration-on-hover for button links and change the button with only an icon to primer icon button

* Keep webhook response modal activation selector class-based

* use icon button for edit of hourly rate

---------

Co-authored-by: Behrokh Satarnejad <b.satarnejad@openproject.com>
2026-05-07 10:31:10 +02:00
David F 79a182f62f Update password rules when none is checked. wp/74398 2026-04-30 10:10:36 +02:00
Pavel Balashou 3f17e1c0db [#74323] Replace user number with relevant information during project(s) migration
https://community.openproject.org/wp/74323

- Remove Jira Migrator feature flag.
2026-04-23 14:48:43 +02:00
Klaus Zanders 918bdf2d11 Add feature specs for the departments page 2026-04-14 09:58:14 +02:00
Kabiru Mwenja d3734a7485 Rename work_packages_identifier setting values to "classic" and "semantic"
The setting previously used "numeric" and "alphanumeric" as its allowed
values. Rename them to "classic" and "semantic" to better align with the
product terminology for the work package identifier modes.

Includes a migration to update any stored setting values in the database,
updated constants and helper methods on Setting::WorkPackageIdentifier,
and all corresponding references across models, components, forms,
frontend controllers, locales, and specs.
2026-03-28 10:01:57 +03:00
Kabiru Mwenja 36b17555b6 Merge pull request #22094 from opf/implementation/72461-administration-setting-for-sematic-work-package-identifiers-ui
Implementation/72461 administration setting for semantic work package identifiers UI
2026-03-18 12:30:17 +03:00
Markus Kahl a57b516c30 Merge pull request #22211 from opf/feature/ssrf-protection-part-1-test-email
SSRF protection part 1: test email
2026-03-09 15:28:51 +00:00
Markus Kahl 67063499cb rubocop 2026-03-09 14:49:36 +00:00
Markus Kahl 4c7559c6d7 update spec 2026-03-09 14:25:24 +00:00
Henriette Darge 2e50244208 Merge pull request #22185 from opf/bug/72761-wp-cf-of-type-list-does-not-display-info-banner-upon-creation
[72761] WP CF of type List does not display info banner upon creation
2026-03-09 11:27:29 +01:00
Henriette Darge c814a59bd4 Correctly show the blue info banner when no items are present. Further, show an error message when trying to delete the last custom option 2026-03-09 10:56:04 +01:00
Kabiru Mwenja 88205c911c Async-fetch confirm dialog via respond_with_dialog
Replace the imperative Stimulus openConfirmDialog action (which pre-rendered
the dialog in the page and called showModal() via JS) with the idiomatic
Hotwire approach: a GET endpoint that streams the dialog on demand.

- Add confirm_dialog route and controller action using respond_with_dialog
- Include OpTurbo::Streamable in ChangeIdentifiersDialogComponent
- Convert autofix button to a link with data-turbo-stream pointing to the
  new route; remove static dialog render from the form template
- Remove openConfirmDialog method from the Stimulus controller
- Update specs to use click_on and raw English strings instead of I18n.t()

Relates to #72461
2026-03-09 08:45:29 +03:00
Markus Kahl 2a56b3beea rubocop 2026-03-07 13:51:58 +00:00
Kabiru Mwenja 17d417e014 Merge branch 'dev' into implementation/72461-administration-setting-for-sematic-work-package-identifiers-ui 2026-03-07 15:49:38 +03:00
Kabiru Mwenja 5a73898c9b Use accessible selectors and raw strings in identifier settings specs
Replace CSS role selectors with capybara_accessible_selectors helpers
and substitute raw English strings for I18n.t() calls where the value
serves as a contract on the exact locale text.
2026-03-07 15:45:37 +03:00
Kabiru Mwenja 7a7f9261c6 Fix state-machine bugs in identifier settings form
- Swap wrapper_data_attrs condition: poll-for-changes must only be
  active in :change_in_progress state, not :edit/:completed
- Replace update_to_alphanumeric? with autofix_requested? keyed on
  confirm_dangerous_action param (DangerDialog checkbox signal)
- Use ActiveRecord::Type::Boolean cast for truthy check
- Fix spec: radio group label renders as <legend>, not <h2>; add
  visible: :all for hidden element assertion
2026-03-07 12:54:23 +03:00
Markus Kahl 7afb5f92ef fix test_mail_notification_spec 2026-03-05 12:15:36 +00:00
as-op 1e42928863 [#72803] Jira import: previous configuration data are still visible when we go back with back button and create a new configuration
https://community.openproject.org/work_packages/72803
2026-03-05 11:12:26 +01:00
Kabiru Mwenja 5f83f29368 Add confirmation dialog, in-progress UI, and extract radio form component 2026-02-26 18:10:55 +03:00
Klaus Zanders e0c63f2ed0 Merge pull request #22098 from opf/bug/72459-wrong-wording-in-enterprise-on-prem-support-token-input-field
[72459] Wrong wording in Enterprise on-prem support token input field
2026-02-26 09:37:01 +01:00
Ivan Kuchin 2d2fccce8c add has_comment to field formats using primer form 2026-02-25 16:00:17 +01:00
Henriette Darge 58217b51eb Update texts and caption in EE token dialog 2026-02-25 10:09:58 +01:00
Jan Sandbrink 6dead66a51 Update openproject-token
Pushing mcp_server down to enterprise professional plan.
2026-02-24 15:34:51 +01:00
Henriette Darge 6e228dc06a Fine-tune the shown forms of custom fields & fix tests 2026-02-23 09:08:21 +01:00
Henriette Darge f039bef878 Adapt test to new ID generation on Primer checkboxes 2026-02-06 11:12:16 +01:00
Jan Sandbrink 23880736fa Add UI to change MCP configuration
So far this configuration wasn't accessible for users at all.
This UI allows to disable all tools and resources separately,
as well as customizing their textual descriptions.
2026-01-29 11:34:11 +01:00
Ivan Kuchin 51b3a377e4 fix copyright header 2026-01-14 17:52:59 +01:00
Ivan Kuchin 727809562f test weighted item list custom field format fields 2026-01-14 17:52:59 +01:00
Ivan Kuchin f6a878775a cleanup comments in custom field format shared spec 2026-01-14 17:52:58 +01:00
Ivan Kuchin 4f387ec1da test calculated value custom field format fields 2026-01-14 17:52:58 +01:00
Ivan Kuchin 16f518ee86 expect editable field for user custom field 2026-01-14 17:52:57 +01:00
Ivan Kuchin 0dcc6d3d11 expect is filter and content right to left fields for work package custom field 2026-01-14 17:52:57 +01:00
Ivan Kuchin af78060e11 expect searchable field for work package and project custom field 2026-01-14 17:52:56 +01:00
Ivan Kuchin b0bf2748e4 expect admin only field for user and project custom field 2026-01-14 17:52:56 +01:00
Ivan Kuchin c0e671f68e expect is for all field for work package and project custom field 2026-01-14 17:52:55 +01:00
Ivan Kuchin ef015df588 expect section field for project custom field 2026-01-14 17:52:55 +01:00
Ivan Kuchin d9703fa46f singularize type in custom field format shared spec 2026-01-14 17:52:54 +01:00