Splits send method into smaller chunks
This commit is contained in:
@@ -117,112 +117,117 @@ define(
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
if (!this.isValid()) {
|
if (!this.isValid()) {
|
||||||
jQuery('#mailpoet_newsletter').parsley().validate();
|
return jQuery('#mailpoet_newsletter').parsley().validate();
|
||||||
} else {
|
}
|
||||||
MailPoet.Modal.loading(true);
|
|
||||||
this.saveNewsletter(e).done(() => {
|
MailPoet.Modal.loading(true);
|
||||||
this.setState({ loading: true });
|
|
||||||
}).done((response) => {
|
return this.saveNewsletter(e).done(() => {
|
||||||
switch (response.data.type) {
|
this.setState({ loading: true });
|
||||||
case 'notification':
|
})
|
||||||
case 'welcome':
|
.done((response) => {
|
||||||
return MailPoet.Ajax.post({
|
switch (response.data.type) {
|
||||||
api_version: window.mailpoet_api_version,
|
case 'notification':
|
||||||
endpoint: 'newsletters',
|
case 'welcome':
|
||||||
action: 'setStatus',
|
return this.activateNewsletter(response);
|
||||||
data: {
|
default:
|
||||||
id: this.props.params.id,
|
return this.sendNewsletter(response);
|
||||||
status: 'active',
|
}
|
||||||
},
|
})
|
||||||
}).done((response2) => {
|
.fail((err) => {
|
||||||
// save template in recently sent category
|
this.showError(err);
|
||||||
this.saveTemplate(response, () => {
|
this.setState({ loading: false });
|
||||||
// redirect to listing based on newsletter type
|
MailPoet.Modal.loading(false);
|
||||||
this.context.router.push(`/${this.state.item.type || ''}`);
|
});
|
||||||
const opts = this.state.item.options;
|
},
|
||||||
// display success message depending on newsletter type
|
sendNewsletter: function sendNewsletter(newsletter) {
|
||||||
if (response2.data.type === 'welcome') {
|
return MailPoet.Ajax.post(
|
||||||
MailPoet.Notice.success(
|
Hooks.applyFilters(
|
||||||
MailPoet.I18n.t('welcomeEmailActivated')
|
'mailpoet_newsletters_send_server_request_parameters',
|
||||||
);
|
{
|
||||||
MailPoet.trackEvent('Emails > Welcome email activated', {
|
api_version: window.mailpoet_api_version,
|
||||||
'MailPoet Free version': window.mailpoet_version,
|
endpoint: 'sendingQueue',
|
||||||
'List type': opts.event,
|
action: 'add',
|
||||||
Delay: `${opts.afterTimeNumber} ${opts.afterTimeType}`,
|
data: {
|
||||||
});
|
newsletter_id: this.state.item.id,
|
||||||
} else if (response2.data.type === 'notification') {
|
},
|
||||||
MailPoet.Notice.success(
|
},
|
||||||
MailPoet.I18n.t('postNotificationActivated')
|
this.state.item
|
||||||
);
|
)
|
||||||
MailPoet.trackEvent('Emails > Post notifications activated', {
|
).done((response) => {
|
||||||
'MailPoet Free version': window.mailpoet_version,
|
// save template in recently sent category
|
||||||
Frequency: opts.intervalType,
|
this.saveTemplate(newsletter, () => {
|
||||||
});
|
// redirect to listing based on newsletter type
|
||||||
}
|
this.context.router.push(Hooks.applyFilters('mailpoet_newsletters_send_server_request_response_redirect', `/${this.state.item.type || ''}`, this.state.item));
|
||||||
MailPoet.Modal.loading(false);
|
const customResponse = Hooks.applyFilters('mailpoet_newsletters_send_server_request_response', this.state.item, response);
|
||||||
});
|
if (_.isFunction(customResponse)) {
|
||||||
}).fail((err) => {
|
customResponse();
|
||||||
this.showError(err);
|
} else if (response.data.status === 'scheduled') {
|
||||||
this.setState({ loading: false });
|
MailPoet.Notice.success(
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.I18n.t('newsletterHasBeenScheduled')
|
||||||
});
|
);
|
||||||
default:
|
MailPoet.trackEvent('Emails > Newsletter sent', {
|
||||||
return MailPoet.Ajax.post(
|
scheduled: true,
|
||||||
Hooks.applyFilters(
|
'MailPoet Free version': window.mailpoet_version,
|
||||||
'mailpoet_newsletters_send_server_request_parameters',
|
});
|
||||||
{
|
} else {
|
||||||
api_version: window.mailpoet_api_version,
|
MailPoet.Notice.success(
|
||||||
endpoint: 'sendingQueue',
|
MailPoet.I18n.t('newsletterBeingSent')
|
||||||
action: 'add',
|
);
|
||||||
data: {
|
MailPoet.trackEvent('Emails > Newsletter sent', {
|
||||||
newsletter_id: this.state.item.id,
|
scheduled: false,
|
||||||
},
|
'MailPoet Free version': window.mailpoet_version,
|
||||||
},
|
});
|
||||||
this.state.item
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.done((response2) => {
|
|
||||||
// save template in recently sent category
|
|
||||||
this.saveTemplate(response, () => {
|
|
||||||
// redirect to listing based on newsletter type
|
|
||||||
this.context.router.push(Hooks.applyFilters('mailpoet_newsletters_send_server_request_response_redirect', `/${this.state.item.type || ''}`, this.state.item));
|
|
||||||
const customResponse = Hooks.applyFilters('mailpoet_newsletters_send_server_request_response', this.state.item, response2);
|
|
||||||
if (_.isFunction(customResponse)) {
|
|
||||||
customResponse();
|
|
||||||
} else if (response2.data.status === 'scheduled') {
|
|
||||||
MailPoet.Notice.success(
|
|
||||||
MailPoet.I18n.t('newsletterHasBeenScheduled')
|
|
||||||
);
|
|
||||||
MailPoet.trackEvent('Emails > Newsletter sent', {
|
|
||||||
scheduled: true,
|
|
||||||
'MailPoet Free version': window.mailpoet_version,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
MailPoet.Notice.success(
|
|
||||||
MailPoet.I18n.t('newsletterBeingSent')
|
|
||||||
);
|
|
||||||
MailPoet.trackEvent('Emails > Newsletter sent', {
|
|
||||||
scheduled: false,
|
|
||||||
'MailPoet Free version': window.mailpoet_version,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
MailPoet.Modal.loading(false);
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.fail((err) => {
|
|
||||||
this.showError(err);
|
|
||||||
this.setState({ loading: false });
|
|
||||||
MailPoet.Modal.loading(false);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.fail((err) => {
|
|
||||||
this.showError(err);
|
|
||||||
this.setState({ loading: false });
|
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.Modal.loading(false);
|
||||||
});
|
});
|
||||||
}
|
}).fail((err) => {
|
||||||
return false;
|
this.showError(err);
|
||||||
|
this.setState({ loading: false });
|
||||||
|
MailPoet.Modal.loading(false);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
activateNewsletter: function activateEmail(newsletter) {
|
||||||
|
return MailPoet.Ajax.post({
|
||||||
|
api_version: window.mailpoet_api_version,
|
||||||
|
endpoint: 'newsletters',
|
||||||
|
action: 'setStatus',
|
||||||
|
data: {
|
||||||
|
id: this.props.params.id,
|
||||||
|
status: 'active',
|
||||||
|
},
|
||||||
|
}).done((response) => {
|
||||||
|
// save template in recently sent category
|
||||||
|
this.saveTemplate(newsletter, () => {
|
||||||
|
// redirect to listing based on newsletter type
|
||||||
|
this.context.router.push(`/${this.state.item.type || ''}`);
|
||||||
|
const opts = this.state.item.options;
|
||||||
|
// display success message depending on newsletter type
|
||||||
|
if (response.data.type === 'welcome') {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
MailPoet.I18n.t('welcomeEmailActivated')
|
||||||
|
);
|
||||||
|
MailPoet.trackEvent('Emails > Welcome email activated', {
|
||||||
|
'MailPoet Free version': window.mailpoet_version,
|
||||||
|
'List type': opts.event,
|
||||||
|
Delay: `${opts.afterTimeNumber} ${opts.afterTimeType}`,
|
||||||
|
});
|
||||||
|
} else if (response.data.type === 'notification') {
|
||||||
|
MailPoet.Notice.success(
|
||||||
|
MailPoet.I18n.t('postNotificationActivated')
|
||||||
|
);
|
||||||
|
MailPoet.trackEvent('Emails > Post notifications activated', {
|
||||||
|
'MailPoet Free version': window.mailpoet_version,
|
||||||
|
Frequency: opts.intervalType,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
MailPoet.Modal.loading(false);
|
||||||
|
});
|
||||||
|
}).fail((err) => {
|
||||||
|
this.showError(err);
|
||||||
|
this.setState({ loading: false });
|
||||||
|
MailPoet.Modal.loading(false);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
handleResume: function handleResume(e) {
|
handleResume: function handleResume(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
Reference in New Issue
Block a user