diff --git a/src/actions/sponsor-forms-actions.js b/src/actions/sponsor-forms-actions.js index 860c841e8..959c8ac4a 100644 --- a/src/actions/sponsor-forms-actions.js +++ b/src/actions/sponsor-forms-actions.js @@ -55,6 +55,8 @@ export const REQUEST_SPONSOR_MANAGED_FORM = "REQUEST_SPONSOR_MANAGED_FORM"; export const RECEIVE_SPONSOR_MANAGED_FORM = "RECEIVE_SPONSOR_MANAGED_FORM"; export const SPONSOR_MANAGED_FORMS_ADDED = "SPONSOR_MANAGED_FORMS_ADDED"; export const SPONSOR_MANAGED_FORMS_UPGRADED = "SPONSOR_MANAGED_FORMS_UPGRADED"; +export const SPONSOR_MANAGED_FORMS_OVERRIDEN = + "SPONSOR_MANAGED_FORMS_OVERRIDEN"; export const REQUEST_SPONSOR_CUSTOMIZED_FORMS = "REQUEST_SPONSOR_CUSTOMIZED_FORMS"; @@ -622,6 +624,37 @@ export const saveSponsorManagedForm = }); }; +export const overrideSponsorManagedForm = + (formId) => async (dispatch, getState) => { + const { currentSummitState, currentSponsorState } = getState(); + const { currentSummit } = currentSummitState; + const { + entity: { id: sponsorId } + } = currentSponsorState; + const accessToken = await getAccessTokenSafely(); + + dispatch(startLoading()); + + const params = { + access_token: accessToken + }; + + return postRequest( + null, + createAction(SPONSOR_MANAGED_FORMS_OVERRIDEN), + `${window.PURCHASES_API_URL}/api/v1/summits/${currentSummit.id}/sponsors/${sponsorId}/managed-forms/${formId}/override`, + {}, + snackbarErrorHandler + )(params)(dispatch) + .then(() => { + dispatch(getSponsorManagedForms()); + dispatch(getSponsorCustomizedForms()); + }) + .finally(() => { + dispatch(stopLoading()); + }); + }; + export const upgradeSponsorManagedForm = (entity) => async (dispatch, getState) => { const { currentSummitState, currentSponsorState } = getState(); diff --git a/src/i18n/en.json b/src/i18n/en.json index 90d959ede..35c4f066b 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -2516,6 +2516,7 @@ "items": "Items", "managed_forms": "Managed Forms", "manage_items": "Manage Items", + "override": "Override", "none": "None", "customize": "Customize", "archive": "Archive", @@ -2523,6 +2524,7 @@ "add_form_using_template": "Add Form Using Template", "add_selected_form_template": "Add Selected Form Template", "customized": "CUSTOMIZED", + "override_warning": "By overriding this Managed Form, a new Customized Form will be created. Are you sure you want to proceed?", "customized_form": { "new_form_title": "Create New Form", "edit_form_title": "Edit Form", diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js index e1c0f8a10..043e833bf 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-forms-tab/index.js @@ -33,12 +33,14 @@ import { getSponsorCustomizedForms, getSponsorManagedForms, saveSponsorManagedForm, + overrideSponsorManagedForm, unarchiveSponsorCustomizedForm } from "../../../../../actions/sponsor-forms-actions"; import CustomAlert from "../../../../../components/mui/custom-alert"; import AddSponsorFormTemplatePopup from "./components/add-sponsor-form-template-popup"; import CustomizedFormPopup from "./components/customized-form/customized-form-popup"; import { DEFAULT_CURRENT_PAGE } from "../../../../../utils/constants"; +import showConfirmDialog from "../../../../../components/mui/showConfirmDialog"; const SponsorFormsTab = ({ term, @@ -51,6 +53,7 @@ const SponsorFormsTab = ({ getSponsorManagedForms, getSponsorCustomizedForms, saveSponsorManagedForm, + overrideSponsorManagedForm, archiveSponsorCustomizedForm, unarchiveSponsorCustomizedForm, deleteSponsorCustomizedForm @@ -157,8 +160,15 @@ const SponsorFormsTab = ({ ); }; - const handleManagedFormManageItems = (item) => { - console.log("Managed Form Item Edit : ", item); + const handleOverrideForm = async (form) => { + const confirmed = await showConfirmDialog({ + title: T.translate("general.are_you_sure"), + text: T.translate("edit_sponsor.forms_tab.override_warning") + }); + + if (confirmed) { + overrideSponsorManagedForm(form.id); + } }; const handleCustomizedEdit = (item) => { @@ -257,12 +267,12 @@ const SponsorFormsTab = ({ ); }; - const baseColumns = (name, manageItemsFn) => [ + const baseColumns = (name) => [ { columnKey: "name", header: name, sortable: true, - width: 235, + width: 250, render: (row) => row.original_show_form_id > 0 ? ( <> @@ -316,9 +326,13 @@ const SponsorFormsTab = ({ ? T.translate("edit_sponsor.forms_tab.item") : T.translate("edit_sponsor.forms_tab.items") }` - }, + } + ]; + + const managedFormsColumns = [ + ...baseColumns(T.translate("edit_sponsor.forms_tab.managed_forms")), { - columnKey: "manage_items", + columnKey: "override", header: "", align: "left", width: 130, @@ -332,19 +346,12 @@ const SponsorFormsTab = ({ fontSize: "13px", fontWeight: "normal" }} - onClick={() => manageItemsFn(row)} + onClick={() => handleOverrideForm(row)} > - {T.translate("edit_sponsor.forms_tab.manage_items")} + {T.translate("edit_sponsor.forms_tab.override")} ) - } - ]; - - const managedFormsColumns = [ - ...baseColumns( - T.translate("edit_sponsor.forms_tab.managed_forms"), - handleManagedFormManageItems - ), + }, { columnKey: "archive", header: "", @@ -354,13 +361,13 @@ const SponsorFormsTab = ({ { columnKey: "customize", header: "", - width: 100, + width: 120, align: "center", render: (row) => ( + ) + } ]; return ( @@ -522,6 +549,7 @@ const mapStateToProps = ({ export default connect(mapStateToProps, { getSponsorManagedForms, saveSponsorManagedForm, + overrideSponsorManagedForm, getSponsorCustomizedForms, archiveSponsorCustomizedForm, unarchiveSponsorCustomizedForm,