Skip to content

CONSOLE-5132: Migrate console plugins table to DataView - #16942

Open
logonoff wants to merge 1 commit into
openshift:mainfrom
logonoff:CONSOLE-5132-plugintable
Open

CONSOLE-5132: Migrate console plugins table to DataView#16942
logonoff wants to merge 1 commit into
openshift:mainfrom
logonoff:CONSOLE-5132-plugintable

Conversation

@logonoff

@logonoff logonoff commented Aug 10, 2026

Copy link
Copy Markdown
Member

Analysis / Root cause:

Console plugins table is using the standard PF table and none of the fancy stuff we've been adding lately

Solution description:

Replace the manual PatternFly Table in the console plugins tab with ConsoleDataView, following the NodesPage pattern. This adds:

  • Checkbox selection with bulk enable/disable actions
  • Name and status/enabled checkbox filters
  • Pagination via DataView
  • A dedicated list page at /k8s/cluster/console.openshift.iov1ConsolePlugin

The shared status components (ConsolePluginStatus, ConsolePluginEnabledStatus, ConsolePluginCSPStatus) are extracted to consolePluginStatus.tsx to avoid a circular dependency between ConsoleOperatorConfig and ConsolePluginsTable.

Screenshots / screen recording:

dev table:
image
image

prod table (running locally so not all the data is working):
image
image

video (on cluster):

Screen.Recording.2026-08-11.at.6.02.49.PM.mov

Test cases:

  • Go in a cluster and make sure bulk select works, resizable columns, ConsolePlugins list page, enable/disabling plugins
  • Normal users should not see enable/disable as before

Browser conformance:

  • Chrome
  • Firefox
  • Safari (or Epiphany on Linux)

Summary by CodeRabbit

New Features

  • Added a dedicated Console Plugins list page.
  • Added sortable, resizable columns and filters for status, enablement, and CSP violations.
  • Added plugin selection with bulk enable and disable actions.
  • Added plugin creation controls and unmanaged-plugin alerts.
  • Added clearer plugin status, error, CSP, and enablement indicators.
  • Added navigation from Console Operator configuration to the plugins list.
  • Added localized labels and filtering messages for plugin management.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 10, 2026
@openshift-ci-robot

openshift-ci-robot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

@logonoff: This pull request references CONSOLE-5132 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Analysis / Root cause:

Console plugins table is using the standard PF table and none of the fancy stuff we've been adding lately

Solution description:

Replace the manual PatternFly Table in the console plugins tab with ConsoleDataView, following the NodesPage pattern. This adds:

  • Checkbox selection with bulk enable/disable actions
  • Name and status/enabled checkbox filters
  • Pagination via DataView
  • A dedicated list page at /k8s/cluster/console.openshift.iov1ConsolePlugin

The shared status components (ConsolePluginStatus, ConsolePluginEnabledStatus, ConsolePluginCSPStatus) are extracted to consolePluginStatus.tsx to avoid a circular dependency between ConsoleOperatorConfig and ConsolePluginsTable.

Screenshots / screen recording:

dev table:
image

prod table (running locally so not all the data is working):
image

Test cases:

Go in a cluster and make sure bulk select works, resizable columns, ConsolePlugins list page, enable/disabling plugins

Browser conformance:

  • Chrome
  • Firefox
  • Safari (or Epiphany on Linux)

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
openshift-ci Bot requested review from Leo6Leo and spadgett August 10, 2026 22:34
@openshift-ci openshift-ci Bot added the component/core Related to console core functionality label Aug 10, 2026
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The change extracts console plugin status logic, adds a reusable plugin list page with development and operator-backed data sources, adds bulk enable and disable actions, and registers the page for ConsolePlugin resources.

Changes

Console plugin management

