[PATCH aeolus-conductor] Enable or disable launch button on deployables show page
Petr Blaho
pblaho at redhat.com
Wed Feb 22 13:53:47 UTC 2012
via ajax update according to build results
https://bugzilla.redhat.com/show_bug.cgi?id=788719
---
src/app/views/deployables/show.html.haml | 5 +++--
src/public/javascripts/backbone/views.js | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/app/views/deployables/show.html.haml b/src/app/views/deployables/show.html.haml
index 083fcc0..e7abee2 100644
--- a/src/app/views/deployables/show.html.haml
+++ b/src/app/views/deployables/show.html.haml
@@ -8,10 +8,11 @@
= link_to t('.edit'), edit_polymorphic_path([@catalog, @deployable]), :class => 'button', :id => 'edit_button'
= link_to t('.edit_xml'), edit_polymorphic_path([@catalog, @deployable], :edit_xml => true), :class => 'button', :id => 'edit_xml_button'
+ - launch_deployment_button_path = launch_time_params_deployments_path(:deployable_id => @deployable.id, :deployment => { :name => @deployable.name, :pool_id => @catalog.pool })
- if @catalog.present? && @deployable_errors.empty? && @pushed_count > 0
- = link_to t('.launch'), launch_time_params_deployments_path(:deployable_id => @deployable.id, :deployment => { :name => @deployable.name, :pool_id => @catalog.pool }), :id => :launch_deployment_button
+ = link_to t('.launch'), launch_deployment_button_path, :id => :launch_deployment_button, :'data-path' => launch_deployment_button_path
-else
- %a{:id => :launch_deployment_button, :class => 'disabled'}= t('.launch')
+ %a{:id => :launch_deployment_button, :class => 'disabled', :'data-path' => launch_deployment_button_path}= t('.launch')
%section.admin-content-section
diff --git a/src/public/javascripts/backbone/views.js b/src/public/javascripts/backbone/views.js
index 55c0fe0..983a46c 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -149,6 +149,22 @@ Conductor.Views.DeployablesShow = Backbone.View.extend({
$builds.empty();
$('#deployableBuildsTemplate').tmpl(this.model.toJSON()).appendTo($builds);
+
+ // get values of all build results
+ var build_results_values = _.flatten(_.values(this.model.get("build_results")));
+ var enable_launch_button = _.any(build_results_values, function(build_results){
+ return build_results.status === "pushed";
+ });
+
+ // toggle "disabled" class
+ $("#launch_deployment_button").toggleClass("disabled", !enable_launch_button);
+ // create or remove href attribute with value from data-path
+ if(enable_launch_button) {
+ $("#launch_deployment_button").attr("href", $("#launch_deployment_button").attr("data-path"));
+ }
+ else{
+ $("#launch_deployment_button").removeAttr("href");
+ }
}
});
--
1.7.7.6
More information about the aeolus-devel
mailing list