[PATCH conductor] BZ773034, BZ781482: Fix jQuery template on images#show

ifarkas at redhat.com ifarkas at redhat.com
Thu Feb 9 12:42:19 UTC 2012


From: Imre Farkas <ifarkas at redhat.com>

The build/push status has disappeared after backbone update and this patch is
intended to fix this.

Note, that the status in json response needs to capitalized by the controller because in
the jquery template no javascript function nor rails helper methods can be used.

https://bugzilla.redhat.com/show_bug.cgi?id=773034
https://bugzilla.redhat.com/show_bug.cgi?id=781482
---
 src/app/controllers/images_controller.rb |    3 ++
 src/app/views/images/show.html.haml      |   54 +++++++++++++++--------------
 2 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/src/app/controllers/images_controller.rb b/src/app/controllers/images_controller.rb
index f634bfa..41108c5 100644
--- a/src/app/controllers/images_controller.rb
+++ b/src/app/controllers/images_controller.rb
@@ -66,6 +66,8 @@ class ImagesController < ApplicationController
       format.json do
         active_builds = @account_groups.keys.inject({})  do |result, driver|
           result[driver] = @builder.find_active_build(@build.id, driver) if @build
+          result[driver].attributes['status'].capitalize! if result[driver]
+
           result
         end
 
@@ -73,6 +75,7 @@ class ImagesController < ApplicationController
           timg = @target_images_by_target[driver]
           group[:accounts].each do |account|
             result[account.id] = @builder.find_active_push(timg.id, account.provider.name, account.credentials_hash['username'])
+            result[account.id].attributes['status'].capitalize! if result[account.id]
           end if timg.present?
 
           result
diff --git a/src/app/views/images/show.html.haml b/src/app/views/images/show.html.haml
index c83fc6a..e26a720 100644
--- a/src/app/views/images/show.html.haml
+++ b/src/app/views/images/show.html.haml
@@ -101,32 +101,34 @@
       <li>
         <dl>
           <dt>
-            <h3>${groups['type']['name']}</h3>
-            {{if build && active_builds[driver]}}
-              <label>${active_builds[driver]['status']}</label>
-            {{else target_images_by_target[driver]}}
-              #{path = image_target_image_path('replace_image_id', 'replace_target_image_id')
-                path = path.sub('replace_image_id', '${image[\'uuid\']}')
-                path = path.sub('replace_target_image_id', '${target_images_by_target[driver][\'uuid\']}')
-                button_to(t('images.show.delete'), path, :method => :delete)}
-            {{else build && build['uuid'] == latest_build_id}}
-              #{path = image_target_images_path('replace_image_id', :target => 'replace_driver', :build_id => 'replace_build_id')
-                path = path.sub('replace_image_id', '${image[\'uuid\']}')
-                path = path.sub('replace_driver', '${driver}')
-                path = path.sub('replace_build_id', '${build[\'uuid\']}')
-                button_to(t('images.show.build'), path, :method => :post)}
-              {{if failed_build_counts[driver] > 1}}
-                <div class="light">
-                  #{t('images.show.failed_build_attempts', :count => '${failed_build_counts[driver]}')}
-                </div>
-              {{else failed_build_counts[driver] == 1}}
-                <div class="light">
-                  #{t('images.show.failed_build_attempts', :count => 1 )}
-                </div>
+            <div class="build-actions">
+              <h3>${groups['type']['name']}</h3>
+              {{if build && active_builds[driver]}}
+                <label>${active_builds[driver]['builder']['status']}</label>
+              {{else target_images_by_target[driver]}}
+                #{path = image_target_image_path('replace_image_id', 'replace_target_image_id')
+                  path = path.sub('replace_image_id', '${image[\'uuid\']}')
+                  path = path.sub('replace_target_image_id', '${target_images_by_target[driver][\'uuid\']}')
+                  button_to(t('images.show.delete'), path, :method => :delete)}
+              {{else build && build['uuid'] == latest_build_id}}
+                #{path = image_target_images_path('replace_image_id', :target => 'replace_driver', :build_id => 'replace_build_id')
+                  path = path.sub('replace_image_id', '${image[\'uuid\']}')
+                  path = path.sub('replace_driver', '${driver}')
+                  path = path.sub('replace_build_id', '${build[\'uuid\']}')
+                  button_to(t('images.show.build'), path, :method => :post)}
+                {{if failed_build_counts[driver] > 1}}
+                  <div class="light">
+                    #{t('images.show.failed_build_attempts', :count => '${failed_build_counts[driver]}')}
+                  </div>
+                {{else failed_build_counts[driver] == 1}}
+                  <div class="light">
+                    #{t('images.show.failed_build_attempts', :count => 1 )}
+                  </div>
+                {{/if}}
+              {{else}}
+                &nbsp;
               {{/if}}
-            {{else}}
-              &nbsp;
-            {{/if}}
+            </div>
           </dt>
           <dd>
             <table class="light_table">
@@ -168,7 +170,7 @@
                     </td>
                     <td class="image_controls light">
                       {{if target_images_by_target[driver] && active_pushes[account['id']]}}
-                        <label>${active_pushes[account['id']]['status']}</label>
+                        <label>${active_pushes[account['id']]['builder']['status']}</label>
                       {{else target_images_by_target[driver] && !provider_images[account['id']] && build &&  build['uuid'] == latest_build_id}}
                         #{path = image_provider_images_path('replace_image_id', :build_id => 'replace_build_id', :target_image_id => 'replace_target_image_id', :account_id => 'replace_account_id')
                           path = path.sub('replace_image_id', '${image[\'uuid\']}')
-- 
1.7.6.5




More information about the aeolus-devel mailing list