diff --git a/assets/js/src/newsletters/templates.jsx b/assets/js/src/newsletters/templates.jsx index f412ea4302..6f9c771a57 100644 --- a/assets/js/src/newsletters/templates.jsx +++ b/assets/js/src/newsletters/templates.jsx @@ -13,6 +13,52 @@ define( classNames, Breadcrumb ) { + + var ImportTemplate = React.createClass({ + saveTemplate: function(template) { + MailPoet.Ajax.post({ + endpoint: 'newsletterTemplates', + action: 'save', + data: template + }).done(function(response) { + if(response === true) { + this.props.onImport(template); + } else { + response.map(function(error) { + MailPoet.Notice.error(error); + }); + } + }.bind(this)); + }, + handleSubmit: function(e) { + e.preventDefault(); + + var reader = new FileReader(), + saveTemplate = this.saveTemplate; + reader.onload = function(e) { + saveTemplate(JSON.parse(e.target.result)); + }.bind(this); + reader.readAsText(this.refs.templateFile.files[0]); + }, + render: function() { + return ( +
+

Import a template

+
+ + +

+ +

+
+
+ ); + }, + }); + var NewsletterTemplates = React.createClass({ mixins: [ Router.History @@ -93,6 +139,9 @@ define( this.setState({ loading: false }); } }, + handleTemplateImport: function() { + this.getTemplates(); + }, render: function() { var templates = this.state.templates.map(function(template, index) { var deleteLink = ( @@ -152,6 +201,8 @@ define( + + ); }