diff --git a/assets/js/src/newsletters/send.jsx b/assets/js/src/newsletters/send.jsx
index 5c5e52769e..0315bbb73c 100644
--- a/assets/js/src/newsletters/send.jsx
+++ b/assets/js/src/newsletters/send.jsx
@@ -26,7 +26,8 @@ define(
"Tempt them to open your email.",
type: 'text',
validation: {
- 'data-parsley-required': true
+ 'data-parsley-required': true,
+ 'data-parsley-required-message': 'You need to specify a subject.'
}
},
{
@@ -42,7 +43,8 @@ define(
return !!(!segment.deleted_at);
},
validation: {
- 'data-parsley-required': true
+ 'data-parsley-required': true,
+ 'data-parsley-required-message': 'You need to select a segment.'
}
},
{
@@ -107,8 +109,16 @@ define(
mixins: [
Router.History
],
+ componentDidMount: function() {
+ jQuery('#mailpoet_newsletter').parsley();
+ },
+ isValid: function() {
+ return jQuery('#mailpoet_newsletter').parsley().isValid();
+ },
handleSend: function() {
- if(jQuery('#mailpoet_newsletter').parsley().validate() === true) {
+ if(!this.isValid()) {
+ jQuery('#mailpoet_newsletter').parsley().validate();
+ } else {
MailPoet.Ajax.post({
endpoint: 'sendingQueue',
action: 'add',
@@ -132,9 +142,7 @@ define(
);
} else {
if(response.errors) {
- MailPoet.Notice.error(
- response.errors.join("
")
- );
+ MailPoet.Notice.error(response.errors);
} else {
MailPoet.Notice.error(
'An error occurred while trying to send. '+
@@ -144,6 +152,7 @@ define(
}
}.bind(this));
}
+ return false;
},
render: function() {
return (
@@ -158,6 +167,7 @@ define(
fields={ fields }
params={ this.props.params }
messages={ messages }
+ isValid={ this.isValid }
>