diff --git a/forms-flow-web/src/components/Form/components/FormSettings.js b/forms-flow-web/src/components/Form/components/FormSettings.js index 370bc9377..a05b92cf7 100644 --- a/forms-flow-web/src/components/Form/components/FormSettings.js +++ b/forms-flow-web/src/components/Form/components/FormSettings.js @@ -9,10 +9,10 @@ import { Form, FormControl, InputGroup } from "react-bootstrap"; import { CopyIcon, CustomInfo, - CustomRadioButton, FormInput, FormTextArea, - MultipleSelect + CustomTabs, + DropdownMultiSelect } from "@formsflow/components"; import { MULTITENANCY_ENABLED } from "../../../constants/constants"; @@ -231,11 +231,13 @@ const FormSettings = forwardRef((props, ref) => { const handleRoleSelectForApplication = (roles) => handleRoleStateChange(APPLICATION, "selectedRoles", roles); - return ( - <> - {/* Section 1: Basic */} -
-
{t("Basic")}
+ const [key,setKey] = useState("Basic"); + const tabs = [ + { + eventKey: "Basic", + title: "Basic", + content: ( +
{ maxLength={200} /> { onChange={handleFormDetailsChange} className="field-label" /> -
- -
- -
-
{t("Permissions")}
- - - {t("Who Can View/Edit This Form")} - - + ), + }, + { + eventKey: "Permissions", + title: "Permissions", + content: ( +
+ { value: "specifiedRoles", }, ]} - onChange={ - (value) => { - handleRoleStateChange(DESIGN, "selectedOption", value); - } - } - dataTestId="who-can-edit-this-form" - id="who-can-edit-this-form" - ariaLabel={t("Edit Submission Role")} - selectedValue={rolesState.DESIGN.selectedOption} - /> - - {rolesState.DESIGN.selectedOption === "onlyYou" && ( - - )} - {rolesState.DESIGN.selectedOption === "specifiedRoles" && ( - - - )} - - - {t("Who Can Create Submissions")} - - { - setIsAnonymous(!isAnonymous); + multiSelectedValues={rolesState?.DESIGN?.selectedRoles } + multiSelectOptions={userRoles || []} + onDropdownChange={(value) => { + handleRoleStateChange(DESIGN, "selectedOption", value); }} - className="field-label" + onMultiSelectionChange={handleRoleSelectForDesign} + displayValue={multiSelectOptionKey} + ariaLabel="design-permission" + dataTestId="design-permission" + /> - { value:"specifiedRoles" }, ]} - id="who-can-create-submission" - dataTestId="create-submission-role" - ariaLabel={t("Create Submission Role")} - onChange={ + multiSelectedValues={rolesState.FORM.selectedRoles } + multiSelectOptions={userRoles} + onDropdownChange={ (value) => { handleRoleStateChange(FORM, "selectedOption", value); } } - selectedValue={rolesState.FORM.selectedOption} + onMultiSelectionChange={handleRoleSelectForForm} + displayValue={multiSelectOptionKey} + ariaLabel="form-permission" + dataTestId="form-permission" + + /> + { + setIsAnonymous(!isAnonymous); + }} + className="field-label" /> - {rolesState.FORM.selectedOption === "registeredUsers" && ( - - )} - {rolesState.FORM.selectedOption === "specifiedRoles" && ( - - - )} - - - {t("Who Can View Submissions")} - - { value:"specifiedRoles" }, ]} - id="who-can-view-submission" - dataTestId="view-submission-role" - ariaLabel={t("View Submission Role")} - onChange={ + multiSelectedValues={rolesState.APPLICATION.selectedRoles } + multiSelectOptions={userRoles} + onDropdownChange={ (value) => { handleRoleStateChange(APPLICATION, "selectedOption", value); } } - selectedValue={rolesState.APPLICATION.selectedOption} + onMultiSelectionChange={handleRoleSelectForApplication} + displayValue={multiSelectOptionKey} + dataTestId="application-permission" /> - {rolesState.APPLICATION.selectedOption === "submitter" && ( - - )} - - {rolesState.APPLICATION.selectedOption === "specifiedRoles" && ( - - - )} -
- -
-
-
{t("Link for this form")}
+
+ ), + }, + { + eventKey :"Link", + title : "Link", + content : ( +
@@ -426,6 +400,7 @@ const FormSettings = forwardRef((props, ref) => { { {errors.path &&
{errors.path}
}
-
- +
+ ) + } + ]; + return ( +
+ +
); }); diff --git a/forms-flow-web/src/components/Modals/SettingsModal.js b/forms-flow-web/src/components/Modals/SettingsModal.js index ecbd4b157..ca7bc195b 100644 --- a/forms-flow-web/src/components/Modals/SettingsModal.js +++ b/forms-flow-web/src/components/Modals/SettingsModal.js @@ -39,6 +39,7 @@ const SettingsModal = ({ show, handleClose, handleConfirm, isSaving = false }) = onHide={handleClose} size="sm" backdrop="static" + centered > {t("Settings")}