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() {
|
||||
return _.extend({
|
||||
body: JSON.stringify({
|
||||
content: App._contentContainer.toJSON(),
|
||||
globalStyles: App.getGlobalStyles().toJSON(),
|
||||
}),
|
||||
body: Module.getBody(),
|
||||
}, App.getNewsletter().toJSON());
|
||||
};
|
||||
|
||||
@ -62,6 +66,7 @@ define([
|
||||
App.getBlockTypeModel = Module.getBlockTypeModel;
|
||||
App.getBlockTypeView = Module.getBlockTypeView;
|
||||
App.toJSON = Module.toJSON;
|
||||
App.getBody = Module.getBody;
|
||||
App.getNewsletter = Module.getNewsletter;
|
||||
|
||||
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({
|
||||
getTemplate: function() { return templates.save; },
|
||||
events: {
|
||||
@ -94,6 +104,15 @@ define([
|
||||
templateDescription = this.$('.mailpoet_save_as_template_description').val();
|
||||
|
||||
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();
|
||||
},
|
||||
|
@ -94,6 +94,27 @@ define([
|
||||
view.$('.mailpoet_save_show_options').click();
|
||||
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