Add a switch for enabling the placement

[MAILPOET-3075]
This commit is contained in:
Pavel Dohnal
2020-08-11 12:51:28 +02:00
committed by Veljko V
parent 3626dac3e7
commit b6e843e0ac
9 changed files with 79 additions and 66 deletions

View File

@@ -10,14 +10,12 @@ const BelowPages = () => {
(select) => select('mailpoet-form-editor').getFormSettings(), (select) => select('mailpoet-form-editor').getFormSettings(),
[] []
); );
const placeFormBellowAllPages = formSettings.placeFormBellowAllPages || false;
const placeFormBellowAllPosts = formSettings.placeFormBellowAllPosts || false;
const { showPlacementSettings } = useDispatch('mailpoet-form-editor'); const { showPlacementSettings } = useDispatch('mailpoet-form-editor');
return ( return (
<FormPlacementOption <FormPlacementOption
active={placeFormBellowAllPages || placeFormBellowAllPosts} active={formSettings.placementBellowAllPostsEnabled}
label={MailPoet.I18n.t('placeFormBellowPages')} label={MailPoet.I18n.t('placeFormBellowPages')}
icon={Icon} icon={Icon}
onClick={() => (showPlacementSettings('below_post'))} onClick={() => (showPlacementSettings('below_post'))}

View File

@@ -10,13 +10,11 @@ const FixedBar = () => {
(select) => select('mailpoet-form-editor').getFormSettings(), (select) => select('mailpoet-form-editor').getFormSettings(),
[] []
); );
const placeFixedBarFormOnAllPages = formSettings.placeFixedBarFormOnAllPages || false;
const placeFixedBarFormOnAllPosts = formSettings.placeFixedBarFormOnAllPosts || false;
const { showPlacementSettings } = useDispatch('mailpoet-form-editor'); const { showPlacementSettings } = useDispatch('mailpoet-form-editor');
return ( return (
<FormPlacementOption <FormPlacementOption
active={placeFixedBarFormOnAllPages || placeFixedBarFormOnAllPosts} active={formSettings.placementFixedBarEnabled}
label={MailPoet.I18n.t('placeFixedBarFormOnPages')} label={MailPoet.I18n.t('placeFixedBarFormOnPages')}
icon={Icon} icon={Icon}
onClick={() => (showPlacementSettings('fixed_bar'))} onClick={() => (showPlacementSettings('fixed_bar'))}

View File

@@ -10,13 +10,11 @@ const Popup = () => {
(select) => select('mailpoet-form-editor').getFormSettings(), (select) => select('mailpoet-form-editor').getFormSettings(),
[] []
); );
const placePopupFormOnAllPages = formSettings.placePopupFormOnAllPages || false;
const placePopupFormOnAllPosts = formSettings.placePopupFormOnAllPosts || false;
const { showPlacementSettings } = useDispatch('mailpoet-form-editor'); const { showPlacementSettings } = useDispatch('mailpoet-form-editor');
return ( return (
<FormPlacementOption <FormPlacementOption
active={placePopupFormOnAllPages || placePopupFormOnAllPosts} active={formSettings.placementPopupEnabled}
label={MailPoet.I18n.t('placePopupFormOnPages')} label={MailPoet.I18n.t('placePopupFormOnPages')}
icon={Icon} icon={Icon}
onClick={() => (showPlacementSettings('popup'))} onClick={() => (showPlacementSettings('popup'))}

View File

@@ -18,34 +18,41 @@ const BelowPostsSettings = () => {
changeFormSettings(settings); changeFormSettings(settings);
}; };
const isActive = formSettings.placeFormBellowAllPages || formSettings.placeFormBellowAllPosts; const isActive = formSettings.placementBellowAllPostsEnabled;
return ( return (
<> <>
<ToggleControl <ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')} label={MailPoet.I18n.t('enable')}
checked={formSettings.placeFormBellowAllPages || false} checked={isActive}
onChange={partial(updateSettings, 'placeFormBellowAllPages')} onChange={partial(updateSettings, 'placementBellowAllPostsEnabled')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placeFormBellowAllPosts || false}
onChange={partial(updateSettings, 'placeFormBellowAllPosts')}
/> />
{isActive && ( {isActive && (
<SizeSettings <>
label={MailPoet.I18n.t('formSettingsWidth')} <ToggleControl
value={formSettings.belowPostStyles.width} label={MailPoet.I18n.t('placeFormOnAllPages')}
minPixels={200} checked={formSettings.placeFormBellowAllPages || false}
maxPixels={1200} onChange={partial(updateSettings, 'placeFormBellowAllPages')}
minPercents={10} />
maxPercents={100} <ToggleControl
defaultPixelValue={560} label={MailPoet.I18n.t('placeFormOnAllPosts')}
defaultPercentValue={100} checked={formSettings.placeFormBellowAllPosts || false}
onChange={(width) => ( onChange={partial(updateSettings, 'placeFormBellowAllPosts')}
updateSettings('belowPostStyles', { ...formSettings.belowPostStyles, width }) />
)} <SizeSettings
/> label={MailPoet.I18n.t('formSettingsWidth')}
value={formSettings.belowPostStyles.width}
minPixels={200}
maxPixels={1200}
minPercents={10}
maxPercents={100}
defaultPixelValue={560}
defaultPercentValue={100}
onChange={(width) => (
updateSettings('belowPostStyles', { ...formSettings.belowPostStyles, width })
)}
/>
</>
)} )}
</> </>
); );

View File

@@ -20,25 +20,29 @@ const FixedBarSettings = () => {
changeFormSettings(settings); changeFormSettings(settings);
}; };
const isActive = formSettings.placeFixedBarFormOnAllPages const isActive = formSettings.placementFixedBarEnabled;
|| formSettings.placeFixedBarFormOnAllPosts;
return ( return (
<> <>
<p>{MailPoet.I18n.t('placeFixedBarFormOnPagesDescription')}</p> <p>{MailPoet.I18n.t('placeFixedBarFormOnPagesDescription')}</p>
<hr />
<ToggleControl <ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')} label={MailPoet.I18n.t('enable')}
checked={formSettings.placeFixedBarFormOnAllPages || false} checked={isActive}
onChange={partial(updateSettings, 'placeFixedBarFormOnAllPages')} onChange={partial(updateSettings, 'placementFixedBarEnabled')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placeFixedBarFormOnAllPosts || false}
onChange={partial(updateSettings, 'placeFixedBarFormOnAllPosts')}
/> />
{isActive && ( {isActive && (
<> <>
<hr />
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')}
checked={formSettings.placeFixedBarFormOnAllPages || false}
onChange={partial(updateSettings, 'placeFixedBarFormOnAllPages')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placeFixedBarFormOnAllPosts || false}
onChange={partial(updateSettings, 'placeFixedBarFormOnAllPosts')}
/>
<SelectControl <SelectControl
label={MailPoet.I18n.t('formPlacementDelay')} label={MailPoet.I18n.t('formPlacementDelay')}
value={formSettings.fixedBarFormDelay} value={formSettings.fixedBarFormDelay}

View File

@@ -21,24 +21,29 @@ const PopUpSettings = () => {
changeFormSettings(settings); changeFormSettings(settings);
}; };
const isActive = formSettings.placePopupFormOnAllPages || formSettings.placePopupFormOnAllPosts; const isActive = formSettings.placementPopupEnabled;
return ( return (
<> <>
<p>{MailPoet.I18n.t('placePopupFormOnPagesDescription')}</p> <p>{MailPoet.I18n.t('placePopupFormOnPagesDescription')}</p>
<hr />
<ToggleControl <ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')} label={MailPoet.I18n.t('enable')}
checked={formSettings.placePopupFormOnAllPages || false} checked={isActive}
onChange={partial(updateSettings, 'placePopupFormOnAllPages')} onChange={partial(updateSettings, 'placementPopupEnabled')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placePopupFormOnAllPosts || false}
onChange={partial(updateSettings, 'placePopupFormOnAllPosts')}
/> />
{isActive && ( {isActive && (
<> <>
<hr />
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')}
checked={formSettings.placePopupFormOnAllPages || false}
onChange={partial(updateSettings, 'placePopupFormOnAllPages')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placePopupFormOnAllPosts || false}
onChange={partial(updateSettings, 'placePopupFormOnAllPosts')}
/>
<SelectControl <SelectControl
label={MailPoet.I18n.t('formPlacementDelay')} label={MailPoet.I18n.t('formPlacementDelay')}
value={formSettings.popupFormDelay} value={formSettings.popupFormDelay}

View File

@@ -20,25 +20,29 @@ const SlideInSettings = () => {
changeFormSettings(settings); changeFormSettings(settings);
}; };
const isActive = formSettings.placeSlideInFormOnAllPages const isActive = formSettings.placementSlideInEnabled;
|| formSettings.placeSlideInFormOnAllPosts;
return ( return (
<> <>
<p>{MailPoet.I18n.t('placeSlideInFormOnPagesDescription')}</p> <p>{MailPoet.I18n.t('placeSlideInFormOnPagesDescription')}</p>
<hr />
<ToggleControl <ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')} label={MailPoet.I18n.t('enable')}
checked={formSettings.placeSlideInFormOnAllPages || false} checked={isActive}
onChange={partial(updateSettings, 'placeSlideInFormOnAllPages')} onChange={partial(updateSettings, 'placementSlideInEnabled')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placeSlideInFormOnAllPosts || false}
onChange={partial(updateSettings, 'placeSlideInFormOnAllPosts')}
/> />
{isActive && ( {isActive && (
<> <>
<hr />
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPages')}
checked={formSettings.placeSlideInFormOnAllPages || false}
onChange={partial(updateSettings, 'placeSlideInFormOnAllPages')}
/>
<ToggleControl
label={MailPoet.I18n.t('placeFormOnAllPosts')}
checked={formSettings.placeSlideInFormOnAllPosts || false}
onChange={partial(updateSettings, 'placeSlideInFormOnAllPosts')}
/>
<SelectControl <SelectControl
label={MailPoet.I18n.t('formPlacementDelay')} label={MailPoet.I18n.t('formPlacementDelay')}
value={formSettings.slideInFormDelay} value={formSettings.slideInFormDelay}

View File

@@ -10,13 +10,11 @@ const SlideIn = () => {
(select) => select('mailpoet-form-editor').getFormSettings(), (select) => select('mailpoet-form-editor').getFormSettings(),
[] []
); );
const placeSlideInFormOnAllPages = formSettings.placeSlideInFormOnAllPages || false;
const placeSlideInFormOnAllPosts = formSettings.placeSlideInFormOnAllPosts || false;
const { showPlacementSettings } = useDispatch('mailpoet-form-editor'); const { showPlacementSettings } = useDispatch('mailpoet-form-editor');
return ( return (
<FormPlacementOption <FormPlacementOption
active={placeSlideInFormOnAllPages || placeSlideInFormOnAllPosts} active={formSettings.placementSlideInEnabled}
label={MailPoet.I18n.t('placeSlideInFormOnPages')} label={MailPoet.I18n.t('placeSlideInFormOnPages')}
icon={Icon} icon={Icon}
onClick={() => (showPlacementSettings('slide_in'))} onClick={() => (showPlacementSettings('slide_in'))}

View File

@@ -41,6 +41,7 @@
<% block translations %> <% block translations %>
<%= localize({ <%= localize({
'displayForm': __('Display the form'), 'displayForm': __('Display the form'),
'enable': __('Enable'),
'addFormName': _x('Add form name', 'A placeholder for form name input'), 'addFormName': _x('Add form name', 'A placeholder for form name input'),
'changesNotSaved': __('Your changes you made may not be saved'), 'changesNotSaved': __('Your changes you made may not be saved'),
'back': __('Back'), 'back': __('Back'),