From 7493fe2dfcf53f7eb0a40775a9f67b71a3db2853 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 12:07:06 +0800 Subject: [PATCH] refactor: forklift UI bug and enhancement (#989) (#991) * fix: hide Virtul machine migration tabs if forklift addon is not enabled * fix: rename advanced to configurations * fix: fixed column width * refactor: review comment * revert: power on background color --------- (cherry picked from commit 41cf44d23131ce30762fd29fe38d833d22238398) Signed-off-by: Andy Lee Co-authored-by: Andy Lee --- .../vm-migration/ConfigureProviderStep.vue | 1 + .../components/vm-migration/SelectVmsStep.vue | 5 +++ pkg/harvester/config/harvester-cluster.js | 23 +++++++----- pkg/harvester/l10n/en-us.yaml | 11 +++--- .../models/forklift.konveyor.io.plan.js | 13 ++++++- .../pages/c/_cluster/vm-migration/index.vue | 37 +++++++++++++++---- pkg/harvester/utils/dynamic-nav.js | 6 ++- 7 files changed, 71 insertions(+), 25 deletions(-) diff --git a/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue b/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue index b7b1775e..06274372 100644 --- a/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue +++ b/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue @@ -402,6 +402,7 @@ defineExpose({ testConnection, clickTestButton });
{ try { + // Guard: the Forklift dashboard is only available when the Forklift addon is + // enabled. Redirect back to the Harvester dashboard otherwise (e.g. direct URL). + let forkliftEnabled = false; + + if (store.getters[`${ inStore.value }/schemaFor`](HCI.ADD_ONS)) { + const addons = await store.dispatch(`${ inStore.value }/findAll`, { type: HCI.ADD_ONS }); + + forkliftEnabled = addons.find((a) => a.metadata?.name === ADD_ONS.FORKLIFT_OPERATOR)?.spec?.enabled === true; + } + + if (!forkliftEnabled) { + await currentRouter().replace({ + name: `${ PRODUCT_NAME }-c-cluster-resource`, + params: { + product: store.getters['productId'], + cluster: store.getters['clusterId'], + resource: HCI.DASHBOARD, + }, + }); + + return; + } + await Promise.all([ store.dispatch(`${ inStore.value }/findAll`, { type: HCI.FORKLIFT_PLAN }), store.dispatch(`${ inStore.value }/findAll`, { type: HCI.FORKLIFT_NETWORK_MAP }), @@ -189,9 +214,10 @@ init(); >