remove extension
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/0e8b9c9a Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/0e8b9c9a Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/0e8b9c9a Branch: refs/heads/fauxton-file-reorder Commit: 0e8b9c9a4cce99281d7e476195a6048e8bb06df7 Parents: 562ebae Author: Garren Smith <[email protected]> Authored: Tue Jan 21 15:18:45 2014 +0200 Committer: Garren Smith <[email protected]> Committed: Mon Jan 27 08:41:31 2014 +0200 ---------------------------------------------------------------------- src/fauxton/app/addons/fauxton/base.js | 1 + src/fauxton/app/app.js | 8 +++++++- src/fauxton/app/core/base.js | 25 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/0e8b9c9a/src/fauxton/app/addons/fauxton/base.js ---------------------------------------------------------------------- diff --git a/src/fauxton/app/addons/fauxton/base.js b/src/fauxton/app/addons/fauxton/base.js index 2fee680..b42188e 100644 --- a/src/fauxton/app/addons/fauxton/base.js +++ b/src/fauxton/app/addons/fauxton/base.js @@ -137,6 +137,7 @@ function(app, FauxtonAPI, resizeColumns) { this.resizeColumns.onResizeHandler(); FauxtonAPI.extensions.on('add:navbar:addHeaderLink', this.addLink); + FauxtonAPI.extensions.on('removeItem:navbar:addHeaderLink', this.removeLink); }, serialize: function() { http://git-wip-us.apache.org/repos/asf/couchdb/blob/0e8b9c9a/src/fauxton/app/app.js ---------------------------------------------------------------------- diff --git a/src/fauxton/app/app.js b/src/fauxton/app/app.js index 74980ea..3ec2c99 100644 --- a/src/fauxton/app/app.js +++ b/src/fauxton/app/app.js @@ -97,7 +97,13 @@ function(app, $, _, Backbone, Bootstrap, Helpers, Utils, FauxtonAPI, Couchdb) { }, removeHeaderLink: function(link) { - // TODO add remove to extensions + FauxtonAPI.removeExtensionItem('navbar:addHeaderLink', link, function (item) { + if (item.title === link.title) { + return true; + } + + return false; + }); } }); http://git-wip-us.apache.org/repos/asf/couchdb/blob/0e8b9c9a/src/fauxton/app/core/base.js ---------------------------------------------------------------------- diff --git a/src/fauxton/app/core/base.js b/src/fauxton/app/core/base.js index e98bdf8..55a8d87 100644 --- a/src/fauxton/app/core/base.js +++ b/src/fauxton/app/core/base.js @@ -90,6 +90,14 @@ function(Backbone) { extensions[name].push(view); }; + FauxtonAPI.unRegisterExtension = function (name) { + var views = extensions[name]; + + if (!views) { return; } + extensions.trigger('remove:' + name, views); + delete extensions[name]; + }; + FauxtonAPI.getExtensions = function (name) { var views = extensions[name]; @@ -100,6 +108,23 @@ function(Backbone) { return views; }; + FauxtonAPI.removeExtensionItem = function (name, view, cb) { + var views = extensions[name]; + if (!views) { return; } + + var _cb = arguments[arguments.length -1]; + if (_.isObject(view) && !cb) { + _cb = function (item) { return _.isEqual(item, view);}; + } + + views = _.filter(views, function (item) { + return !_cb(item); + }); + + extensions[name] = views; + extensions.trigger('removeItem:' + name, view); + }; + FauxtonAPI.extensions = extensions; FauxtonAPI.setSession = function (newSession) {
