* 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>
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.
This is needed to make these two statements equivalent:
expect(page).not_to have_xpath('a')
expect(page).to have_no_xpath('a')
So that the both matchers return early on element absence, instead of
timing out.
This is the continuation of e85b47979a.
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.
Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
* WIP: PrecedesFilter and FollowsFilter for WorkPackages
* Create Type Form Groups per Query Type
* generalize filters on relations avoiding alias
* fix flickering spec
* Rename dependency represeners for Follower and Predecessor Filters
* Allow configuring templated queries within query configuring modal
* Use `{id}` as templated value, instead of a now deprecated `templated` string
* Rewrite ParentFilter to follow same structure as other relation filters.
* Set Follower and Predecessor filters as hidden in Frontend
* Default query shall show closed WPs, too
* Remove relation filter type selection from form configuration view as we extend query configuration modal instead.
* Allow ExternalQueryConfiguration to be more specific and prepend relation filters in its modal.
* Quick unrelated fix on the way: the instruction text should start below the columns input and not to the right of it
* - Add all missing relation filters.
- Use verbs for naming instead of nouns to stay consistent with UI.
* fix typo
* Add relation filters to hidden filters and fix a rebase bug
* Typo in docs
* Fix broken rebase conflict resolution
* Add part of and includes filter
* adding specs for relation filters
* rename RelatesFilter to RelatesToFilter
* Rename shared example as direction does not matter anymore.
* Fix spec for IncludesFilter
* Fix name conflict for `includes` by calling typed_dag's `direct` later.
* Fix shared filter examples as the parent filter does not get added per default anymore.
* Fix spec after renaming PredecessorFilter to PrecedesFilter
* Fix integration spec for type configuration form
* Add filter dependency specs
* Differentiate between WorkPackageFormChildrenQueryGroup and WorkPackageRelationQueryGroup types
* Create inline-create for relation tables
* Rewrite filters to use actual relation_type as key
* Reload relations on change, change symbols
* Fix relation filter i18n strings
* Test presence of all relation filters frontend.
* Extend integration test for form configuration to not only cover hierarchy, but also undirectional and directional relation types.
* Consistent naming of filter dependency representer files
* Satisfy codeclimate
* Add missing copyright notes
* Fixing PartofFilter and its specs
* Reverse relation direction when created inline
* WIP integration test for Relation Query Component and Children Query Component.
* Correctly reload children tables when refreshed
* Fix FilterOnUndirectedMixin
* Fix removing of relation from embedded table after reload
* Adding intergration tests for removing and adding relation or children, initiated form either embedded table or relations tab.
* Fix specs
* Fix implementation of duplicates and duplicated
They are reversed in typed_dag and causes confusion
[ci skip]