You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2013/09/09 11:53:35 UTC
[15/50] [abbrv] git commit: updated refs/heads/1867-feature-plugins
to 8aad450
Fauxton: fix establish and error notification issue
I've implemented a clean of an old route object's views as it seemed
that if an error occurs on the establish of a route object not all
the views were getting garbage collected.
fixes #COUCHDB-1873
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/1cf16128
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/1cf16128
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/1cf16128
Branch: refs/heads/1867-feature-plugins
Commit: 1cf161285555a0d7f7d2a5a64e398dd9d071d710
Parents: 5962904
Author: Garren Smith <ga...@gmail.com>
Authored: Wed Aug 21 11:04:26 2013 +0200
Committer: Jan Lehnardt <ja...@apache.org>
Committed: Mon Sep 9 11:16:43 2013 +0200
----------------------------------------------------------------------
src/fauxton/app/api.js | 18 +++++++++++++++---
src/fauxton/app/router.js | 5 ++++-
2 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/1cf16128/src/fauxton/app/api.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/api.js b/src/fauxton/app/api.js
index 0a2351d..5cf59a2 100644
--- a/src/fauxton/app/api.js
+++ b/src/fauxton/app/api.js
@@ -295,7 +295,7 @@ function(app, Fauxton) {
$('.spinner').append(routeObjectSpinner.el);
}
- FauxtonAPI.when(this.establish()).done(function(resp) {
+ FauxtonAPI.when(this.establish()).then(function(resp) {
_.each(routeObject.getViews(), function(view, selector) {
if(view.hasRendered) { return; }
@@ -336,7 +336,7 @@ function(app, Fauxton) {
};
FauxtonAPI.addNotification({
- msg: 'An Error occurred ' + resp,
+ msg: 'An Error occurred ' + resp.responseText,
type: 'error'
});
masterLayout.renderView(selector);
@@ -351,7 +351,12 @@ function(app, Fauxton) {
}
});
});
- }.bind(this));
+ }.bind(this), function (resp) {
+ FauxtonAPI.addNotification({
+ msg: 'An Error occurred ' + resp.responseText,
+ type: 'error'
+ });
+ });
if (this.get('apiUrl')) masterLayout.apiBar.update(this.get('apiUrl'));
@@ -394,6 +399,13 @@ function(app, Fauxton) {
return this.views;
},
+ removeViews: function () {
+ _.each(this.views, function (view, selector) {
+ view.remove();
+ delete this.views[selector];
+ }, this);
+ },
+
getRouteUrls: function () {
return _.keys(this.get('routes'));
},
http://git-wip-us.apache.org/repos/asf/couchdb/blob/1cf16128/src/fauxton/app/router.js
----------------------------------------------------------------------
diff --git a/src/fauxton/app/router.js b/src/fauxton/app/router.js
index c12d951..509cff4 100644
--- a/src/fauxton/app/router.js
+++ b/src/fauxton/app/router.js
@@ -51,7 +51,7 @@ function(req, app, Initialize, FauxtonAPI, Fauxton, Layout, Databases, Documents
routes: {},
addModuleRouteObject: function(RouteObject) {
- var that = this; //change that to that
+ var that = this;
var masterLayout = this.masterLayout,
routeUrls = RouteObject.prototype.getRouteUrls();
@@ -63,6 +63,9 @@ function(req, app, Initialize, FauxtonAPI, Fauxton, Layout, Databases, Documents
authPromise.then(function () {
if (!that.activeRouteObject || !that.activeRouteObject.hasRoute(route)) {
+ if (that.activeRouteObject) {
+ that.activeRouteObject.removeViews();
+ }
that.activeRouteObject = new RouteObject(route, masterLayout, args);
}