* 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
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.
* 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
* 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>
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.
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
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.
- 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
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.