X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/84196c824e6a337a58b9c0a00c124c5e629d02b4..8f081bf57a12544f14e278f6bfe7b4ee97f7fd84:/modules/documentCanvas/canvas/wlxmlManagers.js diff --git a/modules/documentCanvas/canvas/wlxmlManagers.js b/modules/documentCanvas/canvas/wlxmlManagers.js index 75d8c67..8973a6c 100644 --- a/modules/documentCanvas/canvas/wlxmlManagers.js +++ b/modules/documentCanvas/canvas/wlxmlManagers.js @@ -8,6 +8,8 @@ define([ var DocumentElementWrapper = function(documentElement) { + this.documentElement = documentElement; + this.addWidget = function(widget) { documentElement.dom().find('.canvas-widgets').append(widget); }; @@ -32,6 +34,13 @@ var DocumentElementWrapper = function(documentElement) { this.toggle = function(toggle) { documentElement._container().toggle(toggle); } + + var eventBus = documentElement.bound() ? documentElement.canvas.eventBus : + {trigger: function() {}}; + this.trigger = function() { + eventBus.trigger.apply(eventBus, arguments); + } + } var getDisplayStyle = function(tag, klass) { @@ -53,7 +62,11 @@ $.extend(GenericManager.prototype, { this.el.clearWidgets(); this.el.addWidget(widgets.labelWidget(this.el.tag(), this.el.klass())); + }, + toggle: function(toggle) { + this.el.toggle(toggle); } + }) var managers = { @@ -78,26 +91,29 @@ $.extend(FootnoteManager.prototype, { this.el.clearWidgets(); var clickHandler = function() { - this._toggleFootnote(true); + this.toggle(true); }.bind(this); this.footnoteHandler = widgets.footnoteHandler(clickHandler); this.el.addWidget(this.footnoteHandler); var closeHandler = function() { - this._toggleFootnote(false); + this.toggle(false); }.bind(this); this.hideButton = widgets.hideButton(closeHandler); this.el.addWidget(this.hideButton); - this._toggleFootnote(false); + this.toggle(false, {silent: true}); }, - _toggleFootnote: function(toggle) { + toggle: function(toggle, options) { + options = options || {}; this.hideButton.toggle(toggle); this.footnoteHandler.toggle(!toggle); this.el.setDisplayStyle(toggle ? 'block' : 'inline'); this.el.toggle(toggle); + if(!options.silent) + this.el.trigger('elementToggled', toggle, this.el.documentElement); } }) managers.set('aside', 'footnote', FootnoteManager);