On Wednesday 14 September 2011 15:58:56 tsedovic(a)redhat.com wrote:
From: Tomas Sedovic <tsedovic(a)redhat.com>
---
src/app/helpers/application_helper.rb | 2 +
src/app/models/deployment.rb | 1 +
src/app/views/deployments/_pretty_view.haml | 69
+++++++++++++++++++------- src/app/views/pools/show.haml |
3 +-
src/public/javascripts/application.js | 2 +-
src/public/javascripts/backbone/routers.js | 8 ++-
src/public/javascripts/backbone/views.js | 35 ++++++++++++--
7 files changed, 90 insertions(+), 30 deletions(-)
diff --git a/src/app/helpers/application_helper.rb
b/src/app/helpers/application_helper.rb index ff1fca7..c3cf0cc 100644
--- a/src/app/helpers/application_helper.rb
+++ b/src/app/helpers/application_helper.rb
@@ -265,4 +265,6 @@ module ApplicationHelper
flash[:error] << "#{attr.to_s.humanize} #{error}"
end
end
+
+ module_function :count_uptime
end
diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
index aa96855..8e8ee66 100644
--- a/src/app/models/deployment.rb
+++ b/src/app/models/deployment.rb
@@ -288,6 +288,7 @@ class Deployment < ActiveRecord::Base
:owner => owner.name,
:deployable_xml_name => deployable_xml.name,
:instances_count => instances.count,
+ :uptime => ApplicationHelper.count_uptime(uptime_1st_instance),
:href => Rails.application.routes.url_helpers.deployment_path(id),
:pool => {
:
:name => pool.name,
diff --git a/src/app/views/deployments/_pretty_view.haml
b/src/app/views/deployments/_pretty_view.haml index b04b579..f57b770
100644
--- a/src/app/views/deployments/_pretty_view.haml
+++ b/src/app/views/deployments/_pretty_view.haml
@@ -1,24 +1,55 @@
-- @deployments.in_groups_of(5, false) do |group|
- %ul.deployment-array.large
- - group.each do |deployment|
- %li.deployment
- %h3.name
- = link_to deployment.name, deployment_path(deployment)
- %dl.statistics
- %ul
- %li.uptime
- %dt.uptime Uptime
- %dd= count_uptime(deployment.uptime_1st_instance)
- %li.instances
- %dt.instances.count Instances
- %dd
- = deployment.instances.count || 0
- %span.inline-label Instances
- %li.provider
- %dt.instances.count Provider
- %dd= deployment.provider.provider_type.name unless
deployment.provider.blank? +%ul.deployable-cards
+ - @deployments.in_groups_of(5, false) do |group|
+ %ul.deployment-array.large
+ - group.each do |deployment|
+ %li.deployment
+ %h3.name
+ = link_to deployment.name, deployment_path(deployment)
+ %dl.statistics
+ %ul
+ %li.uptime
+ %dt.uptime Uptime
+ %dd= count_uptime(deployment.uptime_1st_instance)
+ %li.instances
+ %dt.instances.count Instances
+ %dd
+ = deployment.instances.count || 0
+ %span.inline-label Instances
+ %li.provider
+ %dt.instances.count Provider
+ %dd= deployment.provider.provider_type.name unless
deployment.provider.blank?
: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
+ <li class="deployment">
+ <h3 class="name">
+ <a href="${href}">${name}</a>
+ </h3>
+ <dl class="statistics">
+ <ul>
+ <li class="uptime">
+ <dt class="uptime">Uptime</dt>
+ <dd>${uptime}</dd>
+ </li>
+ <li class="instances">
+ <dt class="instances count">Instances</dt>
+ <dd>${instances_count}
+ <span class="inline-label">Instances</span>
+ </dd>
+ </li>
+ <li class="provider">
+ <dt class="instances count">Provider</dt>
+ <dd>
+ {{if provider}} ${provider.name} {{/if}}
+ </dd>
+ </li>
+ </ul>
+ </dl>
+ </li>
diff --git a/src/app/views/pools/show.haml b/src/app/views/pools/show.haml
index 15d1831..07449fe 100644
--- a/src/app/views/pools/show.haml
+++ b/src/app/views/pools/show.haml
@@ -20,5 +20,4 @@
.button-group
= pretty_filter_toggle(pool_path(@pool, :view => 'pretty',
:details_tab => @details_tab[:id]), pool_path(@pool, :view => 'filter',
:details_tab => @details_tab[:id]))
.content.collapsible.toggle-view.pools#tab
- %ul.deployable-cards
- = render :partial => @view
+ = render :partial => @view
diff --git a/src/public/javascripts/application.js
b/src/public/javascripts/application.js index b74937c..bb23e4e 100644
--- a/src/public/javascripts/application.js
+++ b/src/public/javascripts/application.js
@@ -184,7 +184,7 @@ $.extend(Conductor, {
return prefix + path;
},
- AJAX_REFRESH_INTERVAL: 5000,
+ AJAX_REFRESH_INTERVAL: 30 * 1000,
initializeBackbone: function() {
for(router in Conductor.Routers) {
diff --git a/src/public/javascripts/backbone/routers.js
b/src/public/javascripts/backbone/routers.js index 07eb092..e6d903d 100644
--- a/src/public/javascripts/backbone/routers.js
+++ b/src/public/javascripts/backbone/routers.js
@@ -39,10 +39,12 @@ Conductor.Routers.Pools = Backbone.Router.extend({
id = Conductor.idFromURLFragment(id);
if(! _.isNumber(id)) return;
- var pool = new Conductor.Models.Pool({ id: id });
- var view = new Conductor.Views.PoolsShow({ model: pool });
-
setInterval(function() {
+ var pool = new Conductor.Models.Pool({ id: id });
+ var view = new Conductor.Views.PoolsShow({ model: pool });
+
+ if(view.currentTab() !== 'deployments') return;
+
pool.fetch({ success: function() { view.render(); } })
}, Conductor.AJAX_REFRESH_INTERVAL);
},
diff --git a/src/public/javascripts/backbone/views.js
b/src/public/javascripts/backbone/views.js index cc0fb99..6f65746 100644
--- a/src/public/javascripts/backbone/views.js
+++ b/src/public/javascripts/backbone/views.js
@@ -38,16 +38,41 @@ Conductor.Views.PoolsIndex = Backbone.View.extend({
Conductor.Views.PoolsShow = Backbone.View.extend({
el: '#content',
+ currentTab: function() {
+ if($('#details_deployments.active').length > 0) {
+ return 'deployments';
+ }
+ else if ($('#details_properties.active').length > 0) {
+ return 'properties';
+ }
+ else if ($('#details_images.active').length > 0) {
+ return 'images';
+ }
+ },
+
render: function() {
this.$('h1.pools').text(this.model.get('name') + ' Pool');
var $template = $('#deploymentTemplate');
- var $table = this.$('table.checkbox_table > tbody');
- if($table.length === 0 || $template.length === 0) return;
+ if($template.length === 0) return;
- var checkboxes = Conductor.saveCheckboxes('td :checkbox', $table);
- $table.empty().append($template.tmpl(this.model.get('deployments')))
- Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
+ var $table = this.$('table.checkbox_table > tbody');
+ var deployments = this.model.get('deployments');
+ if($table.length !== 0) {
+ var checkboxes = Conductor.saveCheckboxes('td :checkbox', $table);
+ $table.empty().append($template.tmpl(deployments))
+ Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
+ }
+ else {
+ var $cards = this.$('ul.deployable-cards').empty()
+ var cardsPerRow = 5;
+ for(var i = 0; i < deployments.length; i += cardsPerRow) {
+ var $row = this.make('ul',
+ {class: 'deployment-array large'},
+ $template.tmpl(deployments.slice(i, i + cardsPerRow)));
+ $cards.append($row);
+ }
+ }
},
});
Could you recreate & resend this patch(2/2), because it cannot be applied?
Error message is "Patch format detection failed."
--
Jozef Zigmund