On 08/22/2011 04:52 PM, tsedovic(a)redhat.com wrote:
From: Tomas Sedovic<tsedovic(a)redhat.com>
Our Backbone routes used to match URLs such as /deployments/new to the `show`
action.
Now they match only if the ':id' part of the URL is a number.
---
src/public/javascripts/application.js | 2 +-
src/public/javascripts/backbone/routers.js | 5 +++++
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/public/javascripts/application.js
b/src/public/javascripts/application.js
index 11e2413..b74937c 100644
--- a/src/public/javascripts/application.js
+++ b/src/public/javascripts/application.js
@@ -197,7 +197,7 @@ $.extend(Conductor, {
},
idFromURLFragment: function(urlFragment) {
- return urlFragment.split('?')[0];
+ return parseInt(urlFragment.split('?')[0]);
},
saveCheckboxes: function(checkboxSelector, $scope) {
diff --git a/src/public/javascripts/backbone/routers.js
b/src/public/javascripts/backbone/routers.js
index ead13ab..46c7f71 100644
--- a/src/public/javascripts/backbone/routers.js
+++ b/src/public/javascripts/backbone/routers.js
@@ -12,6 +12,9 @@ Conductor.Routers.Pools = Backbone.Router.extend({
},
show: function(id) {
+ id = Conductor.idFromURLFragment(id);
+ if(! _.isNumber(id)) return;
+
var pool = new Conductor.Models.Pool({ id: id });
var view = new Conductor.Views.PoolsShow({ model: pool });
pool.bind('change', function() { view.render() });
@@ -32,6 +35,8 @@ Conductor.Routers.Deployments = Backbone.Router.extend({
show: function(id) {
id = Conductor.idFromURLFragment(id);
+ if(! _.isNumber(id)) return;
+
var deployment = new Conductor.Models.Deployment({ id: id });
var view = new Conductor.Views.DeploymentsShow({ model: deployment,
collection: deployment.instances });
ACK - This removes most of unneeded requests. Though there are still
some unneeded requests for example when a user is on the pool show page
and switches to 'Properties' tab - Backbone continues sending ajax
requests on list of instances. I'm not very familiar with Backbone yet,
so not sure how difficult it is not get rid of this (if it even makes sense)
Jan