[#73188] Remove EE guards from boards#22376
[#73188] Remove EE guards from boards#22376myabc wants to merge 1 commit intofeature/69139-sprint-task-boardsfrom
Conversation
1994689 to
2b7e5a1
Compare
Deploying openproject with ⚡ PullPreview
|
There was a problem hiding this comment.
Pull request overview
This PR makes Boards fully available in Community Edition by removing remaining frontend/runtime Enterprise Edition (EE) guards and aligning onboarding + feature specs with the new default behavior (no enterprise banner/disabled board types when no board_view token is present).
Changes:
- Removes EE-based availability gating in the Angular boards UI (lists rendering and action-type registry).
- Updates onboarding tour logic and onboarding feature specs to always follow the “Kanban/enterprise” board tour path.
- Updates boards feature specs to assert all board types are enabled and action boards render without an enterprise banner.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| modules/boards/spec/features/support/onboarding_steps.rb | Simplifies board onboarding assertions to the Kanban step only. |
| modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb | Removes EE/CE branching in the spec and updates setup accordingly. |
| modules/boards/spec/features/boards_global_create_spec.rb | Removes EE requirement and asserts all board types are enabled in the global create flow. |
| modules/boards/spec/features/board_enterprise_spec.rb | Reworks spec to validate boards are available without enterprise banners. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts | Removes banner/availability checks so boards render consistently. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html | Removes enterprise banner and conditional rendering that previously hid non-free boards. |
| frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts | Removes EE-based disabling of action board tiles. |
| frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts | Removes EE token branching and always routes onboarding through the boards tour when demo data is available. |
You can also share your feedback on Copilot code review. Take the survey.
2b7e5a1 to
379c120
Compare
8f09353 to
c1751b3
Compare
There was a problem hiding this comment.
Pull request overview
This PR removes the remaining Enterprise Edition (EE) runtime guards around boards so that action boards are fully available in Community Edition (CE), and updates onboarding + feature specs to reflect the new default behavior.
Changes:
- Removed EE gating/enterprise banner behavior in the boards UI (list rendering and board type availability).
- Removed backend EE restriction on board type creation and updated board type helper defaults.
- Updated onboarding flow and boards feature specs to no longer branch on
board_viewEE token presence.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/boards/spec/features/support/onboarding_steps.rb | Removes EE-token branching in board onboarding step helper. |
| modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb | Aligns demo-project onboarding spec to always expect kanban/action-board onboarding path. |
| modules/boards/spec/features/boards_sorting_spec.rb | Drops with_ee: %i[board_view] requirement for sorting spec. |
| modules/boards/spec/features/boards_global_create_spec.rb | Updates global-create specs to expect all board types enabled and no enterprise banner. |
| modules/boards/spec/features/board_update_spec.rb | Drops with_ee: %i[board_view] requirement for update spec. |
| modules/boards/spec/features/board_reference_work_package_spec.rb | Drops with_ee: %i[board_view] requirement for reference spec. |
| modules/boards/spec/features/board_overview_spec.rb | Drops with_ee: %i[board_view] requirement for overview spec. |
| modules/boards/spec/features/board_navigation_spec.rb | Drops with_ee: %i[board_view] requirement for navigation spec. |
| modules/boards/spec/features/board_management_spec.rb | Drops with_ee: %i[board_view] requirement for management spec. |
| modules/boards/spec/features/board_index_spec.rb | Drops with_ee: %i[board_view] requirement for index spec. |
| modules/boards/spec/features/board_highlighting_spec.rb | Drops with_ee: %i[board_view] requirement for highlighting spec. |
| modules/boards/spec/features/board_enterprise_spec.rb | Reworks enterprise-focused spec into a general availability spec (no banner, all types enabled). |
| modules/boards/spec/features/board_conflicts_spec.rb | Drops with_ee: %i[board_view] requirement for conflicts spec. |
| modules/boards/spec/features/action_boards/version_board_spec.rb | Drops with_ee: %i[board_view] requirement for version action board spec. |
| modules/boards/spec/features/action_boards/subtasks_board_spec.rb | Drops with_ee: %i[board_view] requirement for subtasks action board spec. |
| modules/boards/spec/features/action_boards/subproject_board_spec.rb | Drops with_ee: %i[board_view] requirement for subproject action board spec. |
| modules/boards/spec/features/action_boards/status_type_moving_board_spec.rb | Drops with_ee: %i[board_view] requirement for status moving action board spec. |
| modules/boards/spec/features/action_boards/status_board_spec.rb | Drops with_ee: %i[board_view] requirement for status action board spec. |
| modules/boards/spec/features/action_boards/custom_field_filters_spec.rb | Drops with_ee: %i[board_view] requirement for custom-field filters spec. |
| modules/boards/spec/features/action_boards/assignee_board_spec.rb | Drops with_ee: %i[board_view] requirement for assignee action board spec. |
| modules/boards/app/views/boards/boards/_form.html.erb | Removes enterprise banner wrapper around board type selection; keeps tile UI. |
| modules/boards/app/helpers/boards_helper.rb | Makes all board types enabled by default; adjusts global-create detection logic. |
| modules/boards/app/controllers/boards/boards_controller.rb | Removes server-side restriction preventing non-basic boards without EE token; uses params.expect for strong params. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts | Removes EE availability checks and banner service usage from board list container. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html | Always renders board lists (no enterprise-banner-only mode). |
| frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts | Removes EE-based disabling of action-board tiles. |
| frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts | Removes EE feature checks; always uses the “enterprise” (kanban) board tour variant when boards demo data is present. |
You can also share your feedback on Copilot code review. Take the survey.
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts
Show resolved
Hide resolved
9d4e601 to
3e5c46f
Compare
...end/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
This PR makes Boards fully available in Community Edition by removing remaining Enterprise Edition runtime guards in both the boards UI and the onboarding tour, and aligns feature specs with the new default behavior.
Changes:
- Remove EE gating/upsell behavior for action boards in the boards UI (creation flow + board rendering).
- Update onboarding tour logic and feature specs to always cover the kanban/action-board experience.
- Adjust backend board type attributes and controller flow to no longer restrict non-basic board types by EE token.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| modules/boards/spec/features/support/onboarding_steps.rb | Simplifies board onboarding step assertions to always expect the kanban/action-board step. |
| modules/boards/spec/features/onboarding/boards_onboarding_tour_spec.rb | Removes EE/CE branching and updates setup + expectations for the unified onboarding flow. |
| modules/boards/spec/features/boards_sorting_spec.rb | Drops with_ee tag so sorting is tested in CE-equivalent context. |
| modules/boards/spec/features/boards_global_create_spec.rb | Updates global board creation expectations: all board types enabled and no enterprise banner. |
| modules/boards/spec/features/board_update_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_reference_work_package_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_overview_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_navigation_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_management_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_index_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_highlighting_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/board_enterprise_spec.rb | Reframes spec to assert boards/action boards render without enterprise banner and all types enabled. |
| modules/boards/spec/features/board_conflicts_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/version_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/subtasks_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/subproject_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/status_type_moving_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/status_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/custom_field_filters_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/spec/features/action_boards/assignee_board_spec.rb | Drops with_ee tag to reflect CE availability. |
| modules/boards/app/views/boards/boards/_form.html.erb | Removes enterprise banner wrapper around board type selection and keeps all tiles selectable. |
| modules/boards/app/helpers/boards_helper.rb | Removes EnterpriseToken-based disabling of board types; adjusts global-create context detection. |
| modules/boards/app/controllers/boards/boards_controller.rb | Removes server-side restriction of action-board creation; updates strong params to params.expect. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts | Removes enterprise availability checks and banner service dependency. |
| frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html | Removes enterprise banner rendering and always renders board lists. |
| frontend/src/app/features/boards/board/board-actions/board-actions-registry.service.ts | Removes EE-based disabling of action board tile entries. |
| frontend/src/app/core/setup/globals/onboarding/onboarding_tour.ts | Removes EE feature-flag branching; always uses action-board onboarding steps when boards demo data exists. |
Comments suppressed due to low confidence (1)
frontend/src/app/features/boards/board/board-partitioned-page/board-list-container.component.ts:108
apiv3Service: ApiV3Serviceis injected as a constructor parameter but never referenced in this component (onlyapiV3Serviceis used). Consider removing the unused injection/property to avoid confusion and potential unused-variable linting.
readonly apiV3Service:ApiV3Service,
readonly Boards:BoardService,
readonly boardListCrossSelectionService:BoardListCrossSelectionService,
readonly wpStatesInitialization:WorkPackageStatesInitializationService,
readonly Drag:DragAndDropService,
readonly apiv3Service:ApiV3Service,
readonly QueryUpdated:QueryUpdatedService,
You can also share your feedback on Copilot code review. Take the survey.
| def board_types | ||
| [ | ||
| build_board_type_attributes("basic", "lists", false), | ||
| build_board_type_attributes("basic", "lists", disabled: false), |
There was a problem hiding this comment.
The last argument does not serve a purpose anymore. It made sense before when the default value was a condition. Now that it is always false, we can just remove it from the call here.
| build_board_type_attributes("basic", "lists", disabled: false), | |
| build_board_type_attributes("basic", "lists"), |
...end/src/app/features/boards/board/board-partitioned-page/board-list-container.component.html
Show resolved
Hide resolved
|
Discussions about this are still ongoing. |
39b018e to
e6a6ba0
Compare
|
Decision has been reached to release all the action boards. |
Make action boards available in Community Edition by removing board_view-based frontend and create-form gating, and align boards feature coverage with the new default behavior. https://community.openproject.org/wp/73188
3e5c46f to
9680d2f
Compare
Important
This PR is based off #22086. Please review/merge that PR first.
Ticket
https://community.openproject.org/wp/73188
What are you trying to accomplish?
Make boards fully available in Community Edition by removing the remaining Boards-specific EE guards.
This changes the boards experience so action boards are no longer disabled or hidden behind an enterprise banner when no board_view EE token is present. It also updates the boards creation flow and onboarding coverage to reflect that action boards are now available by default in CE.
There are no route, API, permission, or schema changes in this PR. The existing board_view project module and the show_board_views / manage_board_views permissions stay unchanged.
What approach did you choose and why?
I treated this as a frontend/runtime availability change rather than a permissions rewrite.
Boards were already modeled as a normal project module with normal permissions on the backend. The remaining CE-vs-EE split was in the frontend behavior and the boards feature specs:
So I removed the board_view EE checks from the Angular boards UI and aligned the affected feature specs with the new default behavior.
I deliberately did not broaden this into a full rename sweep of board_view / "Advanced Boards" wording or static docs links. This PR is limited to removing the runtime guards and the boards-specific upsell behavior.
Merge checklist