* Show filed type beside its name
* Add feature spec
* Add a comment for field_type_label
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Add custom field type label assertion to feature spec
* Move custom field to active group before asserting type label
* Rename the displayed field format value from field_type to
field_format_label and reuse CustomFieldsHelper for custom field format
labels.
* Make the table configuration modal wait more and embedded work package table loading take longer to avoid flaky failures when the modal or embedded table is still refreshing in CI
* Undo changes for switch_to method
* Undo changes for the tests that are sometimes failing on CI
* Update spec/features/types/form_configuration_spec.rb
Co-authored-by: Henriette Darge <h.darge@openproject.com>
* Update spec/helpers/types_helper_spec.rb
Co-authored-by: Henriette Darge <h.darge@openproject.com>
* Rubocop errors fixed
* Fix flaky field format labels spec by revisiting page after custom field creation
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Henriette Darge <h.darge@openproject.com>
* 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>
* Move `TypesController` to `WorkPackageTypes` namespace
* Replace the outdated template with a primer
* Also, eliminated a couple of N+1's for `TypesController`
* Clean up the code
* Remove TypesController#update action
* Cleaned up old `tab` paths
* Delete edit.html.erb
* Remove edit action from `TypesController`
* Remove the rest of the unused files
Add a form configuration tab for work package types.
Introduces a new `FormConfigurationTabController`, view, and routes to allow editing and updating form configuration for work package types.
Updates the attribute groups transformer and update service to handle attribute group parameters correctly.
Failing spec is ./spec/features/types/form_configuration_query_spec.rb:174
on job run https://github.com/opf/openproject/actions/runs/14513528848/job/40717420434
The spec seems flaky because the form configuration modal is opened
while the page is reloaded, which closes the modal and then the elements
inside the modal cannot be clicked anymore.
This is fixed by calling `expect_and_dismiss_flash` instead of
`expect_flash` in the specs so that it waits for the save to complete.
If not dismissed, it does not wait the second time, which is the case in
the flaky spec.
I also changed `add_query_group` to yield the modal to the caller so
that the caller can interact with the modal before saving it. It's
better than creating it, closing it, then reopeining it again with
`edit_query_group` to make modifications. I thought it was the culprit
for the flakiness but actually no. But the code read better so I kept
it.
- https://community.openproject.org/work_packages/60183
- rewrite work package type routes
- added new controller for subject configuration
- fixed test expectation values for radio buttons
- removed tests for disabled submit button
- extracted tests to new controller
Estimated time => Work
Remaining time => Remaining work
Progress (%) => % Complete
The export pdf test needed to be fixed too: The test has been updated to expect
only 1 page instead of two. As fields having been renamed, they are now
shorter. So some vertical space is saved and the additional page break
is not triggered anymore before rendering the custom fields.