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.
Update the XWiki auth screen: added client secret, aligned the UI with the storage UI.
Auth now supports only registered clients on the XWiki side.
---------
Co-authored-by: Jan Sandbrink <j.sandbrink@openproject.com>
Queries are supposed to return results for the user
passed in the auth strategy. If the current user is set,
it's easy for the spec to accidentially succeed, because
the query implementation used the global User.current instead.
This change is mostly wiring up things, but leaves some things open:
* we still need to use a proper create service (to be built)
* the modal needs to use a treeview to select the identifier
(requires fetching of a list of available wiki pages)
This allows to use more of the automagic pieces of our BaseServices::Create:
* recognition of the created class without passing it explicitly
* automatic recognition of the correct contract
Furthermore the contract has been adapted, so that it also properly works
when a new page link is created just through params this way. Notably:
* even if type is indicated in `changed`, it doesn't crash and burn
* linkable can be passed in as `linkable_id` + `linkable_type`, instead of
only working if already passed in as a whole
* 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