From: Imre Farkas <ifarkas(a)redhat.com>
---
src/app/helpers/mustache_helper.rb | 15 ++++++-
.../deployments/_deployment_row.html.mustache | 28 ++++++++++++
src/app/views/deployments/_list.html.haml | 46 ++++----------------
src/public/javascripts/backbone/views.js | 17 ++++++-
4 files changed, 64 insertions(+), 42 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 6131909..60cc9a1 100644
--- a/src/app/helpers/mustache_helper.rb
+++ b/src/app/helpers/mustache_helper.rb
@@ -37,17 +37,28 @@ module MustacheHelper
def deployment_for_mustache(deployment)
{
+ :id => deployment.id,
:name => deployment.name,
:path => deployment_path(deployment),
+ :filter_view_path => deployment_path(deployment, :view => :filter),
:status => deployment.status,
:translated_state =>
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_count_text => I18n.t('instances.instances', :count =>
deployment.instances.count.to_i),
+ :owner => deployment.owner.present? ? deployment.owner.name :
nil,
+ :failed_instances_present => deployment.failed_instances.count > 0,
:provider => {
+ :path => deployment.provider.present? ? provider_path(deployment.provider) :
nil,
:provider_type => {
- :name => deployment.provider.present? ?
deployment.provider.provider_type.name : nil,
- }
+ :name => deployment.provider.present? ?
deployment.provider.provider_type.name : nil,
+ }
+ },
+ :pool => {
+ :name => deployment.pool.name,
+ :filter_view_path => pool_path(deployment.pool, :view => :filter),
}
}
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..34dfa26
--- /dev/null
+++ b/src/app/views/deployments/_deployment_row.html.mustache
@@ -0,0 +1,28 @@
+<tr>
+ <td class="checkbox">
+ <%= check_box_tag("deployments_selected[]", '{{id}}', false, :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>{{translated_state}}</td>
+ <td class="center">{{instances_count}}</td>
+ <td>
+ {{#pool}}
+ <%= link_to('{{name}}', '{{filter_view_path}}') %>
+ {{/pool}}
+ </td>
+ <td>{{owner}}</td>
+ <td>
+ {{#provider}}
+ <%= link_to('{{provider_type.name}}', '{{path}}') %>
+ {{/provider}}
+ </td>
+</tr>
diff --git a/src/app/views/deployments/_list.html.haml
b/src/app/views/deployments/_list.html.haml
index 308a98d..c1ee53b 100644
--- a/src/app/views/deployments/_list.html.haml
+++ b/src/app/views/deployments/_list.html.haml
@@ -27,20 +27,7 @@
});
= filter_table(@deployments_header, @deployments) do |deployment|
- - deployment_provider = deployment.provider
- %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= t("instances.states.#{deployment.status}")
- %td{:class => 'center'}= deployment.instances.size
- %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(
@@ -48,26 +35,11 @@
'#{url_for(:action => :show, :details_tab => 'deployments', :view
=> 'pretty', :page => params[:page])}'
);
-%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>${translated_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#deploymentRowTemplate{ :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 876ad9b..0d29417 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -124,7 +124,7 @@ Conductor.Views.PoolsShow = Backbone.View.extend({
template: function() {
if (this.currentView() == 'table') {
- return $('#deploymentTemplate');
+ return $('#deploymentRowTemplate');
}
else if (this.currentView() == 'pretty') {
return $('#deploymentCardTemplate');
@@ -155,9 +155,20 @@ Conductor.Views.PoolsShow = Backbone.View.extend({
var $table = this.$('table.checkbox_table > tbody');
var deployments = this.model.get('deployments');
- if($table.length !== 0) {
+ if(this.currentView() == 'table') {
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');
+
Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
}
else {
--
1.7.6.5