From 558afe36ad49fcf93032470018bbe4d700ce2b87 Mon Sep 17 00:00:00 2001 From: Lenin Alevski Date: Wed, 20 Jul 2022 09:55:19 -0700 Subject: [PATCH] Various fixes for Tenant details page (#2181) - fixed refresh tenant details page after changing Domains and updating image - Relax tenant domains to allow including port number Signed-off-by: Lenin Alevski --- .../Tenants/AddTenant/Steps/Configure.tsx | 5 ++--- .../Tenants/TenantDetails/EditDomains.tsx | 17 ++++++++++------- .../Tenants/TenantDetails/TenantSummary.tsx | 10 ++++++---- .../Tenants/TenantDetails/UpdateTenantModal.tsx | 6 +++++- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx index 28f1f6e0a..9a0352e99 100644 --- a/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx +++ b/portal-ui/src/screens/Console/Tenants/AddTenant/Steps/Configure.tsx @@ -181,8 +181,7 @@ const Configure = ({ classes }: IConfigureProps) => { fieldKey: `minio-domain-${index.toString()}`, required: false, value: validation, - pattern: - /((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/, + pattern: /^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/, customPatternMessage: "MinIO domain is not in the form of http|https://subdomain.domain", }; @@ -196,7 +195,7 @@ const Configure = ({ classes }: IConfigureProps) => { required: false, value: consoleDomain, pattern: - /((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\/[a-zA-Z0-9]{1,})*?$/, + /^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/, customPatternMessage: "Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2", }, diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditDomains.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditDomains.tsx index 8290bb6ec..8df4d39fb 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/EditDomains.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/EditDomains.tsx @@ -33,7 +33,10 @@ import ModalWrapper from "../../Common/ModalWrapper/ModalWrapper"; import InputBoxWrapper from "../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper"; import api from "../../../../common/api"; import RemoveIcon from "../../../../icons/RemoveIcon"; -import { setModalErrorSnackMessage } from "../../../../systemSlice"; +import { + setModalErrorSnackMessage, + setSnackBarMessage, +} from "../../../../systemSlice"; import { useAppDispatch } from "../../../../store"; interface IEditDomains { @@ -90,7 +93,7 @@ const EditDomains = ({ if (consoleDomainSet !== "") { // We Validate console domain const consoleRegExp = new RegExp( - /((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\/[a-zA-Z0-9]{1,})*?$/ + /^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/ ); setConsoleDomainValid(consoleRegExp.test(consoleDomainSet)); @@ -102,7 +105,7 @@ const EditDomains = ({ setMinioDomains(domains.minio); const minioRegExp = new RegExp( - /((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/ + /^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/ ); const initialValidations = domains.minio.map((domain) => { @@ -146,11 +149,12 @@ const EditDomains = ({ ) .then(() => { setIsSending(false); + dispatch(setSnackBarMessage(`Domains updated successfully`)); closeModalAndRefresh(true); }) .catch((error: ErrorResponseHandler) => { - dispatch(setModalErrorSnackMessage(error)); setIsSending(false); + dispatch(setModalErrorSnackMessage(error)); }); }; @@ -191,7 +195,6 @@ const EditDomains = ({ setMinioDomainValid(cloneValidation); }; - return ( { const closeEditDomainsModal = (refresh: boolean) => { setEditDomainsOpen(false); - if (refresh) { - dispatch(setTenantDetailsLoad(true)); + dispatch(getTenantAsync()); } }; @@ -232,8 +231,11 @@ const TenantSummary = ({ classes }: ITenantsSummary) => { {updateMinioVersion && ( { + closeModalAndRefresh={(refresh: boolean) => { setUpdateMinioVersion(false); + if (refresh) { + dispatch(getTenantAsync()); + } }} idTenant={tenantName || ""} namespace={tenantNamespace || ""} diff --git a/portal-ui/src/screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx b/portal-ui/src/screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx index 9c9cb9561..c74de51d6 100644 --- a/portal-ui/src/screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx +++ b/portal-ui/src/screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx @@ -29,7 +29,10 @@ import ModalWrapper from "../../Common/ModalWrapper/ModalWrapper"; import InputBoxWrapper from "../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper"; import FormSwitchWrapper from "../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper"; import api from "../../../../common/api"; -import { setModalErrorSnackMessage } from "../../../../systemSlice"; +import { + setModalErrorSnackMessage, + setSnackBarMessage, +} from "../../../../systemSlice"; import { useAppDispatch } from "../../../../store"; interface IUpdateTenantModal { @@ -127,6 +130,7 @@ const UpdateTenantModal = ({ ) .then(() => { setIsSending(false); + dispatch(setSnackBarMessage(`Image updated successfully`)); closeModalAndRefresh(true); }) .catch((error: ErrorResponseHandler) => {