[PATCH conductor] BZ799981: Fix push all button visibility (rev. 2)

ifarkas at redhat.com ifarkas at redhat.com
Thu Mar 8 14:55:12 UTC 2012


From: Imre Farkas <ifarkas at redhat.com>

https://bugzilla.redhat.com/show_bug.cgi?id=799981
---
 src/app/controllers/images_controller.rb |    6 ++++--
 src/app/views/images/show.html.haml      |    2 +-
 src/public/javascripts/backbone/views.js |    4 +++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/app/controllers/images_controller.rb b/src/app/controllers/images_controller.rb
index ee66c9a..954983a 100644
--- a/src/app/controllers/images_controller.rb
+++ b/src/app/controllers/images_controller.rb
@@ -56,12 +56,14 @@ class ImagesController < ApplicationController
     else
       @account_groups = ProviderAccount.enabled.group_by_type(@environment)
     end
+
     # according to imagefactory Builder.first shouldn't be implemented yet
     # but it does what we need - returns builder object which contains
     # all builds
     @builder = Aeolus::Image::Factory::Builder.first
     load_builds
     load_target_images(@build)
+    @target_image_exists = @target_images_by_target.any?
     flash[:error] = t("images.flash.error.no_provider_accounts") if @account_groups.size == 0
 
     respond_to do |format|
@@ -127,8 +129,8 @@ class ImagesController < ApplicationController
                           :failed_push_counts => failed_push_counts,
                           :latest_build_id => @latest_build,
                           :user_can_build => (@environment and
-                                              check_privilege(Privilege::USE,
-                                                              @environment))}
+                                              check_privilege(Privilege::USE, @environment)),
+                          :target_image_exists => @target_image_exists }
       end
     end
   end
diff --git a/src/app/views/images/show.html.haml b/src/app/views/images/show.html.haml
index bbee92f..6a4615a 100644
--- a/src/app/views/images/show.html.haml
+++ b/src/app/views/images/show.html.haml
@@ -46,7 +46,7 @@
             - build_text << '_all'
           = button_to t(build_text), rebuild_all_image_path(@image.id), :class => 'button pill'
           #push-all-btn
-            - if @build and @build.id == @latest_build
+            - if @build && @build.id == @latest_build && @target_image_exists
               = button_to t('.push_all'), push_all_image_path(@image.id, :build_id => @build.id), :class => 'button pill'
 
   .content
diff --git a/src/public/javascripts/backbone/views.js b/src/public/javascripts/backbone/views.js
index 6a1d823..5065e1b 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -215,8 +215,10 @@ Conductor.Views.ImagesShow = Backbone.View.extend({
 
     var buildId = this.model.get("build") ? this.model.get("build")['uuid'] : null;
     var latestBuildId = this.model.get("latest_build_id");
+    var providerImageExists = this.model.get("provider_image_exists");
+    var targetImageExists = this.model.get("target_image_exists");
 
-    if (buildId && buildId == latestBuildId) {
+    if (buildId && buildId == latestBuildId && targetImageExists) {
       $pushAllBtn.html($buttonTemplate.tmpl(this.model.toJSON()));
     }
     else {
-- 
1.7.6.5




More information about the aeolus-devel mailing list