rspec ./spec/features/activities/work_package/activities_spec.rb:678
The attempt is to have the frontend wait for the turbo stream response rather than a fixed timeout.
The removed wait_for seems to be non-functional.
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.
* 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>
Stabilize shared ng-select interactions for Cuprite and reuse open
dropdowns safely in modal-based flows. Also keep filter clearing
safe when no value is selected and refresh the My Page drop target
after drag-induced DOM updates.
Add `clear_filter_value` to clear an ng-select filter's current
selection without removing the filter row, allowing a new value
to be set in place.
Refactor `insert_autocomplete_item` to accept a filter `id` string
rather than a pre-captured element, so the ng-select node is
re-queried on each call. This avoids stale element references
after `clear_filter_value` causes the DOM to re-render.
failing spec: spec/features/work_packages/progress_modal_spec.rb:195
failing run: https://github.com/opf/openproject/actions/runs/21204407008/job/60997306384
In the spec, another page is visited during the test, meaning the
internal ids of the capybara elements may not be the same as the ones
before the page is reloaded. This is a problem because the
`progress_popover` caches the container element, and it's not valid
anymore (it's stale).
One fix could be to create a new `progress_popover` instance after the other page is visited.
I found it better to be able to pass a lambda for the container element
to the `progress_popover` constructor, so that it always gets it afresh
and will never be stale.
Selection by work package ID was unreliable, because the text
that's selected by is from anywhere in the selected element.
The element shows different information:
* WP subject
* WP ID
* Project name
* status name
The intention of the original code was to uniquely select work packages
by their ID, however it was also perfectly possible to have a project
named "Project 123" as the parent of all work packages. So if the WP
id happens to be 123 as well, the selection would be effectively random
across the work packages.
(Credit for discovering the root cause of this flicker goes to Christophe Bliard
if anyone is asking ;-) )
Fixes flickers of spec/features/work_packages/details/relations/hierarchy_spec.rb,
Reproduction instructions as provided by Christophe:
rm -f db/structure.sql; \
bin/rails db:drop db:create db:migrate RAILS_ENV=test > /dev/null ; \
CI=true TZ=UTC OPENPROJECT_LOG__LEVEL=info CAPYBARA_PUMA_THREADS=0:4 DISABLE_SPRING=1 \
bin/rspec --seed 34872 -fd \
'spec/features/work_packages/details/relations/hierarchy_spec.rb[1:1:1:1]' \
spec/features/work_packages/work_package_index_spec.rb:46
* Create a FullView::CopyComponent for WorkPackages which is routed from rails
* Remove angular splitCopy route and component as it was overwritten by the angular fullCopy route for quite some time already and nobody complained. So we decided to remove the splitCopy completely
* Create FullView::CreateComponent for WorkPackages which is now routed from rails instead of Angular
* First draft of implementing the FullView route for WorkPackages from rails
* Pass correct tab from the URL to the FullView::ShowComponent
* Do a hard reload to "create" route when we are not routed from Angular
* Adapt routing spec to new WorkPackage routes and to some fine-tuning with the WP routes
* Show correct tab in WP Full view and change URL when clicking a tab entry
* Adapt to new rails based routing
* Fix some routes and redirects
* Make sure, the split screen stil renders correctly
* Remove back button from WP full view
* Fix routing issues
* Start fixing specs
* Attempt to override the browser history to be able to use browser back
* Use helper function to build new WP url string
* Adapt spec that now partially renders backend toasts
* Remove ability to move to fullscreen
Theoretically, we can re-add it by posting to some form endpoint, but
not worth it for the first iteration
* Disable cache-control on angular routed pages, so back links work
* Fix double click to fullscreen
* Adapt navigation and title setting
* Let WP breadcrumb to a hard reload instead of Angular transition
* Redirect when the WP route is incomplete (this is the attempt to re-implement an angular functionality)
* Navigate with Turbo when double clicking a card
* Adapt onboarding tour to new hard reload when switching to WP full view
* Fix some specs
* Fix more tests
* Hide Overview tab on FullView
* Correct check for incomplete routes
* Do a hard refresh when coming from slpit screen to full view
* Fix notification navigation
* Adapt attachment spec as the tab switch cannot be done anymore while dragging
* Fix more tests
* Please rubocop and fix more tests
* Attempt to fix navigation_spec
* Add debian_base for pullpreview
---------
Co-authored-by: Oliver Günther <mail@oliverguenther.de>
Add `wait_for_network_idle` at the start of `type_comment`
to ensure all pending Turbo Stream rendering completes before
attempting to interact with the form.
This is needed as the lazy pages now intercept turbo stream rendering.
The activities tab polling mechanism updates newly updated journals, based on the last update timestamp. In case an attachment is added, or the journal is updated in any other places- the UI item would be updated\ on the next poll, overriding the edit form.
This commit adds an exclusion for any forms that are in "edit" state- it does not yet take into account conflict resolution.
https://community.openproject.org/wp/63545https://community.openproject.org/wp/65680
spec is ./spec/features/activities/work_package/activities_spec.rb:598
failing in https://github.com/opf/openproject/actions/runs/14839826610/job/41659840476
The menu button to filter the journals is clicked but the menu content
is sometimes not visible for some reason... Add a `retry_block` around
it to retry it when it happens and fix the flakiness.
'./spec/features/activities/work_package/internal_comments_spec.rb:300'
was failing due to the renaming of the "Restrict visibility" checkbox to
"Internal comment" happening in a branch, and a test helper being added
for the old string in another branch.
Reuse the same controller that was used for adding children,
`WorkPackageChildrenRelationsController`, and renamed it to
`WorkPackageHierarchyRelationsController`. The difference is done with a
`relation_type` parameter which can be `"parent"` or `"child"`.
Reuse the same dialog that was used for adding children,
`AddWorkPackageChildDialogComponent`, and renamed it to
`AddWorkPackageHierarchyDialogComponent`.
Failing spec is 'spec/features/work_packages/scheduling/automatic_scheduling_logic_spec.rb:340'
CI job run is https://github.com/opf/openproject/actions/runs/14442271942/job/40494880063?pr=18613
The spec was failing because the action menu was not visible (maybe it
was hidden by a relations tab refresh).
The fix is to retry the action until it works.