Skip to content

[#70778] Primerize Backlogs Project Settings#21822

Open
myabc wants to merge 1 commit intodevfrom
feature/70778-primerize-backlogs-project-settings
Open

[#70778] Primerize Backlogs Project Settings#21822
myabc wants to merge 1 commit intodevfrom
feature/70778-primerize-backlogs-project-settings

Conversation

@myabc
Copy link
Contributor

@myabc myabc commented Jan 30, 2026

Ticket

https://community.openproject.org/work_packages/70778

What are you trying to accomplish?

Updates the design of Backlogs Project Settings.

  • Changes the page header text to "Backlogs" for consistency with other pages.
  • Moves "Rebuild positions" under the page's action menu.
  • Renders Definition of Done options as a Select Panel.

(out-of-scope for #21723)

Screenshots

Before After
Screenshot 2026-01-30 at 09 16 46 Screenshot 2026-01-30 at 09 16 31

What approach did you choose and why?

Merge checklist

  • Added/updated tests
  • Added/updated documentation in Lookbook (patterns, previews, etc)
  • Tested major browsers (Chrome, Firefox, Edge, ...)

@myabc myabc marked this pull request as ready for review January 30, 2026 12:23
Copilot AI review requested due to automatic review settings January 30, 2026 12:23
@github-actions
Copy link

Caution

The provided work package version does not match the core version

Details:

Please make sure that:

  • The work package version OR your pull request target branch is correct

Copy link
Contributor

@HDinger HDinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) }
Copy link

Copilot AI Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
aria: { label: t(:label_more) }
"aria-label": t(:label_more)

Copilot uses AI. Check for mistakes.
Comment on lines +59 to 67
<%=
primer_form_with(
url: project_settings_backlogs_path(@project),
model: @project,
method: :patch
) do |f|
%>
<%= render Projects::Settings::BacklogsSettingsForm.new(f) %>
<% end %>
Copy link

Copilot AI Jan 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants