From 40c3161416fa6048cb74a4633ca38d4479a3f2dc Mon Sep 17 00:00:00 2001
From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
Date: Thu, 6 Jan 2022 21:17:20 -0800
Subject: [PATCH] Report N/A when usage is not yet known (#1369)
* Report N/A when usage is not yet known
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
* lint
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
---
.../UsageBarWrapper/SummaryUsageBar.tsx | 48 ++++++++++++-------
.../Tenants/ListTenants/TenantListItem.tsx | 7 +--
.../Console/Tenants/ListTenants/types.ts | 5 ++
.../Tenants/TenantDetails/TenantSummary.tsx | 6 +--
4 files changed, 40 insertions(+), 26 deletions(-)
diff --git a/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx b/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx
index 15681ed41..97f1c5249 100644
--- a/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx
+++ b/portal-ui/src/screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx
@@ -8,12 +8,13 @@ import CircularProgress from "@mui/material/CircularProgress";
import ErrorBlock from "../../../shared/ErrorBlock";
import { CircleIcon } from "../../../../icons";
import LabelValuePair from "./LabelValuePair";
+import { ValueUnit } from "../../Tenants/ListTenants/types";
+import { niceBytes } from "../../../../common/utils";
-interface IProgressBar {
- maxValue: number;
- currValue: number;
+interface ISummaryUsageBar {
+ maxValue: number | undefined;
+ currValue: number | undefined;
label: string;
- renderFunction?: (element: string) => any;
error: string;
loading: boolean;
classes: any;
@@ -59,11 +60,29 @@ const SummaryUsageBar = ({
maxValue,
currValue,
healthStatus,
- renderFunction,
loading,
error,
-}: IProgressBar) => {
- const porcentualValue = (currValue * 100) / maxValue;
+}: ISummaryUsageBar) => {
+ var capacity: ValueUnit = { value: "n/a", unit: "" };
+ var used: ValueUnit = { value: "n/a", unit: "" };
+
+ if (maxValue) {
+ const b = niceBytes(`${maxValue}`, true);
+ const parts = b.split(" ");
+ capacity.value = parts[0];
+ capacity.unit = parts[1];
+ }
+ if (currValue) {
+ const b = niceBytes(`${currValue}`, true);
+ const parts = b.split(" ");
+ used.value = parts[0];
+ used.unit = parts[1];
+ }
+
+ let percentagelValue = 0;
+ if (currValue && maxValue) {
+ percentagelValue = (currValue * 100) / maxValue;
+ }
const renderComponent = () => {
if (!loading) {
@@ -71,7 +90,10 @@ const SummaryUsageBar = ({
) : (
-
+
{healthStatus && (
{
const healthStatusToClass = (health_status: string) => {
switch (health_status) {
diff --git a/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts b/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts
index 39ac7fb06..ed876e0ef 100644
--- a/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts
+++ b/portal-ui/src/screens/Console/Tenants/ListTenants/types.ts
@@ -165,3 +165,8 @@ export interface IKeyValue {
key: string;
value: string;
}
+
+export interface ValueUnit {
+ value: string;
+ unit: string;
+}
diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx
index 7ec0a2e16..4b5871fda 100644
--- a/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx
+++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/TenantSummary.tsx
@@ -26,7 +26,6 @@ import {
} from "../../Common/FormComponents/common/styleLibrary";
import { Box, Button, Grid, Stack } from "@mui/material";
import Paper from "@mui/material/Paper";
-import { niceBytes } from "../../../../common/utils";
import { ITenant } from "../ListTenants/types";
import UpdateTenantModal from "./UpdateTenantModal";
import { AppState } from "../../../../store";
@@ -134,10 +133,9 @@ const healthStatusToClass = (health_status: string = "red", classes: any) => {
const StorageSummary = ({ tenant, classes }: Partial) => {
return (