On 01/31/2012 04:26 PM, ifarkas@redhat.com wrote:
From: Imre Farkasifarkas@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=781579
src/app/controllers/deployables_controller.rb | 8 ++++++ src/app/views/deployables/show.html.haml | 33 +++++++++++++++++++++++++ src/public/javascripts/backbone/models.js | 10 +++++++ src/public/javascripts/backbone/routers.js | 19 ++++++++++++++ src/public/javascripts/backbone/views.js | 13 +++++++++- 5 files changed, 82 insertions(+), 1 deletions(-)
diff --git a/src/app/controllers/deployables_controller.rb b/src/app/controllers/deployables_controller.rb index 2acc259..5090e81 100644 --- a/src/app/controllers/deployables_controller.rb +++ b/src/app/controllers/deployables_controller.rb @@ -98,6 +98,14 @@ class DeployablesController< ApplicationController :status => status, } end
respond_to do |format|
format.html
format.json do
render :json => { :build_results => @build_results }
end
end
end
def definition
diff --git a/src/app/views/deployables/show.html.haml b/src/app/views/deployables/show.html.haml index 8d311e5..4e35572 100644 --- a/src/app/views/deployables/show.html.haml +++ b/src/app/views/deployables/show.html.haml @@ -106,3 +106,36 @@ %h2.roles= t('role_assignments') .content = render :partial => 'permissions/permissions'
+%script#deployableBuildsTemplate{ :type => 'text/x-jquery-tmpl' }
- :plain
- {{each(provider_type, results) build_results}}
{{each(index, result) results}}
+<li> +<div class="summary"> +<div class="info"> +<h2>${provider_type}</h2> +<span>${result['provider']}</span>
|
+<span>${result['account']}</span> +</div> +<div class="controls"> +<div class="build_status">
{{if result['status'] == 'not_built'}}
+<span>#{t('deployables.show.build_statuses_descriptions.not_built')}</span>
{{else result['status'] == 'building'}}
+<span>#{t('deployables.show.build_statuses_descriptions.building')}</span>
{{else result['status'] == 'not_pushed'}}
+<span>#{t('deployables.show.build_statuses_descriptions.not_pushed')}</span>
{{else result['status'] == 'pushing'}}
+<span>#{t('deployables.show.build_statuses_descriptions.pushing')}</span>
{{else result['status'] == 'pushed'}}
+<span>#{t('deployables.show.build_statuses_descriptions.pushed')}</span>
{{/if}}
+<div class="build_status_icon ${result['status']}"></div> +</div> +</div> +</div> +</li>
{{/each}}
- {{/each}}
diff --git a/src/public/javascripts/backbone/models.js b/src/public/javascripts/backbone/models.js index e6e81fa..93c9114 100644 --- a/src/public/javascripts/backbone/models.js +++ b/src/public/javascripts/backbone/models.js @@ -33,6 +33,16 @@ Conductor.Models.Instances = Backbone.Collection.extend({ } });
+Conductor.Models.Deployable = Backbone.Model.extend({
- initialize: function(options) {
- this.catalog_id = options['catalog_id']
- },
- url: function() {
- return Conductor.prefixedPath('/catalogs/' + this.catalog_id + '/deployables/' + this.id);;
- }
+});
- Conductor.Models.Deployment = Backbone.Model.extend({ urlRoot: Conductor.prefixedPath('/deployments'),
diff --git a/src/public/javascripts/backbone/routers.js b/src/public/javascripts/backbone/routers.js index d2f0123..2e17348 100644 --- a/src/public/javascripts/backbone/routers.js +++ b/src/public/javascripts/backbone/routers.js @@ -86,6 +86,25 @@ Conductor.Routers.Deployments = Backbone.Router.extend({ } });
+Conductor.Routers.Deployables = Backbone.Router.extend({
- routes: {
- 'catalogs/:catalog_id/deployables/:id': 'show'
- },
- show: function(catalog_id, id) {
- id = Conductor.idFromURLFragment(id);
- var catalogId = Conductor.idFromURLFragment(catalog_id);
- if(! _.isNumber(id) || ! _.isNumber(catalogId)) return;
- setInterval(function() {
var deployable = new Conductor.Models.Deployable({ catalog_id: catalogId, id: id });
var view = new Conductor.Views.DeployablesShow({ model: deployable });
deployable.fetch({ success: function() { view.render(); } })
- }, Conductor.AJAX_REFRESH_INTERVAL);
- }
+});
- Conductor.Routers.Images = Backbone.Router.extend({ routes: { 'images/:id': 'show'
diff --git a/src/public/javascripts/backbone/views.js b/src/public/javascripts/backbone/views.js index ec558e9..5063583 100644 --- a/src/public/javascripts/backbone/views.js +++ b/src/public/javascripts/backbone/views.js @@ -134,6 +134,18 @@ Conductor.Views.PoolsShow = Backbone.View.extend({ } });
+Conductor.Views.DeployablesShow = Backbone.View.extend({
- el: '#content',
- render: function() {
- var $builds = this.$('ul#providers-list');
- if($builds.length === 0) return;
- $builds.empty();
- $('#deployableBuildsTemplate').tmpl(this.model.toJSON()).appendTo($builds);
- }
+});
Conductor.Views.DeploymentsShow = Backbone.View.extend({
@@ -158,7 +170,6 @@ Conductor.Views.DeploymentsShow = Backbone.View.extend({
});
- Conductor.Views.ImagesShow = Backbone.View.extend({ el: '#content',
ACK
OT note: I'm little bit scared of how much code is duplicated for html/backbone views. Would be great to do deeper investigation how to optimize this (in post 1.0).
Jan