diff --git a/src/dom_components/index.js b/src/dom_components/index.js index e80a3280f..3dd70903f 100644 --- a/src/dom_components/index.js +++ b/src/dom_components/index.js @@ -68,7 +68,6 @@ import ComponentTextNodeView from './view/ComponentTextNodeView'; import ComponentText from './model/ComponentText'; import ComponentTextView from './view/ComponentTextView'; import ComponentWrapper from './model/ComponentWrapper'; -import { evPageSelect } from 'pages'; export default () => { var c = {}; @@ -250,14 +249,6 @@ export default () => { em.listenTo(selected, 'remove', (sel, c, opts) => this.selectRemove(sel, opts) ); - em.on(evPageSelect, page => { - const wrp = page.getMainFrame().getComponent(); - console.log('selected page', page.attributes, 'UM inited', wrp.__um); - if (!wrp.__um) { - wrp.__um = 1; - this.handleChanges(wrp, null, { avoidStore: 1 }); - } - }); } if (em.get('hasPages')) { @@ -319,9 +310,7 @@ export default () => { * @private */ postLoad(em) { - const wrp = this.getWrapper(); - this.handleChanges(wrp, null, { avoidStore: 1 }); - wrp.__um = 1; + this.handleChanges(this.getWrapper(), null, { avoidStore: 1 }); }, /** diff --git a/src/pages/index.js b/src/pages/index.js index cf51ed128..d0f460f1c 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -103,8 +103,6 @@ export default () => { const { em, selected } = this; const page = isString(pg) ? this.get(pg) : pg; this.selected = page; - const um = em.get('UndoManager'); - um && um.select(page.id, { ...opts, create: 1 }); !opts.silent && em.trigger(evPageSelect, page, selected); return this; }, diff --git a/src/undo_manager/index.js b/src/undo_manager/index.js index 133a0f27b..52018293c 100644 --- a/src/undo_manager/index.js +++ b/src/undo_manager/index.js @@ -26,12 +26,9 @@ import UndoManager from 'backbone-undo'; -export const evPfx = 'um:'; -export const evSelect = `${evPfx}select`; -const typeMain = 'main'; - export default () => { let em; + let um; let config; let beforeCache; const configDef = { @@ -51,16 +48,7 @@ export default () => { config = { ...opts, ...configDef }; em = config.em; this.em = em; - const umObj = { id: typeMain, um: this._createInst(config) }; - this.all = [umObj]; - this.select(typeMain, { silent: 1 }); - - return this; - }, - - _createInst(conf) { - const { em } = this; - const um = new UndoManager({ track: true, register: [], ...conf }); + um = new UndoManager({ track: true, register: [], ...config }); um.changeUndoType('change', { condition: false }); um.changeUndoType('add', { on(model, collection, options = {}) { @@ -117,51 +105,7 @@ export default () => { ); ['undo', 'redo'].forEach(ev => um.on(ev, () => em.trigger(ev))); - return um; - }, - - /** - * Get all undo instances (eg. from all pages) - */ - getAll() { - return this.all; - }, - - /** - * Get undo instance by id - */ - getInst(id) { - return this.getAll().filter(i => i.id === id)[0]; - }, - - addInst(id, um, opts = {}) { - let result = this.getInst(id); - if (!result) { - result = { id, um }; - this.getAll().push(result); - } - return result; - }, - - select(id, opts = {}) { - const { selected } = this; - let inst = this.getInst(id); - - if (opts.main) { - inst = this.getInst(typeMain); - inst.id = id; - } else if (!inst && opts.create) { - inst = this.addInst(id, this._createInst(config), opts); - } - selected && selected.um.stopTracking(); - this.selected = inst; - inst && inst.um.startTracking(); - !opts.silent && this.em.trigger(evSelect, inst, selected); - return inst; - }, - - getSelected() { - return this.selected; + return this; }, /** @@ -184,7 +128,7 @@ export default () => { * um.add(someModelOrCollection); */ add(entity) { - this._um().register(entity); + um.register(entity); return this; }, @@ -196,7 +140,7 @@ export default () => { * um.remove(someModelOrCollection); */ remove(entity) { - this._um().unregister(entity); + um.unregister(entity); return this; }, @@ -207,7 +151,7 @@ export default () => { * um.removeAll(); */ removeAll() { - this._um().unregisterAll(); + um.unregisterAll(); return this; }, @@ -218,7 +162,7 @@ export default () => { * um.start(); */ start() { - this._um().startTracking(); + um.startTracking(); return this; }, @@ -229,7 +173,7 @@ export default () => { * um.stop(); */ stop() { - this._um().stopTracking(); + um.stopTracking(); return this; }, @@ -240,7 +184,7 @@ export default () => { * um.undo(); */ undo(all = true) { - !em.isEditing() && this._um().undo(all); + !em.isEditing() && um.undo(all); return this; }, @@ -251,7 +195,7 @@ export default () => { * um.undoAll(); */ undoAll() { - this._um().undoAll(); + um.undoAll(); return this; }, @@ -262,7 +206,7 @@ export default () => { * um.redo(); */ redo(all = true) { - !em.isEditing() && this._um().redo(all); + !em.isEditing() && um.redo(all); return this; }, @@ -273,7 +217,7 @@ export default () => { * um.redoAll(); */ redoAll() { - this._um().redoAll(); + um.redoAll(); return this; }, @@ -284,7 +228,7 @@ export default () => { * um.hasUndo(); */ hasUndo() { - return this._um().isAvailable('undo'); + return um.isAvailable('undo'); }, /** @@ -294,7 +238,7 @@ export default () => { * um.hasRedo(); */ hasRedo() { - return this._um().isAvailable('redo'); + return um.isAvailable('redo'); }, /** @@ -305,7 +249,7 @@ export default () => { * stack.each(item => ...); */ getStack() { - return this._um().stack; + return um.stack; }, /** @@ -344,22 +288,17 @@ export default () => { * um.clear(); */ clear() { - this._um().clear(); + um.clear(); return this; }, - _um() { - return this.getInstance(); - }, - getInstance() { - return this.getSelected().um; + return um; }, destroy() { this.clear().removeAll(); - [em, config, beforeCache].forEach(i => (i = {})); - ['all', 'selected'].forEach(i => (this[i] = {})); + [em, um, config, beforeCache].forEach(i => (i = {})); this.em = {}; } };