[DREAM-803] Migrate wiki, OAuth and project settings lists to BorderBoxList - #24645
Merged
Conversation
3 tasks
4 tasks
myabc
commented
Aug 6, 2026
myabc
commented
Aug 6, 2026
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 6, 2026 19:43
99c9faa to
68015cd
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.
Suppressed comments (3)
app/components/projects/settings/project_custom_field_sections/show_component.html.erb:10
- Argument indentation is inconsistent:
test_selector:is over-indented relative to the other keyword arguments in thisBorderBoxListComponent.newcall. This diverges from existing BorderBoxListComponent usages and can trigger ERB/Ruby linting alignment cops.
OpenProject::Common::BorderBoxListComponent.new(
container: "project-custom-field-section-#{@project_custom_field_section.id}",
position: :relative,
mb: 3,
classes: "op-project-custom-field-section",
test_selector: "project-custom-field-section-#{@project_custom_field_section.id}"
)
app/components/projects/settings/creation_wizard/project_custom_field_sections/show_component.html.erb:10
- Argument indentation is inconsistent:
test_selector:is over-indented relative to the other keyword arguments in thisBorderBoxListComponent.newcall. Aligning the keyword arguments matches existing component usages and avoids potential lint failures.
OpenProject::Common::BorderBoxListComponent.new(
container: "project-custom-field-section-#{@project_custom_field_section.id}",
position: :relative,
mb: 3,
classes: "op-project-custom-field-section",
test_selector: "project-custom-field-section-#{@project_custom_field_section.id}"
)
app/components/projects/settings/life_cycle/index_component.html.erb:31
test_selector:is mis-indented in theBorderBoxListComponent.newargument list, which is inconsistent with surrounding keyword alignment and may fail ERB/Ruby alignment linting.
OpenProject::Common::BorderBoxListComponent.new(
container: "project-life-cycle-administration",
position: :relative,
mb: 3,
test_selector: "project-life-cycle-administration"
)
myabc
commented
Aug 6, 2026
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
2 times, most recently
from
August 6, 2026 21:06
2318fc1 to
c31d5e5
Compare
myabc
marked this pull request as ready for review
August 6, 2026 21:16
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 6, 2026 21:38
c31d5e5 to
e23cee9
Compare
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
2 times, most recently
from
August 7, 2026 07:39
3cddcb9 to
ab960f6
Compare
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 7, 2026 19:07
ab960f6 to
86a672c
Compare
bsatarnejad
requested changes
Aug 11, 2026
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 12, 2026 08:20
86a672c to
5b3996f
Compare
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 12, 2026 08:40
e9d9d77 to
deeee00
Compare
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
2 times, most recently
from
August 12, 2026 11:01
94e06bb to
683ab4b
Compare
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 12, 2026 11:04
683ab4b to
99ddc98
Compare
3 tasks
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 12, 2026 11:23
fc1c2f1 to
c781345
Compare
Moves collapsible wiki links onto the shared list component. https://community.openproject.org/wp/DREAM-697
Moves wiki relation links onto the shared list component. https://community.openproject.org/wp/DREAM-697
Moves the portfolios index rows and empty state onto the shared list. https://community.openproject.org/wp/DREAM-697
Moves OAuth application rows and placeholders onto the shared list. https://community.openproject.org/wp/DREAM-697
Moves project life-cycle rows and actions onto the shared list. https://community.openproject.org/wp/DREAM-697
Moves project attribute section rows in settings and creation wizard. https://community.openproject.org/wp/DREAM-697
Uses the shared list for project-specific notification settings. https://community.openproject.org/wp/DREAM-697
Applies the dynamic empty-state lifecycle to the project life cycle and project attributes settings lists, replacing the detached plain-text no-results notice. https://community.openproject.org/wp/DREAM-803
The migration spec still asserted the always-rendered empty-state row from the reverted behavior; populated lists render no such row now. https://community.openproject.org/wp/DREAM-803
myabc
force-pushed
the
implementation/DREAM-803-project-core-list-migrations
branch
from
August 12, 2026 12:26
c781345 to
6b3c4d5
Compare
myabc
deleted the
implementation/DREAM-803-project-core-list-migrations
branch
August 12, 2026 12:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket
https://community.openproject.org/wp/DREAM-803
What are you trying to accomplish?
Third slice of the DREAM-697 split: mechanical consumer migrations from
Primer::Beta::BorderBox/border_box_containertoOpenProject::Common::BorderBoxListComponent, one commit per surface.Wikis::CollapsiblePageLinksComponentandWikis::RelationPageLinksComponentPortfolios::IndexComponentOAuth::Applications::IndexComponentProjects::Settings::LifeCycle::IndexComponentProjects::Settings::ProjectCustomFieldSections::ShowComponentand its CreationWizard twinMy::Notifications::ShowPageComponentThe life cycle and project custom-field sections lists opt into
empty_state_behavior: :dynamic: filtering to no matches shows the blankslate inside each box, replacing the life cycle page's detached plain-text "No items found" notice.What approach did you choose and why?
Each migration is a focused vertical slice with its component spec, so surfaces can be reviewed independently and reverted individually if needed. Stacked on #24644 only for linear review order; it does not depend on those surfaces.
Visual comparisons
Show baseline/candidate screenshots
Baseline is shown on the left; the candidate stack is shown on the right. (Screenshots predate the empty-state rework; regeneration pending.)
Work package wiki tab
Portfolios
OAuth applications
Project life cycle
Project custom-field sections
Project creation wizard attributes
My notifications
Merge checklist