Commit Graph

3018 Commits

Author SHA1 Message Date
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
Judith Roth 4dd97c267c [#75231] Add tests for inserting WP links with # notation
https://community.openproject.org/wp/75231

in BlockNote editor
2026-05-29 10:30:29 +02:00
Judith Roth f1b1ab307d [#75231] Fix test for op-blocknote-extensions in open project
https://community.openproject.org/wp/75231
2026-05-29 10:30:29 +02:00
Alexander Brandon Coles 4ec84e75ac Merge pull request #23438 from opf/fix/flaky-inbox_column_spec
Fix flaky menu-based reorder specs, also renaming `wait_for_` Cuprite helpers
2026-05-28 18:09:20 +02:00
Alexander Brandon Coles d8708d8a62 Rename cuprite wait helper timeout: to wait:
Aligns with Capybara's `wait:` option naming conventions. A falsey value
skips the wait entirely, letting callers opt out of synchronisation.
2026-05-28 17:32:14 +02:00
Ivan Kuchin c5df0c29f0 Merge pull request #23182 from opf/code-maintenance/74769-remove-portfolio_models-feature-flag
[#74769] Remove portfolio_models feature flag
2026-05-28 17:20:48 +02:00
OpenProject Actions CI 3e02e2863f Merge branch 'release/17.5' into dev 2026-05-28 12:18:34 +00:00
Henriette Darge c74076a173 Merge pull request #23373 from opf/bug/64359-work-package-configuration-dialog-s-highlighting-tab-has-no-space-between-radio-buttons-and-labels
[64359] Work package configuration dialog's highlighting tab has no space between radio buttons and labels
2026-05-28 14:13:29 +02:00
Ivan Kuchin 1437167b0a handle multiple createable workspace types in specs 2026-05-28 13:54:35 +02:00
OpenProject Actions CI 49b802ca02 Merge branch 'release/17.5' into dev 2026-05-28 08:51:09 +00:00
Oliver Günther b0905e35b7 Merge pull request #23392 from opf/fix/ldap-seeder-aliases
Fix LDAP seeder not using env aliases and underscores
2026-05-28 08:56:14 +02:00
Oliver Günther a058f227f3 Add retry block on button save click 2026-05-28 08:32:49 +02:00
OpenProject Actions CI eb6717f81e Merge branch 'release/17.5' into dev 2026-05-27 14:11:35 +00:00
Oliver Günther 4724150e3d Avoid quote_string in favor of bindings where possible 2026-05-27 10:08:16 +02:00
Oliver Günther a1505dc0f5 Merge remote-tracking branch 'origin/release/17.5' into dev 2026-05-27 09:58:01 +02:00
Oliver Günther 46a4dbd1e6 Fix highlighting spec flakyness
The failing spec in this run
https://github.com/opf/openproject/actions/runs/26492229079/job/78012301717?pr=23371
was caused by the dialog not being open in the right tab.

Adding an expectation to it hopefully fixes it
2026-05-27 08:53:53 +02:00
Alexander Brandon Coles c776be17cc Make WP query history filter checks idempotent
Turbo can restore the query filter pane as either open or closed during
browser history traversal. Use an idempotent helper before asserting
restored filters so the spec checks the query state instead of depending
on the current pane visibility.
2026-05-26 23:17:42 +02:00
Kabiru Mwenja 9edacbf73f Merge pull request #22892 from opf/feature/blocknote-external-link-a11y
(Blocknote): Add screen-reader hint for external links
2026-05-26 14:47:00 +03:00
David F 3897c25139 Move autocomplete_options from FilterComponent to filter classes. wp/74380
As per review feedback from oliverguenther.
2026-05-26 08:14:56 +02:00
David F 88a29a0aff Turn checkbox filters into toggle switch. wp/74380 2026-05-26 08:14:56 +02:00
David F 683bda80b4 Clean up some CSS and JS. wp/74380 2026-05-26 08:14:56 +02:00
David F 8403bb74f2 Generalize datetime helper for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F 0f1daad3ee Fix advanced filters specs with date range picker. wp/74380 2026-05-26 08:14:56 +02:00
David F 527379c9a2 Fix most tests for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F fe39ccec97 Improve input group markup for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F 1ce489a2e0 Turn partials into form components. wp/74380 2026-05-26 08:14:56 +02:00
Kabiru Mwenja 8a213e2c03 Move browser-action helpers to spec/support sibling file
Park BlockNoteEditorBrowserActions next to BlockNoteEditorInput in
spec/support/form_fields/primerized/. spec/support/**/*.rb is autoloaded
by rails_helper, so the spec file just `include`s the qualified module
name. Keeps raw-driver concerns (DOM Range selection, paste
ClipboardEvent dispatch, W3C-action Delete) out of the high-level page
object — that one stays focused on semantic actions like paste_links
and attach_file — and avoids the test-file fatigue of a 50-line helper
module inside the describe scope.
2026-05-21 15:36:39 +03:00
Jens Ulferts 0ceaa2617c Merge pull request #23181 from opf/code-maintenance/74768-remove-calculated_value_project_attribute-feature-flag
[#74768] Remove calculated_value_project_attribute feature flag
2026-05-20 16:09:46 +02:00
Oliver Günther 3b3791f9ec Use correct configuration for group filter on user administration
https://community.openproject.org/work_packages/74763
2026-05-20 09:18:57 +02:00
Ivan Kuchin baac6473c5 use to have_no instead of not_to have in capybara 2026-05-19 17:42:42 +02:00
Dombi Attila dd8c9b1927 Refactor turbo stream assertions. 2026-05-19 00:44:04 +03:00
Jan Sandbrink 90acd7a022 Merge pull request #22549 from opf/session-auth-csrf-protection
Consider Sec-Fetch-Site header for session auth
2026-05-18 08:59:56 +02:00
Oliver Günther f4cc426b2c Merge pull request #23133 from opf/feat/users-filter-component
Convert custom filters on user administration to standard query
2026-05-13 14:34:04 +02:00
Oliver Günther af53ecae32 Adapt specs 2026-05-13 13:11:17 +02:00
Behrokh Satarnejad d924c255cf [69524] Primerize Types form configuration page (#22854)
* Create the section component

* Create the form configuration component

* Create a controller

* change form template

* Use primer dialog for reset to defaults button

* show WP configuration modal while creating a related WPs table

* Fix the drag and drop functionality without save button

* Fix renaming functionality

* Use generic drag and drop in form configuration and move all client side action handling to server side

* Fix embedded query form configuration regressions

* Add data test selectors to all elements that we used for test

* update the current tests with the new implementations and design

* Add new tests for new controller of sections and rows

* WP quesry row should only have edit quesry action

* Update transformer spec regarding the new changes

* Fix the failing test in reset form configuration and some tests for actions

* Fix rubocop errors

* Fix eslint errors

* Add spec for removing a section

* Use condensed border boxes

* fix failing specs

* fix failing specs

* Switch the buttons in form configuration component

* Create the section at the top of the list

* Instead of using UUID, use the name of the group as the key

* Add missing check for EE for section actions

* Remove angular components

* Use action list instead of a border box for left side panel

* Reduce the margin between the right side panel and sub header, add some space to the query table left side, span to the whole available space

* Show validation errors while updating and creating a section

* Use a danger dialog for reset to default

* Add a confirmation for removing the section

* Align items in the row

* Use test_selector instead of data-test-selector

* Create move_action in rb file

* Create move_action in rb file

* Simplify section component

* Simplify form configuration component

* Remove dialog for rename and delete section on missing EE

* Create a component for inactive attribute list

* Create a separate component for reset dialog

* Remove EE feedback dialog

* Remove form partial which is not needed anymore

* Remove unused js strings

* Update using update_via_turbo

* Remove form configuration rows controller

* Create a blanksalte component

* Fix failing specs

* Fix failing specs

* Fix failing specs

* Remove unused translation strings

* Align form configuration section routes with actual create flow

* Change section to group

* Change section to group in services and controllers

* Change section to group in en.yml

* Fix rubocop errors

* Move the query group persistence assertion from the JS feature spec
to the synchronous form configuration groups controller spec.

* Reuse query service result in embedded query build

* Keep inactive attribute filter after turbo list refresh

* Extract form configuration group edit state into form model

* Fix the failing test

* Potential fix for pull request finding 'CodeQL / Potentially uninitialized local variable'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Rename inactive attribute component inputs

* Refine reset dialog wording for form configuration

* Use direct Turbo action for adding attribute groups

* Reuse generic filter-list controller for inactive attributes

* Remove focus impelementation in ts

* Group form configuration Stimulus controllers under one namespace

* Use turbo request service in form configuration controller

* Clarify legacy group key normalization in form config contract

* Replace inactive attribute list wrapper via turbo stream

* Extract duplicate untitled group key generation into Type::FormGroup.next_untitled_key

* Auto-generate untitled group name on create instead of returning an error

* Avoid mixed return types in form config group create service

* Extract shared form configuration group service behavior into concern

* Fix spacing for the last group and italic font for the placeholder rows

* Replace Angular no-results component with Primer Banner on form configuration page

* Hide dropped element immediately to prevent flickering before Turbo Stream response

* Reload type before rendering create error to prevent duplicate groups

* Await service initialization before use to prevent potential race condition

* Replace sleep calls with deterministic waits in form configuration spec

* Handle malformed JSON and invalid query errors gracefully in form configuration update

* Make query group label a clickable button and empty group hint italic

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-13 12:56:18 +02:00
Eric Schubert 5723f8a12f [chore] add anonymous fallback for bcf api scope
- our APIv3 relies on having a non-null user
- if all auth strategies fail, the anonymous user is set to User.current
- bcf api is mounted in the root api - path is /api/bcf/v2_1 - that is
  the reason for the need of being able to fallback to anonymous user in
the bcf api scope
2026-05-12 08:13:14 +02:00
Eric Schubert f3f8625434 [chore] removed docs and code insertions for custom header
- X-Requested-With header no longer needed to prevent CSRF for session
  based auth
- removed occurences and mentions from code and docs
2026-05-12 08:13:14 +02:00
Oliver Günther c950be910e Convert custom filters on user administration to standard query 2026-05-08 13:34:21 +02:00
ulferts eaf26e4918 attempt to fix flickering activities spec
rspec ./spec/features/activities/work_package/activities_spec.rb:678
2026-05-08 11:14:03 +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
Mir Bhatia 16c0d021cc Merge pull request #23014 from opf/feature/74577-build-primer-quickfilter
[#74577] Build segmented control quickfilter
2026-05-06 16:20:33 +02:00
Mir Bhatia dd092f37cd Add component specs 2026-05-06 09:09:20 +02:00
Dombi Attila eaa82a95ca Merge branch 'dev' into merge-release/17.4-20260505152418 2026-05-05 19:37:24 +03:00
Judith Roth f9b0f21c8b Merge pull request #23009 from opf/jr/bump/op-blocknote-extensions-version-to-0-0-24
Update op-blocknote-extensions to version 0.0.24 for improvements in the search input
2026-05-05 13:12:10 +02:00
Oliver Günther 5bf27bb868 Merge remote-tracking branch 'origin/release/17.4' into dev 2026-05-05 12:29:43 +02:00
Oliver Günther e9702547af Retry CKEditor setData event in case it's not initialized yet (#23059)
* Retry CKEditor setData event in case it's not initialized yet

set_markdown dispatches a op:ckeditor:setData custom event immediately after .ck-content appeared in the DOM.
But the eventlistener for this event is registered inside an async .then() callback in ckeditor-setup.service.ts.

The event listener may not yet be registered at that point, causing inserted text to "vanish" and not be saved at all

* Use updated dataset attribute to know it was updated without checking text
2026-05-05 12:28:35 +02:00
Alexander Brandon Coles 83573af155 Merge dev into release merge branch
Resolve Backlogs sprint conflicts by porting the release assignability
changes onto the renamed Sprint model.
2026-05-05 08:51:13 +01:00
Judith Roth c38d935f59 [#69706] Fix tests for op-blocknote-extensions 0.0.24
In 0.0.24 a callback was added that removes the whole search input from
the DOM / document when a blur event (e.g. clicking anywhere else)
occurs. This broke the capybara tests, since they somehow triggered that
blur and then the whole input was removed from the DOM before the tests
were finished testing it.
Therefore now all interaction of with the work package search input is
done via js whithout any interruptions that cause a blur event.
I am not happy about this solution and asked to relax that blur
requirement to e.g. only remove the search when the document / browser
tab is closed, but this was refused. So this is the only solution to
keep the tests in at all.

https://community.openproject.org/wp/69706
2026-05-04 14:51:36 +02:00