Move newsletter content attributes into data object

This commit is contained in:
Tautvidas Sipavičius
2015-09-24 19:49:56 +03:00
parent 38fb33d2eb
commit d7029f3d29
4 changed files with 1104 additions and 1096 deletions

View File

@ -11,7 +11,7 @@ define([
// Does not hold newsletter content nor newsletter styles, those are // Does not hold newsletter content nor newsletter styles, those are
// handled by other components. // handled by other components.
Module.NewsletterModel = SuperModel.extend({ Module.NewsletterModel = SuperModel.extend({
stale: ['content', 'globalStyles'], stale: ['data'],
initialize: function(options) { initialize: function(options) {
this.on('change', function() { this.on('change', function() {
App.getChannel().trigger('autoSave'); App.getChannel().trigger('autoSave');
@ -45,8 +45,10 @@ define([
Module.toJSON = function() { Module.toJSON = function() {
return _.extend({ return _.extend({
data: {
content: App._contentContainer.toJSON(), content: App._contentContainer.toJSON(),
globalStyles: App.getGlobalStyles().toJSON(), globalStyles: App.getGlobalStyles().toJSON(),
},
}, App.getNewsletter().toJSON()); }, App.getNewsletter().toJSON());
}; };
@ -62,12 +64,12 @@ define([
App.toJSON = Module.toJSON; App.toJSON = Module.toJSON;
App.getNewsletter = Module.getNewsletter; App.getNewsletter = Module.getNewsletter;
Module.newsletter = new Module.NewsletterModel(_.omit(_.clone(options.newsletter), ['content', 'globalStyles'])); Module.newsletter = new Module.NewsletterModel(_.omit(_.clone(options.newsletter), ['data']));
}); });
App.on('start', function(options) { App.on('start', function(options) {
// TODO: Other newsletter information will be needed as well. // TODO: Other newsletter information will be needed as well.
App._contentContainer = new (this.getBlockTypeModel('container'))(options.newsletter.content, {parse: true}); App._contentContainer = new (this.getBlockTypeModel('container'))(options.newsletter.data.content, {parse: true});
App._contentContainerView = new (this.getBlockTypeView('container'))({ App._contentContainerView = new (this.getBlockTypeView('container'))({
model: App._contentContainer, model: App._contentContainer,
renderOptions: { depth: 0 }, renderOptions: { depth: 0 },

View File

@ -72,7 +72,7 @@ define([
App.getAvailableStyles = Module.getAvailableStyles; App.getAvailableStyles = Module.getAvailableStyles;
this.setGlobalStyles(options.newsletter.globalStyles); this.setGlobalStyles(options.newsletter.data.globalStyles);
}); });
App.on('start', function(options) { App.on('start', function(options) {

View File

@ -9,6 +9,7 @@ define([
beforeEach(function() { beforeEach(function() {
model = new (ContentComponent.NewsletterModel)({ model = new (ContentComponent.NewsletterModel)({
data: {
globalStyles: { globalStyles: {
style1: 'style1Value', style1: 'style1Value',
style2: 'style2Value', style2: 'style2Value',
@ -17,6 +18,7 @@ define([
data1: 'data1Value', data1: 'data1Value',
data2: 'data2Value', data2: 'data2Value',
}, },
},
someField: 'someValue' someField: 'someValue'
}); });
}); });
@ -30,7 +32,7 @@ define([
mock.verify(); mock.verify();
}); });
it('does not include styles and data attributes in its JSON', function() { it('does not include styles and content attributes in its JSON', function() {
var json = model.toJSON(); var json = model.toJSON();
expect(json).to.deep.equal({someField: 'someValue'}); expect(json).to.deep.equal({someField: 'someValue'});
}); });
@ -79,8 +81,10 @@ define([
}; };
var json = ContentComponent.toJSON(); var json = ContentComponent.toJSON();
expect(json).to.deep.equal(_.extend({ expect(json).to.deep.equal(_.extend({
data: {
content: dataField, content: dataField,
globalStyles: stylesField globalStyles: stylesField
},
}, newsletterFields)); }, newsletterFields));
}); });
}); });

View File

@ -245,6 +245,7 @@
<script type="text/javascript"> <script type="text/javascript">
var newsletter = { var newsletter = {
"data": {
"content": { "content": {
"type": "container", "type": "container",
"orientation": "vertical", "orientation": "vertical",
@ -1328,6 +1329,7 @@
"backgroundColor": "#333333" "backgroundColor": "#333333"
} }
}, },
},
"subject": "Click to change the subject!", "subject": "Click to change the subject!",
"preheader": "", "preheader": "",
"id": 3, "id": 3,