720 Commits

Author SHA1 Message Date
Tomas Hykel 008f39b7f4 Revert "[STC-356] Disallow setting journal aggregation period to >2 hours"
This reverts commit 75de0dbcd2.
2026-06-12 15:36:40 +02:00
Tomas Hykel 75de0dbcd2 [STC-356] Disallow setting journal aggregation period to >2 hours 2026-06-12 15:31:55 +02:00
Kabiru Mwenja fd22629702 Code Maintenance/STC-462: Tidy the activity-tab paginator and centralise filter modes (#23552)
https://community.openproject.org/wp/STC-462

Two readability passes over the work package activity tab, no behaviour change. The paginator's private methods are reordered to follow their call order so the file reads top-down from `#call`, and the three activity filter modes (`:all`, `:only_comments`, `:only_changes`) — until now bare symbols duplicated across the controller, paginator, journal components and the hidden form — move into a single `WorkPackages::ActivitiesTab::Filters` module so the modes have one source of truth and can't drift apart. The diff reaches beyond the paginator into the controller, several components and a form, since that's where the symbols were scattered.
2026-06-05 16:50:08 +03:00
Alexander Brandon Coles e7a01b741f [OP-19415] Convert FilterForm to ViewComponent
Replaces `Filters::FilterForm` (an `ApplicationForm` subclass) with
`Filters::FilterFormComponent` (an `ApplicationComponent`). The old form
overrode `:nodoc:` Primer hooks (`before_render`, `perform_render`) and
read semi-public ivars (`@builder`, `@view_context`). The new component
receives the builder as an explicit keyword arg and uses a standard ERB
template, reducing Primer internal coupling from five semi-public APIs
to one (`FormList`).

https://community.openproject.org/wp/OP-19415
2026-06-02 18:50:35 +02:00
Klaus Zanders 9a875fde7a Merge pull request #23349 from opf/work-package-list-view
[Resource Management] Work Package List View
2026-06-02 16:49:02 +02:00
Oliver Günther 1f3da064ac Escape CSV formula cells by default 2026-06-01 13:44:29 +02:00
Klaus Zanders 4ac7e89709 Use the new Filters::FilterForm in the configure step 2026-06-01 11:36:12 +02:00
Klaus Zanders e53b50fa94 Merge branch 'dev' into filter-form-with-wp-query 2026-05-30 17:08:42 +02:00
OpenProject Actions CI b2f72fd486 Merge branch 'release/17.5' into dev 2026-05-30 04:49:04 +00:00
Klaus Zanders 78abead8b4 Fix interaction between Filters::FilterForm and the WorkPackage Query 2026-05-29 13:40:58 +02:00
Klaus Zanders ac41337290 Use Capybara helpers in testing 2026-05-29 09:28:06 +02:00
Klaus Zanders 40135d35fb Remove unused param for filter_form_class method 2026-05-29 09:28:05 +02:00
Klaus Zanders 1f00123aa4 Extract a Filters::FilterForm that can be re-used in other primer forms 2026-05-29 09:28:02 +02:00
Henriette Darge c6e407bee7 Open dropdowns to the top to unnecessary white space to the bottom. The advanced radio buttons above ensure that there is enough space 2026-05-28 14:35:58 +02:00
David F af4aa983a5 Use x icon with invisible scheme for filter delete button. wp/74380
As per review feedback from oliverguenther.
2026-05-26 08:14:56 +02:00
David F fd32b7b765 Add some documentation for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F 69c5b4f210 Prevent naming collisions for advanced filters. wp/74380 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 af60b3f2b8 Align advanced filters with last mockups version. wp/74380 2026-05-26 08:14:56 +02:00
David F 2fa7ce3ae8 Remove filters specific-attributes from date pickers. 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 f22771f5fc Replace old select with toggle with autocompleter. 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 fe39ccec97 Improve input group markup for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
David F 715bc9f003 Improve Primer’s filters UI alignment. 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
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
Alexander Brandon Coles f8e3ea3019 Merge remote-tracking branch 'opf/dev' into HEAD
# Conflicts:
#	frontend/src/assets/sass/backlogs/_master_backlog.sass
#	modules/backlogs/config/locales/crowdin/es.yml
#	modules/backlogs/config/locales/crowdin/uk.yml
#	modules/storages/config/locales/crowdin/zh-CN.yml
#	modules/wikis/config/locales/crowdin/es.yml
#	modules/wikis/config/locales/crowdin/uk.yml
#	modules/wikis/config/locales/crowdin/zh-CN.yml
2026-05-11 17:31:22 +02:00
Oliver Günther eae05f9d1a Fix after login redirect not ending up on configured URL by default
We used request.url and a back_url for the home path to redirect users
if they did not end up trying to access on a deep link.

In case you access / and get redirected by require_login, you want users
to end up on the after_login_default_redirect_url

Likewise, if you access /login without a back_url, you want the same
behavior

Deep linking logins are unchanged

https://community.openproject.org/work_packages/74756
2026-05-08 09:26:58 +02:00
Klaus Zanders 516cf0aee9 Do not show feature flags when they are disabled and cannot be enabled 2026-05-05 13:25:03 +02:00
Klaus Zanders cb04c035ad Refactor generation of select options to not pass bools around 2026-05-04 10:45:07 +02:00
Klaus Zanders b00b01d519 Always include the selected option in the settings form 2026-05-04 10:31:22 +02:00
Klaus Zanders ba64d8ff56 Ensure that only roles with fitting permissions can be used as the role for the project creator 2026-05-04 10:20:24 +02:00
Mir Bhatia bd6ddfe555 Merge pull request #22835 from opf/feature/72242-workflows-ux-improvement-allow-multi-selection-of-roles-in-workflow
[#72242] Workflows UX improvement: Allow multi-selection of roles in workflow
2026-04-29 11:29:10 +02:00
Mir Bhatia e561086d38 Update all remaining components to work with multiple roles 2026-04-28 13:08:26 +02:00
Henriette Darge 63e34c1dda Merge pull request #22864 from opf/bug/73501-formgroups-are-missing-descriptions
[73501] FieldsetGroups are missing descriptions
2026-04-23 13:41:48 +02:00
Henriette Darge fc8df6a9d3 Add description texts to Email and Reminder settings page 2026-04-22 10:16:29 +02:00
David. 070c9d41f8 Merge branch 'dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-21 13:51:06 +02:00
Klaus Zanders 8d15647333 Merge pull request #22372 from opf/departments-admin-menu
Manage organizations in Admin Menu
2026-04-20 12:39:43 +02:00
Alexander Brandon Coles 44b434e328 [#73798] Remove scrum_projects feature flag
Make Backlogs use the sprint-based behavior unconditionally and
remove the old feature-flagged branches from controllers, routes,
representers, and supporting helpers.

Update the affected Backlogs specs and PDF export expectations to
match the permanent sprint model and keep list reordering stable when
moving work packages between backlog and sprint scopes.

https://community.openproject.org/wp/73798
2026-04-17 09:47:10 +01:00
David F 8721ac9606 Copy workflow to multiple types at once. wp/72383 2026-04-16 17:09:00 +02:00
Klaus Zanders 9a78015f46 Duplicate group views 2026-04-14 09:58:04 +02:00
Klaus Zanders 145f25ac80 Add a setting for the organization name 2026-04-14 09:57:58 +02:00
David F 32831e08dc Merge remote-tracking branch 'origin/dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-13 17:41:13 +02:00
Oliver Günther 29085f5360 Merge pull request #22642 from opf/feat/allow-setting-overrides
Allow settings to be overridden for writable and values from plugins
2026-04-09 14:43:05 +02:00
David F 6e2efe8eb1 Merge branch 'dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-09 09:42:46 +02:00
Henriette Darge 66cae3a519 Merge remote-tracking branch 'origin/dev' into feature/65404-combine-and-redesign-notification-settings-and-email-reminders-pages-in-myaccount-area 2026-04-07 09:08:43 +02:00
Henriette Darge 5fb8197141 Add unique ids to avoid label mismatch 2026-04-07 09:02:58 +02:00
Oliver Günther 9da312202c Allow calling hook for external link capture 2026-04-02 16:09:41 +02:00
David F 004876b177 Merge workflow copy modes into one unified form. wp/72383 2026-04-02 14:56:01 +02:00