Layer / File(s) Summary
Shared plugin status components
frontend/packages/console-app/src/components/console-operator/consolePluginStatus.tsx, frontend/packages/console-app/src/components/console-operator/*StatusDetail.tsx, frontend/packages/console-app/src/components/console-operator/__tests__/*StatusDetail.spec.tsx
Shared configuration data and status components render plugin load, enablement, and CSP states. Detail components and tests use the new module.
Plugin list data and presentation
frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx
Adds development and operator-backed plugin rows, sortable and resizable columns, filters, selection, status rendering, creation controls, and unmanaged-state alerts.
Bulk plugin enablement
frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx, frontend/packages/console-app/locales/en/console-app.json
Adds enable and disable actions that apply JSON patches to the Console Operator configuration. Adds related localization entries.
Page integration and registration
frontend/packages/console-app/src/components/console-operator/ConsoleOperatorConfig.tsx, frontend/packages/console-app/console-extensions.json, frontend/packages/console-app/package.json
Replaces the local plugin list with ConsolePluginsListPage, exposes the module, and registers the ConsolePlugin resource list page.

Estimated code review effort: 4 (Complex) | ~45 minutes

Suggested reviewers: leo6leo, spadgett

Sequence Diagram(s)

sequenceDiagram
  participant ConsolePluginsListPage
  participant ConsolePluginsTable
  participant ConsolePluginResources
  participant ConsoleOperatorConfig
  participant useConsolePluginBulkActions

  ConsolePluginsListPage->>ConsoleOperatorConfig: load plugin configuration
  ConsolePluginsListPage->>ConsolePluginsTable: select plugin data source
  ConsolePluginsTable->>ConsolePluginResources: load operator-backed resources
  ConsolePluginResources-->>ConsolePluginsTable: return plugin status data
  ConsoleOperatorConfig-->>ConsolePluginsTable: return enabled configuration
  ConsolePluginsTable->>useConsolePluginBulkActions: provide selected plugin rows
  useConsolePluginBulkActions->>ConsoleOperatorConfig: apply enable or disable JSON patch
  ConsoleOperatorConfig-->>useConsolePluginBulkActions: return patch result
Loading
🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The PR changes no Ginkgo tests; its Jest test titles are static descriptive literals, with no dynamic values and no changed test-title lines.
Test Structure And Quality ✅ Passed The PR changes only frontend React/TypeScript code and Jest tests; no Ginkgo test files, cluster operations, or Ginkgo assertions are present to review.
Microshift Test Compatibility ✅ Passed The PR adds no Ginkgo e2e tests. Its only changed tests are TypeScript Jest specs using describe()/it(), so MicroShift API compatibility checks do not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The pull request adds no Ginkgo e2e tests. The only changed tests are React Testing Library TypeScript specs, so no SNO compatibility assumption applies.
Topology-Aware Scheduling Compatibility ✅ Passed PASS: The PR changes only frontend UI, localization, and ConsolePlugin configuration patches; it adds no deployment manifests, controllers, replicas, affinity, topology spread, selectors, toleratio...
Ote Binary Stdout Contract ✅ Passed The PR changes only frontend TypeScript/JSON files; it adds no OTE binary, Go entry point, suite setup, or process-level stdout write.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The commit adds no Ginkgo e2e tests; it only updates three React Jest specs, and changed files contain no IPv4 literals or external connectivity targets.
No-Weak-Crypto ✅ Passed Patch scans found no MD5, SHA1, DES, RC4, Blowfish, ECB, crypto APIs, secrets, or tokens; equality and membership checks only handle plugin state and names.
Container-Privileges ✅ Passed The PR changes only console UI, localization, and extension metadata; diff and changed source contain no privileged, hostPID/Network/IPC, SYS_ADMIN, securityContext, or allowPrivilegeEscalation set...
No-Sensitive-Data-In-Logs ✅ Passed Review of all 13 changed files found no console/logger/print calls or telemetry/error-reporting code; plugin error text is rendered in the UI, not written to logs.
Title check ✅ Passed The title clearly identifies the migration of the console plugins table to DataView.
Description check ✅ Passed The description covers the root cause, solution, screenshots, test cases, and browser conformance; minor sections are omitted.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 7

🧹 Nitpick comments (3)
frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx (3)

364-364: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Replace the any type argument with the concrete row type.

ConsoleDataView<ConsolePluginTableRow, any, PluginFilters> disables checking for the second type parameter. Supply the intended type so column and row helpers stay type-checked.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx`
at line 364, Update the ConsoleDataView instantiation in ConsolePluginsTable to
replace the any type argument with the concrete data type expected by the
component, using the existing ConsolePluginTableRow or relevant row-model symbol
so column and row helpers remain type-checked.

188-199: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Use the shared selection column id instead of the 'select' literal.

Line 193 compares id with the literal 'select'. createSelectionColumn owns that id. If the helper changes the id, this branch stops matching and the checkbox cell renders DASH. Import the id constant from dataViewSelectionHelpers if one is exported, or export one.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx`
around lines 188 - 199, The row-cell rendering logic in ConsolePluginsTable must
stop comparing the column id to the literal 'select'. Reuse the selection-column
id owned by createSelectionColumn from dataViewSelectionHelpers, exporting it
there if necessary, and use that shared symbol for the cellContent branch.

424-435: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Build one lookup map for plugin info instead of filtering per row.

The row mapper runs pluginInfo.filter(...).find(...) twice for every plugin, so the work is proportional to rows × plugin info entries and allocates two arrays per row. Build a single Map keyed by manifest.name outside the loop, then read the status from the matched entry.

♻️ Proposed refactor
   const rows = useMemo<ConsolePluginTableRow[]>(() => {
     if (!consolePluginsLoaded) {
       return [];
     }
+    const pluginInfoByName = new Map(pluginInfo.map((entry) => [entry.manifest.name, entry]));
     return consolePlugins.map((plugin) => {
       const pluginName = plugin?.metadata?.name;
       const enabled = enabledPlugins.includes(pluginName);
-
-      const loadedPluginInfo = pluginInfo
-        .filter((p) => p.status === 'loaded')
-        .find((i) => i.manifest.name === pluginName);
-
-      const notLoadedPluginInfo = pluginInfo
-        .filter((p) => p.status !== 'loaded')
-        .find((i) => i.manifest.name === pluginName);
+      const matchedPluginInfo = pluginInfoByName.get(pluginName);
+      const loadedPluginInfo =
+        matchedPluginInfo?.status === 'loaded' ? matchedPluginInfo : undefined;
+      const notLoadedPluginInfo =
+        matchedPluginInfo?.status !== 'loaded' ? matchedPluginInfo : undefined;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx`
around lines 424 - 435, In the row-mapping code around the consolePlugins
mapper, build one lookup Map from pluginInfo keyed by manifest.name before
iterating rows, then retrieve each plugin’s matched info once and derive loaded
versus not-loaded status from that entry. Remove the per-row
filter(...).find(...) calls and preserve the existing behavior when no matching
plugin info exists.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@frontend/packages/console-app/src/components/console-operator/ConsoleOperatorConfig.tsx`:
- Around line 24-31: In the route entry using ConsolePluginsListPage, add the
i18n extraction marker comment immediately before the nameKey property,
referencing console-app~Console plugins, so the existing translation key remains
discoverable by the extractor.

In
`@frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx`:
- Around line 483-491: Update useConsoleOperatorConfigData to return the
useK8sWatchResource error alongside its loaded state, then adjust
ConsolePluginsListPage to show a loading indicator while the operator config is
loading and render PluginsPageComponent with an empty obj when loading fails or
the config is unavailable. Preserve rendering of the ConsolePlugin list
independently of operator-config availability.
- Around line 447-457: Remove the unused errorCause property from the fallback
row object in the plugin row builder, keeping errorMessage and the existing
failed-status behavior unchanged. Do not add or render errorCause, since
ConsolePluginTableRow and ConsolePluginStatus currently do not consume it.
- Around line 243-257: Stabilize the selection configuration used by
ConsoleDataView to prevent its onFilteredSelectionChange effect from
retriggering on every render. Memoize the inline getItemId callback, or memoize
the complete selectionProps object, while preserving the existing filtered
selection behavior in handleFilteredSelectionChange.

In
`@frontend/packages/console-app/src/components/console-operator/consolePluginStatus.tsx`:
- Around line 67-104: Update useConsoleOperatorConfigData so the access-review
result assigned to canPatchConsoleOperatorConfig contains only the allowed
boolean, by destructuring the first value from useAccessReview or using
useAccessReviewAllowed. Preserve the existing permission check in
ConsolePluginEnabledStatus while ensuring unauthorized users do not see the edit
button.

In
`@frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx`:
- Around line 33-41: Guard both bulk plugin updates against stale configuration:
in the enable handler at
frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx
lines 33-41, prepend a JSON Patch test for the observed currentPlugins value or
append individual plugins via /spec/plugins/-; in the disable handler at lines
50-58, prepend the same test before replacing the array. Preserve rejection on
concurrent changes so callers can retry with refreshed configuration.
- Around line 75-77: Update both count-based descriptions in
useConsolePluginBulkActions to use i18next singular wording for one item and
plural wording for multiple items, while preserving the count interpolation. Add
the matching singular and plural entries to the console-app translation catalog
so extraction generates the corresponding _one and _other keys.

---

Nitpick comments:
In
`@frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx`:
- Line 364: Update the ConsoleDataView instantiation in ConsolePluginsTable to
replace the any type argument with the concrete data type expected by the
component, using the existing ConsolePluginTableRow or relevant row-model symbol
so column and row helpers remain type-checked.
- Around line 188-199: The row-cell rendering logic in ConsolePluginsTable must
stop comparing the column id to the literal 'select'. Reuse the selection-column
id owned by createSelectionColumn from dataViewSelectionHelpers, exporting it
there if necessary, and use that shared symbol for the cellContent branch.
- Around line 424-435: In the row-mapping code around the consolePlugins mapper,
build one lookup Map from pluginInfo keyed by manifest.name before iterating
rows, then retrieve each plugin’s matched info once and derive loaded versus
not-loaded status from that entry. Remove the per-row filter(...).find(...)
calls and preserve the existing behavior when no matching plugin info exists.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ed66236c-96da-4191-9be5-1d416ecea519

📥 Commits

Reviewing files that changed from the base of the PR and between 4b51a79 and 9401a89.

📒 Files selected for processing (12)
  • frontend/packages/console-app/console-extensions.json
  • frontend/packages/console-app/package.json
  • frontend/packages/console-app/src/components/console-operator/ConsoleOperatorConfig.tsx
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginCSPStatusDetail.tsx
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginEnabledStatusDetail.tsx
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginStatusDetail.tsx
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx
  • frontend/packages/console-app/src/components/console-operator/__tests__/ConsolePluginCSPStatusDetail.spec.tsx
  • frontend/packages/console-app/src/components/console-operator/__tests__/ConsolePluginEnabledStatusDetail.spec.tsx
  • frontend/packages/console-app/src/components/console-operator/__tests__/ConsolePluginStatusDetail.spec.tsx
  • frontend/packages/console-app/src/components/console-operator/consolePluginStatus.tsx
  • frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx

@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch from 9401a89 to 1066a22 Compare August 10, 2026 22:49
@openshift-ci openshift-ci Bot added the kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated label Aug 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@frontend/packages/console-app/locales/en/console-app.json`:
- Around line 71-74: Remove the literal “_one” and “_other” suffixes from the
translated values for the four “Applies to {{count}} selected plugins”
localization entries, while keeping those suffixes on their keys to preserve
plural selection.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 8a6446b0-77a1-43dc-bb79-1f1b6e29e124

📥 Commits

Reviewing files that changed from the base of the PR and between 9401a89 and 1066a22.

📒 Files selected for processing (4)
  • frontend/packages/console-app/locales/en/console-app.json
  • frontend/packages/console-app/src/components/console-operator/ConsoleOperatorConfig.tsx
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx
  • frontend/packages/console-app/src/components/console-operator/consolePluginStatus.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx

Comment thread frontend/packages/console-app/locales/en/console-app.json Outdated
@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch 3 times, most recently from d85337e to 59e646b Compare August 10, 2026 23:02
@logonoff

Copy link
Copy Markdown
Member Author

/assign @rhamilto

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx`:
- Around line 23-24: Update useConsolePluginBulkActions to retain the
errorMessage returned by usePromiseHandler, expose it through the hook’s
user-visible UI or announcement path, and stop swallowing handler rejections so
failures are reported. Only clear the current selection after a patch succeeds;
preserve it when either bulk-action handler fails.
- Around line 33-44: Update the patches construction in
useConsolePluginBulkActions so the /spec/plugins test operation is included only
when consoleOperatorConfig.spec?.plugins exists; when absent, generate only the
add operation, while preserving the existing test-and-replace behavior for an
existing plugins list.
- Around line 46-64: Update handleBulkEnable and handleBulkDisable to construct
JSON patches based on whether spec.plugins exists: use add when creating the
missing field, and avoid testing or replacing an absent path. Replace the empty
catch handlers around handlePromise with the existing usePromiseHandler error
state so patch failures are rendered to users. Leave k8sPatch and its CSRF
handling unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7106f634-e986-41d1-a320-6f14f6f5ed57

📥 Commits

Reviewing files that changed from the base of the PR and between d85337e and 59e646b.

📒 Files selected for processing (2)
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx
  • frontend/packages/console-app/src/components/console-operator/useConsolePluginBulkActions.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/packages/console-app/src/components/console-operator/ConsolePluginsTable.tsx

@logonoff

Copy link
Copy Markdown
Member Author

/assign @vojtechszocs

@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch 2 times, most recently from dcac0b0 to 2031798 Compare August 11, 2026 00:49
@openshift-ci openshift-ci Bot added component/shared Related to console-shared needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Aug 11, 2026
@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch from 2031798 to 5554f1f Compare August 11, 2026 12:38
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 11, 2026
@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch 2 times, most recently from 00ca1b0 to 58abd22 Compare August 11, 2026 19:57
@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

@logonoff: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-playwright-techpreview 58abd22 link false /test e2e-playwright-techpreview

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jseseCCS jseseCCS left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

made a very few comments. approving in good faith that you'll review and apply as appropriate.

Comment thread frontend/packages/console-app/locales/en/console-app.json Outdated
@@ -247,6 +252,7 @@
"Edit update strategy": "Edit update strategy",
"Edit user preferences to not show again": "Edit user preferences to not show again",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

unclear. if a toggle or checkbox label that = user won't see prompt again, --> Don't show this again

?

if nothing else, so it's less clunky --> Hide this prompt in preferences/?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This was part of the lightspeed modal and would require a UX change as IIRC the button just takes you to the preferences page

Comment thread frontend/packages/console-app/locales/en/console-app.json
@jseseCCS

Copy link
Copy Markdown

approving in good faith. made just a few comments. :)

@openshift-ci

openshift-ci Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jseseCCS, logonoff

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jseseCCS

Copy link
Copy Markdown

/label docs-approved

@openshift-ci openshift-ci Bot added the docs-approved Signifies that Docs has signed off on this PR label Aug 12, 2026
…ection

Replace the manual PatternFly Table in the console plugins tab with
ConsoleDataView, following the NodesPage pattern. This adds:
- Checkbox selection with bulk enable/disable actions
- Name and status/enabled checkbox filters
- Pagination via DataView
- A dedicated list page at /k8s/cluster/console.openshift.io~v1~ConsolePlugin

The shared status components (ConsolePluginStatus, ConsolePluginEnabledStatus,
ConsolePluginCSPStatus) are extracted to consolePluginStatus.tsx to avoid a
circular dependency between ConsoleOperatorConfig and ConsolePluginsTable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@logonoff
logonoff force-pushed the CONSOLE-5132-plugintable branch from 58abd22 to 7010eba Compare August 12, 2026 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. component/core Related to console core functionality component/shared Related to console-shared docs-approved Signifies that Docs has signed off on this PR jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants