[PATCH conductor] Autoupdating deployments list on Pools#index
Tomas Sedovic
tsedovic at redhat.com
Fri Dec 16 11:29:01 UTC 2011
On 12/13/2011 01:33 PM, ifarkas at redhat.com wrote:
> From: Imre Farkas<ifarkas at redhat.com>
>
> ---
> src/app/models/deployment.rb | 1 +
> src/app/views/pools/_deployments.html.haml | 24 ++++++++++++++-
> src/public/javascripts/backbone/routers.js | 27 ++++++++++-------
> src/public/javascripts/backbone/views.js | 44 +++++++++++++++++++---------
> 4 files changed, 70 insertions(+), 26 deletions(-)
>
> diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
> index 1a799b8..7b5ce76 100644
> --- a/src/app/models/deployment.rb
> +++ b/src/app/models/deployment.rb
> @@ -398,6 +398,7 @@ class Deployment< ActiveRecord::Base
> :deployment_state => deployment_state,
> :instances_count => instances.count,
> :uptime => ApplicationHelper.count_uptime(uptime_1st_instance),
> + :global_uptime => ApplicationHelper.count_uptime(uptime_all),
> :pool => {
> :name => pool.name,
> :id => pool.id,
> diff --git a/src/app/views/pools/_deployments.html.haml b/src/app/views/pools/_deployments.html.haml
> index 70cfea0..af0b8b8 100644
> --- a/src/app/views/pools/_deployments.html.haml
> +++ b/src/app/views/pools/_deployments.html.haml
> @@ -14,4 +14,26 @@
>
> %li.left
> %dt=t :uptime
> - %dd= count_uptime(deployment.uptime_1st_instance)
> \ No newline at end of file
> + %dd= count_uptime(deployment.uptime_1st_instance)
> +
> +%script#deploymentPrettyTemplate{ :type => 'text/x-jquery-tmpl' }
> + :plain
> +<li class="deployment">
> +<h3 class="name">
> +<a href="#{deployment_path('replace_id').sub('replace_id', '${id}')}">${name}</a>
> + #{t 'pools.index.global_uptime'}
> + ${global_uptime}
> +</h3>
> +<dl class="statistics">
> +<ul>
> +<li class="right">
> +<dt class="instances count">#{t 'instances.instances'}</dt>
> +<dd>${instances_count}</dd>
> +</li>
> +<li class="left">
> +<dt>#{t :uptime}</dt>
> +<dd>${uptime}</dd>
> +</li>
> +</ul>
> +</dl>
> +</li>
> diff --git a/src/public/javascripts/backbone/routers.js b/src/public/javascripts/backbone/routers.js
> index c92ea3d..cb55730 100644
> --- a/src/public/javascripts/backbone/routers.js
> +++ b/src/public/javascripts/backbone/routers.js
> @@ -12,18 +12,23 @@ Conductor.Routers.Pools = Backbone.Router.extend({
> setInterval(function() {
> var view = new Conductor.Views.PoolsIndex();
>
> - switch(view.currentTab()) {
> - case 'pools':
> - view.collection = new Conductor.Models.Pools();
> - break;
> - case 'deployments':
> + if (view.currentView() == 'table') {
> + switch(view.currentTab()) {
> + case 'pools':
> + view.collection = new Conductor.Models.Pools();
> + break;
> + case 'deployments':
> + view.collection = new Conductor.Models.Deployments();
> + break;
> + case 'instances':
> + view.collection = new Conductor.Models.Instances();
> + break;
> + default:
> + return;
> + }
> + }
> + else if (view.currentView() == 'pretty') {
> view.collection = new Conductor.Models.Deployments();
> - break;
> - case 'instances':
> - view.collection = new Conductor.Models.Instances();
> - break;
> - default:
> - return;
> }
>
> view.collection.bind('change', function() { view.render() });
> diff --git a/src/public/javascripts/backbone/views.js b/src/public/javascripts/backbone/views.js
> index 488d083..3e2776d 100644
> --- a/src/public/javascripts/backbone/views.js
> +++ b/src/public/javascripts/backbone/views.js
> @@ -4,6 +4,15 @@ Conductor.Views = Conductor.Views || {}
> Conductor.Views.PoolsIndex = Backbone.View.extend({
> el: '#content',
>
> + currentView: function() {
> + if ($('form.filterable-data').length> 0) {
> + return 'table'
> + }
> + else if ($('.deployment-array').length> 0) {
> + return 'pretty'
> + }
> + },
> +
> currentTab: function() {
> if($('#details_pools.active').length> 0) {
> return 'pools';
> @@ -17,21 +26,33 @@ Conductor.Views.PoolsIndex = Backbone.View.extend({
> },
>
> template: function() {
> - switch(this.currentTab()) {
> - case 'pools': return $('#poolTemplate');
> - case 'deployments': return $('#deploymentTemplate');
> - case 'instances': return $('#instanceTemplate');
> + if (this.currentView() == 'table') {
> + switch(this.currentTab()) {
> + case 'pools': return $('#poolTemplate');
> + case 'deployments': return $('#deploymentTemplate');
> + case 'instances': return $('#instanceTemplate');
> + }
> + }
> + else if (this.currentView() == 'pretty') {
> + return $('#deploymentPrettyTemplate');
> }
> },
>
> render: function() {
> var $template = this.template();
> - var $table = this.$('table.checkbox_table> tbody');
> - if($table.length === 0 || $template.length === 0) return;
>
> - var checkboxes = Conductor.saveCheckboxes('td :checkbox', $table);
> - $table.empty().append($template.tmpl(this.collection.toJSON()))
> - Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
> + if (this.currentView() == 'table') {
> + var $table = this.$('table.checkbox_table> tbody');
> + if($table.length === 0 || $template.length === 0) return;
> + var checkboxes = Conductor.saveCheckboxes('td :checkbox', $table);
> + $table.empty().append($template.tmpl(this.collection.toJSON()))
> + Conductor.restoreCheckboxes(checkboxes, 'td :checkbox', $table);
> + }
> + else if (this.currentView() == 'pretty') {
> + $deployments = this.$('ul.deployment-array');
> + var $template = this.template();
> + $deployments.empty().append($template.tmpl(this.collection.toJSON()))
> + }
> },
> });
>
> @@ -81,11 +102,6 @@ Conductor.Views.DeploymentsShow = Backbone.View.extend({
>
> el: '#content',
>
> - currentTab: function() {
> - if($('#details_instances.active').length> 0) {
> - return 'instances';
> - }
> - },
> render: function() {
> var $instances = this.$('ul.instances-array');
> if($instances.length === 0) {
ACK
Thomas
--
No trees were killed to send this message, but a large number of
electrons were terribly inconvenienced.
More information about the aeolus-devel
mailing list