diff --git a/docs/installguide/install_all.rst b/docs/installguide/install_all.rst index 68b6b4e747..65feb391dc 100644 --- a/docs/installguide/install_all.rst +++ b/docs/installguide/install_all.rst @@ -7,9 +7,8 @@ Windows Installation Mac Installation ================ -1. Download the KA Lite `OSX installer `_. - -.. warning:: Dear maintainers, please update this link. +1. Download the KA Lite `OSX installer `_. +2. After the download is complete, double click the .dmg file and follow the window for installation. Linux: Debian/Ubuntu Installation ================================= diff --git a/python-packages/fle_utils/backbone/static/js/backbone/backbone-helpers.js b/python-packages/fle_utils/backbone/static/js/backbone/backbone-helpers.js index e9243dd1c9..83741d783a 100644 --- a/python-packages/fle_utils/backbone/static/js/backbone/backbone-helpers.js +++ b/python-packages/fle_utils/backbone/static/js/backbone/backbone-helpers.js @@ -124,6 +124,15 @@ window.BaseView = Backbone.View.extend({ }, remove: function() { + + // make sure we never end up removing the same view twice, in case there's weird circularity + if (this._removed) return; + this._removed = true; + + // remove this view using the default Backbone code, which removes the DOM element + Backbone.View.prototype.remove.call(this); + + // recursively remove this view's subviews, to avoid detached views with zombie listeners if (this.subviews!==undefined) { for (i=0; i < this.subviews.length; i++) { if (_.isFunction(this.subviews[i].close)) { @@ -133,6 +142,5 @@ window.BaseView = Backbone.View.extend({ } } } - Backbone.View.prototype.remove.call(this); } });