Files
piratepoet/assets/js/src/newsletter_editor/components/styles.js
Pavel Dohnal 699017532e Fix func-names rule in es5
Please remove those comments if you work on those files
[MAILPOET-1143]
2018-01-08 14:56:00 +00:00

93 lines
2.6 KiB
JavaScript

'use strict';
define([
'newsletter_editor/App',
'backbone.marionette',
'backbone.supermodel',
'underscore'
], function (App, Marionette, SuperModel, _) { // eslint-disable-line func-names
var Module = {};
Module.StylesModel = SuperModel.extend({
defaults: {
text: {
fontColor: '#000000',
fontFamily: 'Arial',
fontSize: '16px'
},
h1: {
fontColor: '#111111',
fontFamily: 'Arial',
fontSize: '40px'
},
h2: {
fontColor: '#222222',
fontFamily: 'Tahoma',
fontSize: '32px'
},
h3: {
fontColor: '#333333',
fontFamily: 'Verdana',
fontSize: '24px'
},
link: {
fontColor: '#21759B',
textDecoration: 'underline'
},
wrapper: {
backgroundColor: '#ffffff'
},
body: {
backgroundColor: '#cccccc'
}
},
initialize: function () { // eslint-disable-line func-names
this.on('change', function () { App.getChannel().trigger('autoSave'); }); // eslint-disable-line func-names
}
});
Module.StylesView = Marionette.View.extend({
getTemplate: function () { return window.templates.styles; }, // eslint-disable-line func-names
modelEvents: {
change: 'render'
},
serializeData: function () { // eslint-disable-line func-names
return this.model.toJSON();
}
});
Module._globalStyles = new SuperModel();
Module.getGlobalStyles = function () { // eslint-disable-line func-names
return Module._globalStyles;
};
Module.setGlobalStyles = function (options) { // eslint-disable-line func-names
Module._globalStyles = new Module.StylesModel(options);
return Module._globalStyles;
};
Module.getAvailableStyles = function () { // eslint-disable-line func-names
return App.getConfig().get('availableStyles');
};
App.on('before:start', function (BeforeStartApp, options) { // eslint-disable-line func-names
var Application = BeforeStartApp;
var body;
var globalStyles;
// Expose style methods to global application
Application.getGlobalStyles = Module.getGlobalStyles;
Application.setGlobalStyles = Module.setGlobalStyles;
Application.getAvailableStyles = Module.getAvailableStyles;
body = options.newsletter.body;
globalStyles = (_.has(body, 'globalStyles')) ? body.globalStyles : {};
this.setGlobalStyles(globalStyles);
});
App.on('start', function (StartApp) { // eslint-disable-line func-names
var stylesView = new Module.StylesView({ model: StartApp.getGlobalStyles() });
StartApp._appView.showChildView('stylesRegion', stylesView);
});
return Module;
});