Conversation
|
Caution The provided work package version does not match the core version Details:
Please make sure that:
|
HDinger
left a comment
There was a problem hiding this comment.
We discussed this week, that the SelectPanel is not a component we want to use in normal forms as the button as form element, is visually weird. Instead, we afterwards decided to use the normal autocompleter for cases like this
There was a problem hiding this comment.
Pull request overview
Updates the Backlogs project settings page UI to align with Primerized OpenProject patterns and improve consistency with other settings pages.
Changes:
- Renames the page header/breadcrumb title to “Backlogs” and moves “Rebuild positions” into the PageHeader action menu.
- Replaces the status “Definition of Done” checkbox table with a Primer SelectPanel-based form.
- Adds supporting i18n strings for SelectPanel titles/captions/dynamic labels.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| modules/backlogs/config/locales/en.yml | Adds new translations for the Definition of Done caption and SelectPanel labels. |
| modules/backlogs/app/views/projects/settings/backlogs/show.html.erb | Primerizes the page header/actions and swaps the legacy checkbox table for a Primer form + ApplicationForm component. |
| modules/backlogs/app/forms/projects/settings/backlogs_settings_form.rb | Introduces an ApplicationForm rendering the Definition of Done SelectPanel and submit button. |
| modules/backlogs/app/controllers/projects/settings/backlogs_controller.rb | Simplifies update logic to mass-assign done_status_ids via expected params. |
| menu_arguments: { anchor_align: :end }, | ||
| button_arguments: { | ||
| icon: :"kebab-horizontal", | ||
| aria: { label: t(:label_more) } |
There was a problem hiding this comment.
button_arguments uses aria: { label: ... }, but other Primer::OpenProject::PageHeader#with_action_menu usages pass the attribute as "aria-label": ... (e.g., app/views/projects/settings/versions/show.html.erb:43-46). Using the nested aria hash here may not set the aria-label attribute on the kebab button, which would hurt accessibility and can break consistency with the component API.
| aria: { label: t(:label_more) } | |
| "aria-label": t(:label_more) |
| <%= | ||
| primer_form_with( | ||
| url: project_settings_backlogs_path(@project), | ||
| model: @project, | ||
| method: :patch | ||
| ) do |f| | ||
| %> | ||
| <%= render Projects::Settings::BacklogsSettingsForm.new(f) %> | ||
| <% end %> |
There was a problem hiding this comment.
This change replaces the status checkbox table with a SelectPanel-driven form submission, but existing Backlogs project settings feature coverage still assumes checkboxes (e.g., it uses check status.name / have_checked_field). Please update/add a spec to cover selecting done statuses via the new SelectPanel UI and persisting them (including clearing selections).
Ticket
https://community.openproject.org/work_packages/70778
What are you trying to accomplish?
Updates the design of Backlogs Project Settings.
(out-of-scope for #21723)
Screenshots
What approach did you choose and why?
Merge checklist