show 'Resume' button if the Newsletter was paused.
This commit is contained in:
@@ -149,6 +149,37 @@ define(
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
handleResume: function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
if(!this.isValid()) {
|
||||||
|
jQuery('#mailpoet_newsletter').parsley().validate();
|
||||||
|
} else {
|
||||||
|
this._save(e).done(() => {
|
||||||
|
this.setState({ loading: true });
|
||||||
|
}).done(() => {
|
||||||
|
MailPoet.Ajax.post({
|
||||||
|
api_version: window.mailpoet_api_version,
|
||||||
|
endpoint: 'sendingQueue',
|
||||||
|
action: 'resume',
|
||||||
|
data: {
|
||||||
|
newsletter_id: this.state.item.id
|
||||||
|
}
|
||||||
|
}).done(() => {
|
||||||
|
this.context.router.push(`/${ this.state.item.type || '' }`);
|
||||||
|
}).fail((response) => {
|
||||||
|
if (response.errors.length > 0) {
|
||||||
|
MailPoet.Notice.error(
|
||||||
|
response.errors.map((error) => { return error.message; }),
|
||||||
|
{ scroll: true }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).fail(this._showError).always(() => {
|
||||||
|
this.setState({ loading: false });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
handleSave: function (e) {
|
handleSave: function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@@ -174,6 +205,7 @@ define(
|
|||||||
},
|
},
|
||||||
_save: function () {
|
_save: function () {
|
||||||
const data = this.state.item;
|
const data = this.state.item;
|
||||||
|
data.queue = undefined;
|
||||||
this.setState({ loading: true });
|
this.setState({ loading: true });
|
||||||
|
|
||||||
// Store only properties that can be changed on this page
|
// Store only properties that can be changed on this page
|
||||||
@@ -238,6 +270,15 @@ define(
|
|||||||
{...this.getSendButtonOptions()}
|
{...this.getSendButtonOptions()}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
{
|
||||||
|
this.state.item.queue && this.state.item.queue.status == 'paused'
|
||||||
|
? <input
|
||||||
|
className="button button-secondary"
|
||||||
|
type="button"
|
||||||
|
onClick={ this.handleResume }
|
||||||
|
value={MailPoet.I18n.t('resume')} />
|
||||||
|
: null
|
||||||
|
}
|
||||||
<input
|
<input
|
||||||
className="button button-secondary"
|
className="button button-secondary"
|
||||||
type="submit"
|
type="submit"
|
||||||
|
@@ -33,6 +33,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
$newsletter = $newsletter
|
$newsletter = $newsletter
|
||||||
->withSegments()
|
->withSegments()
|
||||||
->withOptions()
|
->withOptions()
|
||||||
|
->withSendingQueue()
|
||||||
->asArray();
|
->asArray();
|
||||||
$newsletter = Hooks::applyFilters('mailpoet_api_newsletters_get_after', $newsletter);
|
$newsletter = Hooks::applyFilters('mailpoet_api_newsletters_get_after', $newsletter);
|
||||||
return $this->successResponse($newsletter);
|
return $this->successResponse($newsletter);
|
||||||
@@ -111,7 +112,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$queue = $newsletter->getQueue();
|
$queue = $newsletter->getQueue();
|
||||||
if ($queue) {
|
if($queue) {
|
||||||
$queue->newsletter_rendered_body = null;
|
$queue->newsletter_rendered_body = null;
|
||||||
$queue->newsletter_rendered_subject = null;
|
$queue->newsletter_rendered_subject = null;
|
||||||
$queue->save();
|
$queue->save();
|
||||||
|
@@ -99,6 +99,7 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
Newsletter::findOne($this->newsletter->id)
|
Newsletter::findOne($this->newsletter->id)
|
||||||
->withSegments()
|
->withSegments()
|
||||||
->withOptions()
|
->withOptions()
|
||||||
|
->withSendingQueue()
|
||||||
->asArray()
|
->asArray()
|
||||||
);
|
);
|
||||||
$hook_name = 'mailpoet_api_newsletters_get_after';
|
$hook_name = 'mailpoet_api_newsletters_get_after';
|
||||||
|
@@ -1215,23 +1215,26 @@
|
|||||||
newsletter: response.data,
|
newsletter: response.data,
|
||||||
config: config,
|
config: config,
|
||||||
});
|
});
|
||||||
MailPoet.Ajax.post({
|
var queue = response.data.queue;
|
||||||
api_version: window.mailpoet_api_version,
|
if (queue && queue.status == 'scheduled') {
|
||||||
endpoint: 'sending_queue',
|
MailPoet.Ajax.post({
|
||||||
action: 'pause',
|
api_version: window.mailpoet_api_version,
|
||||||
data: {
|
endpoint: 'sending_queue',
|
||||||
newsletter_id: response.data.id
|
action: 'pause',
|
||||||
|
data: {
|
||||||
|
newsletter_id: response.data.id
|
||||||
|
}
|
||||||
|
}).done(response =>
|
||||||
|
MailPoet.Notice.success(MailPoet.I18n.t('newsletterIsPaused'))
|
||||||
|
)
|
||||||
|
}).fail(function(response) {
|
||||||
|
if (response.errors.length > 0) {
|
||||||
|
MailPoet.Notice.error(
|
||||||
|
response.errors.map(function(error) { return error.message; }),
|
||||||
|
{ scroll: true, static: true }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}).done(response =>
|
});
|
||||||
MailPoet.Notice.success(MailPoet.I18n.t('newsletterIsPaused'))
|
}
|
||||||
)
|
|
||||||
}).fail(function(response) {
|
|
||||||
if (response.errors.length > 0) {
|
|
||||||
MailPoet.Notice.error(
|
|
||||||
response.errors.map(function(error) { return error.message; }),
|
|
||||||
{ scroll: true, static: true }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
<% endblock %>
|
<% endblock %>
|
||||||
|
Reference in New Issue
Block a user