Save the re-engagement email

[MAILPOET-3763]
This commit is contained in:
Pavel Dohnal
2021-09-13 12:49:54 +02:00
committed by Veljko V
parent 05400ec646
commit 6ac7015b5c
4 changed files with 52 additions and 9 deletions

View File

@ -1,12 +1,15 @@
import React, { useState } from 'react';
import { __, assoc, compose } from 'lodash/fp';
import { useHistory } from 'react-router-dom';
import MailPoet from 'mailpoet';
import Background from 'common/background/background';
import { Grid } from 'common/grid';
import Button from 'common/button/button';
import ListingHeadingStepsRoute from '../../listings/heading_steps_route';
import APIErrorsNotice from 'notices/api_errors_notice';
import { Scheduling } from './scheduling';
import ListingHeadingStepsRoute from '../../listings/heading_steps_route';
interface ReengagementWindow extends Window {
settings: {
@ -23,10 +26,39 @@ export function NewsletterTypeReEngagement(): JSX.Element {
).toString(),
afterTimeType: 'months',
});
const [errors, setErrors] = useState([]);
const history = useHistory();
function showTemplateSelection(newsletterId: string) {
history.push(`/template/${newsletterId}`);
}
function handleNext() {
setErrors([]);
MailPoet.Ajax.post({
api_version: MailPoet.apiVersion,
endpoint: 'newsletters',
action: 'create',
data: {
type: 're_engagement',
subject: MailPoet.I18n.t('draftNewsletterTitle'),
options,
},
}).done((response) => {
showTemplateSelection(response.data.id);
}).fail((response) => {
if (response.errors) {
setErrors(response.errors);
}
});
}
return (
<div>
<Background color="#fff" />
{errors && (<APIErrorsNotice errors={errors} />)}
<ListingHeadingStepsRoute emailType="re_engagement" automationId="re_engagement_heading_creation_heading" />
<Grid.Column align="center" className="mailpoet-schedule-email">
@ -42,7 +74,7 @@ export function NewsletterTypeReEngagement(): JSX.Element {
<Button
isFullWidth
onClick={() => 5}
onClick={handleNext}
type="button"
>
{MailPoet.I18n.t('next')}

View File

@ -425,32 +425,41 @@ class Populator {
],
[
'name' => 'group',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'event',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'sendTo',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'segment',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'afterTimeNumber',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'afterTimeType',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'meta',
'newsletter_type' => Newsletter::TYPE_AUTOMATIC,
'newsletter_type' => NewsletterEntity::TYPE_AUTOMATIC,
],
[
'name' => 'afterTimeNumber',
'newsletter_type' => NewsletterEntity::TYPE_RE_ENGAGEMENT,
],
[
'name' => 'afterTimeType',
'newsletter_type' => NewsletterEntity::TYPE_RE_ENGAGEMENT,
],
];
return [

View File

@ -28,6 +28,7 @@ class NewsletterEntity {
const TYPE_NOTIFICATION = 'notification';
const TYPE_NOTIFICATION_HISTORY = 'notification_history';
const TYPE_WC_TRANSACTIONAL_EMAIL = 'wc_transactional';
const TYPE_RE_ENGAGEMENT = 're_engagement';
// standard newsletters
const STATUS_DRAFT = 'draft';

View File

@ -365,6 +365,7 @@
'stepNameTypeWelcome': __('Welcome Email'),
'stepNameTypeNotification': __('Post Notification'),
'stepNameTypeWooCommerce': __('WooCommerce'),
'stepNameTypeReEngagement': __('Re-engagement'),
'stepNameTemplate': __('Template'),
'stepNameDesign': __('Design'),
'stepNameSend': __('Send'),