Hook up editor call to save as template
This commit is contained in:
@ -43,12 +43,16 @@ define([
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Module.getBody = function() {
|
||||||
|
return JSON.stringify({
|
||||||
|
content: App._contentContainer.toJSON(),
|
||||||
|
globalStyles: App.getGlobalStyles().toJSON(),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Module.toJSON = function() {
|
Module.toJSON = function() {
|
||||||
return _.extend({
|
return _.extend({
|
||||||
body: JSON.stringify({
|
body: Module.getBody(),
|
||||||
content: App._contentContainer.toJSON(),
|
|
||||||
globalStyles: App.getGlobalStyles().toJSON(),
|
|
||||||
}),
|
|
||||||
}, App.getNewsletter().toJSON());
|
}, App.getNewsletter().toJSON());
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -62,6 +66,7 @@ define([
|
|||||||
App.getBlockTypeModel = Module.getBlockTypeModel;
|
App.getBlockTypeModel = Module.getBlockTypeModel;
|
||||||
App.getBlockTypeView = Module.getBlockTypeView;
|
App.getBlockTypeView = Module.getBlockTypeView;
|
||||||
App.toJSON = Module.toJSON;
|
App.toJSON = Module.toJSON;
|
||||||
|
App.getBody = Module.getBody;
|
||||||
App.getNewsletter = Module.getNewsletter;
|
App.getNewsletter = Module.getNewsletter;
|
||||||
|
|
||||||
Module.newsletter = new Module.NewsletterModel(_.omit(_.clone(options.newsletter), ['body']));
|
Module.newsletter = new Module.NewsletterModel(_.omit(_.clone(options.newsletter), ['body']));
|
||||||
|
@ -42,6 +42,16 @@ define([
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Module.saveTemplate = function(options) {
|
||||||
|
return MailPoet.Ajax.post({
|
||||||
|
endpoint: 'newsletterTemplates',
|
||||||
|
action: 'save',
|
||||||
|
data: _.extend(options || {}, {
|
||||||
|
body: App.getBody(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Module.SaveView = Marionette.LayoutView.extend({
|
Module.SaveView = Marionette.LayoutView.extend({
|
||||||
getTemplate: function() { return templates.save; },
|
getTemplate: function() { return templates.save; },
|
||||||
events: {
|
events: {
|
||||||
@ -94,6 +104,15 @@ define([
|
|||||||
templateDescription = this.$('.mailpoet_save_as_template_description').val();
|
templateDescription = this.$('.mailpoet_save_as_template_description').val();
|
||||||
|
|
||||||
console.log('Saving template with ', templateName, templateDescription);
|
console.log('Saving template with ', templateName, templateDescription);
|
||||||
|
Module.saveTemplate({
|
||||||
|
name: templateName,
|
||||||
|
description: templateDescription,
|
||||||
|
}).done(function() {
|
||||||
|
console.log('Template saved', arguments);
|
||||||
|
}).fail(function() {
|
||||||
|
// TODO: Handle error messages
|
||||||
|
console.log('Template save failed', arguments);
|
||||||
|
});
|
||||||
|
|
||||||
this.hideOptionContents();
|
this.hideOptionContents();
|
||||||
},
|
},
|
||||||
|
@ -94,6 +94,27 @@ define([
|
|||||||
view.$('.mailpoet_save_show_options').click();
|
view.$('.mailpoet_save_show_options').click();
|
||||||
expect(view.$('.mailpoet_save_options')).to.not.have.$class('mailpoet_hidden');
|
expect(view.$('.mailpoet_save_options')).to.not.have.$class('mailpoet_hidden');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers template saving when clicked on save as template button', function() {
|
||||||
|
var mock = sinon.mock({ post: function() {} }).expects('post').once().returns(jQuery.Deferred());
|
||||||
|
EditorApplication.getBody = sinon.stub();
|
||||||
|
var module = SaveInjector({
|
||||||
|
'mailpoet': {
|
||||||
|
Ajax: {
|
||||||
|
post: mock,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'newsletter_editor/App': EditorApplication,
|
||||||
|
});
|
||||||
|
var view = new (module.SaveView)();
|
||||||
|
view.render();
|
||||||
|
|
||||||
|
view.$('.mailpoet_save_as_template_name').val('A sample template');
|
||||||
|
view.$('.mailpoet_save_as_template_description').val('Sample template description');
|
||||||
|
view.$('.mailpoet_save_as_template').click();
|
||||||
|
|
||||||
|
mock.verify();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user