diff --git a/forms-flow-web/src/components/Form/EditForm/FormEdit.js b/forms-flow-web/src/components/Form/EditForm/FormEdit.js index da5130c4e..1b50c7ed4 100644 --- a/forms-flow-web/src/components/Form/EditForm/FormEdit.js +++ b/forms-flow-web/src/components/Form/EditForm/FormEdit.js @@ -59,7 +59,7 @@ import NewVersionModal from "../../Modals/NewVersionModal"; import { currentFormReducer } from "../../../modules/formReducer.js"; import { toast } from "react-toastify"; import userRoles from "../../../constants/permissions.js"; -import { generateUniqueId, isFormComponentsChanged } from "../../../helper/helper.js"; +import { generateUniqueId, isFormComponentsChanged, addTenantkey } from "../../../helper/helper.js"; import { useMutation } from "react-query"; import NavigateBlocker from "../../CustomComponents/NavigateBlocker"; import { setProcessData, setFormPreviosData, setFormProcessesData } from "../../../actions/processActions.js"; @@ -522,11 +522,14 @@ const EditComponent = () => { : [], }, }; + const updatepath = MULTITENANCY_ENABLED + ? addTenantkey(formDetails.path, tenantKey) + : formDetails.path; const formData = { title: formDetails.title, display: formDetails.display, - path: formDetails.path, + path: updatepath, submissionAccess: accessDetails.submissionAccess, access: accessDetails.formAccess, }; diff --git a/forms-flow-web/src/components/Form/EditForm/FormSettings.js b/forms-flow-web/src/components/Form/EditForm/FormSettings.js index 2c43025d9..ee0961b99 100644 --- a/forms-flow-web/src/components/Form/EditForm/FormSettings.js +++ b/forms-flow-web/src/components/Form/EditForm/FormSettings.js @@ -15,6 +15,8 @@ import { } from "@formsflow/components"; import MultiSelectComponent from "../../CustomComponents/MultiSelect"; +import { MULTITENANCY_ENABLED } from "../../../constants/constants"; +import { addTenantkey, addTenantkeyAsSuffix,removeTenantKeyFromPath } from "../../../helper/helper"; import { useDispatch, useSelector } from "react-redux"; import { getUserRoles } from "../../../apiManager/services/authorizationService"; import { useTranslation } from "react-i18next"; @@ -65,8 +67,10 @@ const FormSettings = forwardRef((props, ref) => { const [submissionAccessCopy, setSubmissionAccessCopy] = useState( _cloneDeep(submissionAccess) ); + const tenantKey = useSelector((state) => state.tenants?.tenantId); const publicUrlPath = `${window.location.origin}/public/form/`; + const [urlPath,setUrlPath] = useState(publicUrlPath); const setSelectedOption = (roles, option)=> roles.length ? "specifiedRoles" : option; /* ------------------------- authorization variables ------------------------ */ const [rolesState, setRolesState] = useState({ @@ -89,6 +93,21 @@ const FormSettings = forwardRef((props, ref) => { }); + /* --------Updating path if multitenant enabled-------------------------- */ + useEffect(()=>{ + if(MULTITENANCY_ENABLED){ + const updatedDisplayPath = removeTenantKeyFromPath(formDetails.path,tenantKey); + setFormDetails((prev) => { + return { + ...prev, + path: updatedDisplayPath + }; + }); + const updatedUrlPath = addTenantkeyAsSuffix(publicUrlPath,tenantKey); + setUrlPath(updatedUrlPath); + } + },[MULTITENANCY_ENABLED]); + /* ------------------------- validating form name and path ------------------------ */ const validateField = async (field, value) => { @@ -132,7 +151,10 @@ const FormSettings = forwardRef((props, ref) => { }; const handleBlur = (field, value) => { - validateField(field, value); + const updatedValue = MULTITENANCY_ENABLED + ? addTenantkey(value, tenantKey) + : value; + validateField(field, updatedValue); }; @@ -184,7 +206,7 @@ const FormSettings = forwardRef((props, ref) => { const copyPublicUrl = async () => { try { - await copyText(`${publicUrlPath}${formDetails.path}`); + await copyText(`${urlPath}${formDetails.path}`); setCopied(true); setTimeout(() => { setCopied(false); @@ -387,7 +409,7 @@ const FormSettings = forwardRef((props, ref) => { {t("URL Path")} - {publicUrlPath} + {urlPath} { + if (value.toLowerCase().endsWith(`-${tenantkey}`)) { + return value.toLowerCase(); + } else { + return `${value.toLowerCase()}${tenantkey}-`; + } +}; +//removing Tenantkey from path if there is tenantkey ekse return the value +const removeTenantKeyFromPath = (value, tenantKey) => { + const tenantKeyCheck = value.match(`${tenantKey}-`)?.[0]; + return tenantKeyCheck?.toLowerCase() === `${tenantKey.toLowerCase()}-` + ? value.replace(`${tenantKey.toLowerCase()}-`, "") + : value; +}; + export { generateUniqueId, replaceUrl, addTenantkey, removeTenantKey, textTruncate, renderPage, - filterSelectOptionByLabel, isFormComponentsChanged}; + filterSelectOptionByLabel, isFormComponentsChanged, removeTenantKeyFromPath,addTenantkeyAsSuffix};