[PATCH aeolus-conductor] Enable ajax update via backbone on /deployables/:id

Petr Blaho pblaho at redhat.com
Mon Mar 5 19:55:42 UTC 2012


https://bugzilla.redhat.com/show_bug.cgi?id=788719
---
 src/public/javascripts/backbone/models.js  |    7 ++++++-
 src/public/javascripts/backbone/routers.js |   17 +++++++++++++++--
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/src/public/javascripts/backbone/models.js b/src/public/javascripts/backbone/models.js
index 93c9114..1d1c54b 100644
--- a/src/public/javascripts/backbone/models.js
+++ b/src/public/javascripts/backbone/models.js
@@ -39,7 +39,12 @@ Conductor.Models.Deployable = Backbone.Model.extend({
   },
 
   url: function() {
-    return Conductor.prefixedPath('/catalogs/' + this.catalog_id + '/deployables/' + this.id);;
+    if( this.catalog_id == null ){
+      return Conductor.prefixedPath('/deployables/' + this.id);
+    }
+    else{
+      return Conductor.prefixedPath('/catalogs/' + this.catalog_id + '/deployables/' + this.id);
+    }
   }
 });
 
diff --git a/src/public/javascripts/backbone/routers.js b/src/public/javascripts/backbone/routers.js
index 381cdee..94bed1f 100644
--- a/src/public/javascripts/backbone/routers.js
+++ b/src/public/javascripts/backbone/routers.js
@@ -76,10 +76,23 @@ Conductor.Routers.Deployments = Backbone.Router.extend({
 
 Conductor.Routers.Deployables = Backbone.Router.extend({
   routes: {
-    'catalogs/:catalog_id/deployables/:id': 'show'
+    'catalogs/:catalog_id/deployables/:id': 'show_nested',
+    'deployables/:id': 'show'
   },
 
-  show: function(catalog_id, id) {
+  show: function(id) {
+    id = Conductor.idFromURLFragment(id);
+
+    if(! _.isNumber(id) ) return;
+
+    setInterval(function() {
+      var deployable = new Conductor.Models.Deployable({ id: id });
+      var view = new Conductor.Views.DeployablesShow({ model: deployable });
+      deployable.fetch({ success: function() { view.render(); } })
+    }, Conductor.AJAX_REFRESH_INTERVAL);
+  },
+
+  show_nested: function(catalog_id, id) {
     id = Conductor.idFromURLFragment(id);
     var catalogId = Conductor.idFromURLFragment(catalog_id);
 
-- 
1.7.7.6




More information about the aeolus-devel mailing list