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 });
--
1.7.6