diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index 31a61390a..452a82d95 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -1,4 +1,11 @@ -import { isUndefined, defaults, isArray, contains, toArray } from 'underscore'; +import { + isUndefined, + defaults, + isArray, + contains, + toArray, + keys +} from 'underscore'; import { getModel } from 'utils/mixins'; const deps = [ @@ -34,6 +41,12 @@ require('utils/extender')({ }); const $ = Backbone.$; +const logs = { + debug: console.log, + info: console.info, + warning: console.warn, + error: console.error +}; module.exports = Backbone.Model.extend({ defaults() { @@ -61,6 +74,7 @@ module.exports = Backbone.Model.extend({ this.set('storables', []); const el = c.el; const log = c.log; + const toLog = log === true ? keys(logs) : isArray(log) ? log : []; if (el && c.fromElement) this.config.components = el.innerHTML; this.attrsOrig = el @@ -74,13 +88,7 @@ module.exports = Backbone.Model.extend({ deps.forEach(name => this.loadModule(name)); this.on('change:componentHovered', this.componentHovered, this); this.on('change:changesCount', this.updateChanges, this); - - if (log === true) { - this.listenTo(this, 'log:debug', console.log); - this.listenTo(this, 'log:info', console.info); - this.listenTo(this, 'log:warning', console.warn); - this.listenTo(this, 'log:error', console.error); - } + toLog.forEach(e => this.listenLog(e)); // Deprecations [{ from: 'change:selectedComponent', to: 'component:toggled' }].forEach( @@ -89,7 +97,7 @@ module.exports = Backbone.Model.extend({ const eventTo = event.to; this.listenTo(this, eventFrom, (...args) => { this.trigger(eventTo, ...args); - console.warn( + this.logWarning( `The event '${eventFrom}' is deprecated, replace it with '${eventTo}'` ); }); @@ -97,6 +105,10 @@ module.exports = Backbone.Model.extend({ ); }, + listenLog(event) { + this.listenTo(this, `log:${event}`, logs[event]); + }, + /** * Get configurations * @param {string} [prop] Property name