[PATCH conductor 5/7] Mustachifying deployments/_list
ifarkas at redhat.com
ifarkas at redhat.com
Tue Feb 28 14:53:27 UTC 2012
From: Imre Farkas <ifarkas at redhat.com>
---
src/app/helpers/mustache_helper.rb | 25 +++++++---
.../deployments/_deployment_row.html.mustache | 26 +++++++++++
src/app/views/deployments/_list.html.haml | 46 ++++---------------
src/public/javascripts/backbone/views.js | 11 ++++-
4 files changed, 63 insertions(+), 45 deletions(-)
create mode 100644 src/app/views/deployments/_deployment_row.html.mustache
diff --git a/src/app/helpers/mustache_helper.rb b/src/app/helpers/mustache_helper.rb
index 8255c5d..db90ed4 100644
--- a/src/app/helpers/mustache_helper.rb
+++ b/src/app/helpers/mustache_helper.rb
@@ -37,14 +37,23 @@ module MustacheHelper
def deployment_for_mustache(deployment)
{
- :name => deployment.name,
- :path => deployment_path(deployment),
- :status => deployment.status,
- :status_description => I18n.t("deployments.status.#{deployment.status}"),
- :uptime => count_uptime(deployment.uptime_1st_instance),
- :instances_count => deployment.instances.count,
- :instances_text => I18n.t('instances.instances', :count => deployment.instances.count.to_i),
- :provider_name => deployment.provider.present? ? deployment.provider.provider_type.name : nil,
+ :id => deployment.id,
+ :name => deployment.name,
+ :path => deployment_path(deployment),
+ :filter_view_path => deployment_path(deployment, :view => :filter),
+ :status => deployment.status,
+ :status_description => I18n.t("deployments.status.#{deployment.status}"),
+ :uptime => count_uptime(deployment.uptime_1st_instance),
+ :deployable_xml_name => deployment.deployable_xml.name,
+ :created_at => deployment.created_at.to_s,
+ :instances_count => deployment.instances.count,
+ :instances_text => I18n.t('instances.instances', :count => deployment.instances.count.to_i),
+ :provider_name => deployment.provider.present? ? deployment.provider.provider_type.name : nil,
+ :provider_path => deployment.provider.present? ? provider_path(deployment.provider) : nil,
+ :owner => deployment.owner.present? ? deployment.owner.name : nil,
+ :pool_name => deployment.pool.name,
+ :pool_filter_view_path => pool_path(deployment.pool, :view => :filter),
+ :failed_instances_present => deployment.failed_instances.count > 0,
}
end
diff --git a/src/app/views/deployments/_deployment_row.html.mustache b/src/app/views/deployments/_deployment_row.html.mustache
new file mode 100644
index 0000000..ea9935f
--- /dev/null
+++ b/src/app/views/deployments/_deployment_row.html.mustache
@@ -0,0 +1,26 @@
+<tr>
+ <td class="checkbox">
+ <%= check_box_tag("deployments_selected[]", '{{id}}', :id => "deployment_checkbox_{{id}}") %>
+ </td>
+ <td class="alert">
+ {{#failed_instances_present}}
+ <%= image_tag("sb_icon_instance_failure.png") %>
+ {{/failed_instances_present}}
+ </td>
+ <td>
+ <%= link_to('{{name}}', '{{filter_view_path}}') %>
+ </td>
+ <td>{{created_at}}</td>
+ <td>{{deployable_xml_name}}</td>
+ <td>{{status}}</td>
+ <td class="center">{{instances_count}}</td>
+ <td>
+ <%= link_to('{{pool_name}}', '{{pool_filter_view_path}}') %>
+ </td>
+ <td>{{owner}}</td>
+ <td>
+ {{#provider_name}}
+ <%= link_to('{{provider_name}}', '{{provider_path}}') %>
+ {{/provider_name}}
+ </td>
+</tr>
diff --git a/src/app/views/deployments/_list.html.haml b/src/app/views/deployments/_list.html.haml
index bbf7b9b..82c67dd 100644
--- a/src/app/views/deployments/_list.html.haml
+++ b/src/app/views/deployments/_list.html.haml
@@ -27,45 +27,19 @@
});
= filter_table(@deployments_header, @deployments) do |deployment|
- %tr{ :class => cycle('nostripe', 'stripe') }
- %td{:class => 'checkbox'}
- - selected = params[:select] == 'all'
- = check_box_tag "deployments_selected[]", deployment.id, selected, :id => "deployment_checkbox_#{deployment.id}"
- %td{:class => 'alert'}= deployment.failed_instances.present? ? image_tag("sb_icon_instance_failure.png") : ""
- %td= link_to(deployment.name, deployment_path(deployment, :view => :filter))
- %td= deployment.created_at
- %td= deployment.deployable_xml.name
- %td= deployment.status
- %td{:class => 'center'}= deployment.instances.count
- %td= link_to deployment.pool.name, pool_path(deployment.pool, :view => :filter)
- %td= owner_name(deployment)
- %td= link_to(deployment.provider.provider_type.name, deployment.provider) if deployment.provider
+ = render :partial => 'deployments/deployment_row', :mustache => deployment_for_mustache(deployment)
+
:javascript
Conductor.setupPrettyFilterURL(
'#{url_for(:action => :show, :details_tab => 'deployments', :view => 'filter' )}',
'#{url_for(:action => :show, :details_tab => 'deployments', :view => 'pretty' )}'
);
-%script#deploymentTemplate{ :type => 'text/x-jquery-tmpl' }
- :plain
- <tr>
- <td class="checkbox"><input type="checkbox" id="deployment_checkbox_${id}"
- name="deployments_selected[]" value="${id}"></td>
- <td class="alert">
- {{if failed_instances_count > 0}}
- #{image_tag("sb_icon_instance_failure.png")}
- {{/if}}
- </td>
- <td><a href="#{deployment_path('replace_id', :view => :filter).sub('replace_id', '${id}')}">${name}</a></td>
- <td>${created_at}</td>
- <td>${deployable_xml_name}</td>
- <td>${status}</td>
- <td class="center">${instances_count}</td>
- <td><a href="#{pool_path('replace_id', :view => :filter).sub('replace_id', '${pool.id}')}">${pool.name}</a></td>
- <td>${owner}</td>
- <td>
- {{if provider}}
- <a href="#{provider_path('replace_id').sub('replace_id', '${provider.id}')}">${provider.name}</a>
- {{/if}}
- </td>
- </tr>
+:javascript
+ $(document).ready(function(){
+ $('tr:odd').addClass('stripe');
+ $('tr:even').addClass('nostripe');
+ });
+
+%script#deploymentTemplate{ :type => 'text/html' }
+ = render :partial => 'deployments/deployment_row'
diff --git a/src/public/javascripts/backbone/views.js b/src/public/javascripts/backbone/views.js
index be9d009..89ba07f 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -123,8 +123,17 @@ Conductor.Views.PoolsShow = Backbone.View.extend({
var deployments = this.model.get('deployments');
if($table.length !== 0) {
var checkboxes = Conductor.saveCheckboxes('td :checkbox', $table);
- $table.empty().append($template.tmpl(deployments))
+
+ var deplyomentRowsHtml = '';
+ $.each(deployments, function(deploymentIndex, deployment) {
+ deplyomentRowsHtml += Mustache.to_html($template.html(), deployment);
+ });
+
+ $table.empty().append(deplyomentRowsHtml);
Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
+
+ $('tr:odd').addClass('stripe');
+ $('tr:even').addClass('nostripe');
}
else {
var $cards = this.$('ul.deployable-cards').empty()
--
1.7.6.5
More information about the aeolus-devel
mailing list