From 5c40bda74285691e22439b49ae2616bfd7445def Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Mon, 8 Nov 2021 16:02:40 -0800 Subject: [PATCH] Disable Manage button if (#1198) Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- .../Console/Tenants/ListTenants/TenantListItem.tsx | 2 ++ .../src/screens/Console/Tenants/ListTenants/utils.ts | 12 ++++++++++++ .../Console/Tenants/TenantDetails/TenantSummary.tsx | 2 ++ 3 files changed, 16 insertions(+) diff --git a/portal-ui/src/screens/Console/Tenants/ListTenants/TenantListItem.tsx b/portal-ui/src/screens/Console/Tenants/ListTenants/TenantListItem.tsx index 7284a1950..687a59d79 100644 --- a/portal-ui/src/screens/Console/Tenants/ListTenants/TenantListItem.tsx +++ b/portal-ui/src/screens/Console/Tenants/ListTenants/TenantListItem.tsx @@ -28,6 +28,7 @@ import createStyles from "@mui/styles/createStyles"; import withStyles from "@mui/styles/withStyles"; import { niceBytes } from "../../../../common/utils"; import UsageBarWrapper from "../../Common/UsageBarWrapper/UsageBarWrapper"; +import { tenantIsOnline } from "./utils"; const styles = (theme: Theme) => createStyles({ @@ -184,6 +185,7 @@ const TenantListItem = ({ tenant, classes }: ITenantListItem) => { size={"small"} color={"primary"} variant="outlined" + disabled={!tenantIsOnline(tenant)} className={classes.manageButton} onClick={() => { history.push( diff --git a/portal-ui/src/screens/Console/Tenants/ListTenants/utils.ts b/portal-ui/src/screens/Console/Tenants/ListTenants/utils.ts index f84493477..00e9788b2 100644 --- a/portal-ui/src/screens/Console/Tenants/ListTenants/utils.ts +++ b/portal-ui/src/screens/Console/Tenants/ListTenants/utils.ts @@ -15,6 +15,7 @@ // along with this program. If not, see . import get from "lodash/get"; +import { ITenant } from "./types"; export interface Opts { label: string; @@ -64,3 +65,14 @@ export const getLimitSizes = (resourceQuotas: IQuotas) => { return returnQuotas; }; + +export const tenantIsOnline = (tenant: ITenant): boolean => { + var isOnline = true; + if (tenant.currentState === "") { + return false; + } + if (tenant.health_status !== "green" && tenant.health_status !== "yellow") { + return false; + } + return isOnline; +}; diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx index 006af964b..0c9897bdb 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx @@ -34,6 +34,7 @@ import UpdateTenantModal from "./UpdateTenantModal"; import { AppState } from "../../../../store"; import history from "./../../../../history"; import { CircleIcon } from "../../../../icons"; +import { tenantIsOnline } from "../ListTenants/utils"; interface ITenantsSummary { classes: any; @@ -328,6 +329,7 @@ const TenantSummary = ({ `/namespaces/${tenantNamespace}/tenants/${tenantName}/hop` ); }} + disabled={!tenant || !tenantIsOnline(tenant)} > Manage Tenant