* 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 following keys were never referenced in the codebase of this
repository. They were imported as-is from the external plugin when it
was integrated into the monorepo in November 2018 (7fc6e7f), but had
no corresponding usage in any view or Ruby file:
- two_factor_authentication.label_pwd_confirmation
- two_factor_authentication.notice_pwd_confirmation
- two_factor_authentication.label_one_time_password
- two_factor_authentication.text_enter_2fa
- two_factor_authentication.settings.error_invalid_settings
- two_factor_authentication.backup_codes.none_found
- field_phone
- label_expiration_hint
- label_actions
- label_unverified_phone
The following keys were removed from the code more recently:
- two_factor_authentication.upsell.title and .upsell.description: the
view using them (upsale.html.erb) was replaced by a shared component
in 9357553 (March 2025). The keys were renamed from `upsale` to
`upsell` in e27ac494 (April 2025) but were never wired up in the
new component.
Key `two_factor_authentication.backup_codes.your_codes` was removed in
commit 6c6ba1e08a. The subtitle using it was replaced by a page header
with a breadcrumb.
This error is intended for cases when a method is
intentionally not implemented, because the module/class defining
it expects a subclass (or class including the module) to implement
the method.
This is intended to distinguish it from other cases, such as:
* feature not implemented yet
* edge case of a method call not yet supported
Notably it avoids the misuse of the Ruby-defined NotImplementedError,
which is only intended for much more specific scenarios:
> Raised when a feature is not implemented on the current platform. For example, methods depending on the fsync or fork system calls may raise this exception [...]
Also see https://docs.ruby-lang.org/en/master/NotImplementedError.html