rspec ./modules/budgets/spec/features/budgets/update_budget_spec.rb:340
The JS might not be initialized shortily after update is pressed. Because of that,
an otherwise useless expectation is added that will retry in such a case.
* 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
rspec ./modules/budgets/spec/features/budgets/update_budget_spec.rb:54
The assumption is that the update form is rendered and filled before the JS that is tested
is instantiated. The fix is to fill in the fields again if the spec fails
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
* 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>