Validate from address on form submit
This commit is contained in:
committed by
Jack Kitterhing
parent
a171aa69da
commit
486ef4fe67
@@ -35,15 +35,12 @@ class NewsletterSend extends React.Component {
|
|||||||
item: {},
|
item: {},
|
||||||
loading: true,
|
loading: true,
|
||||||
thumbnailPromise: null,
|
thumbnailPromise: null,
|
||||||
authorizedEmailAddresses: [],
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
jQuery.when(
|
this.loadItem(this.props.match.params.id)
|
||||||
this.loadItem(this.props.match.params.id),
|
.always(() => {
|
||||||
this.loadAuthorizedEmailAddresses()
|
|
||||||
).always(() => {
|
|
||||||
this.setState({ loading: false });
|
this.setState({ loading: false });
|
||||||
});
|
});
|
||||||
jQuery('#mailpoet_newsletter').parsley();
|
jQuery('#mailpoet_newsletter').parsley();
|
||||||
@@ -81,13 +78,14 @@ class NewsletterSend extends React.Component {
|
|||||||
|
|
||||||
isValid = () => jQuery('#mailpoet_newsletter').parsley().isValid();
|
isValid = () => jQuery('#mailpoet_newsletter').parsley().isValid();
|
||||||
|
|
||||||
isValidFromAddress = () => {
|
isValidFromAddress = async () => {
|
||||||
const fromAddress = this.state.item.sender_address;
|
|
||||||
if (window.mailpoet_mta_method !== 'MailPoet') {
|
if (window.mailpoet_mta_method !== 'MailPoet') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return this.state.authorizedEmailAddresses.indexOf(fromAddress) !== -1;
|
const addresses = await this.loadAuthorizedEmailAddresses();
|
||||||
};
|
const fromAddress = this.state.item.sender_address;
|
||||||
|
return addresses.indexOf(fromAddress) !== -1;
|
||||||
|
}
|
||||||
|
|
||||||
showInvalidFromAddressError = () => {
|
showInvalidFromAddressError = () => {
|
||||||
let errorMessage = ReactStringReplace(
|
let errorMessage = ReactStringReplace(
|
||||||
@@ -170,17 +168,16 @@ class NewsletterSend extends React.Component {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
loadAuthorizedEmailAddresses = () => {
|
loadAuthorizedEmailAddresses = async () => {
|
||||||
if (window.mailpoet_mta_method !== 'MailPoet') {
|
if (window.mailpoet_mta_method !== 'MailPoet') {
|
||||||
return jQuery.Deferred().resolve();
|
return [];
|
||||||
}
|
}
|
||||||
return MailPoet.Ajax.post({
|
const response = await MailPoet.Ajax.post({
|
||||||
api_version: window.mailpoet_api_version,
|
api_version: window.mailpoet_api_version,
|
||||||
endpoint: 'mailer',
|
endpoint: 'mailer',
|
||||||
action: 'getAuthorizedEmailAddresses',
|
action: 'getAuthorizedEmailAddresses',
|
||||||
}).done((response) => {
|
|
||||||
this.setState({ authorizedEmailAddresses: response.data || [] });
|
|
||||||
});
|
});
|
||||||
|
return response.data || [];
|
||||||
};
|
};
|
||||||
|
|
||||||
handleSend = (e) => {
|
handleSend = (e) => {
|
||||||
@@ -191,12 +188,13 @@ class NewsletterSend extends React.Component {
|
|||||||
return jQuery('#mailpoet_newsletter').parsley().validate();
|
return jQuery('#mailpoet_newsletter').parsley().validate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.isValidFromAddress()) {
|
|
||||||
return this.showInvalidFromAddressError();
|
|
||||||
}
|
|
||||||
|
|
||||||
MailPoet.Modal.loading(true);
|
MailPoet.Modal.loading(true);
|
||||||
|
|
||||||
|
return this.isValidFromAddress().then((valid) => {
|
||||||
|
if (!valid) {
|
||||||
|
this.showInvalidFromAddressError();
|
||||||
|
return MailPoet.Modal.loading(false);
|
||||||
|
}
|
||||||
return this.saveNewsletter(e).done(() => {
|
return this.saveNewsletter(e).done(() => {
|
||||||
this.setState({ loading: true });
|
this.setState({ loading: true });
|
||||||
})
|
})
|
||||||
@@ -214,6 +212,7 @@ class NewsletterSend extends React.Component {
|
|||||||
this.setState({ loading: false });
|
this.setState({ loading: false });
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.Modal.loading(false);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
sendNewsletter = newsletter => MailPoet.Ajax.post(
|
sendNewsletter = newsletter => MailPoet.Ajax.post(
|
||||||
|
Reference in New Issue
Block a user