modified: .gitignore
modified: src/app/helpers/application_helper.rb
deleted: src/app/helpers/deployments_helper.rb
modified: src/app/models/pool.rb
modified: src/app/models/user.rb
modified: src/app/views/pools/_deployments.haml
new file: src/app/views/pools/_overview.haml
new file: src/app/views/pools/_pretty_list.haml
modified: src/app/views/pools/index.haml
modified: src/config/locales/en.yml
modified: src/features/pool.feature
modified: src/app/views/pools/_overview.haml
modified: src/app/views/pools/_pretty_list.haml
modified: src/config/locales/en.yml
---
.gitignore | 2 +-
src/app/helpers/application_helper.rb | 16 ++++++++++++++
src/app/helpers/deployments_helper.rb | 18 ----------------
src/app/models/pool.rb | 2 +-
src/app/models/user.rb | 1 +
src/app/views/pools/_deployments.haml | 9 +++++--
src/app/views/pools/_overview.haml | 31 +++++++++++++++++++++++++++
src/app/views/pools/_pretty_list.haml | 37 +++++++++++++++++++++++++++++++++
src/app/views/pools/index.haml | 4 +-
src/config/locales/en.yml | 7 ++++++
src/features/pool.feature | 5 +---
11 files changed, 103 insertions(+), 29 deletions(-)
delete mode 100644 src/app/helpers/deployments_helper.rb
create mode 100644 src/app/views/pools/_overview.haml
create mode 100644 src/app/views/pools/_pretty_list.haml
diff --git a/.gitignore b/.gitignore
index 7b7e496..e427b25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,7 @@ database.yml
.project
*~
*.swp
-
+src/.idea
# compass compiled and temporary files
src/tmp
diff --git a/src/app/helpers/application_helper.rb
b/src/app/helpers/application_helper.rb
index c536a81..3049c7b 100644
--- a/src/app/helpers/application_helper.rb
+++ b/src/app/helpers/application_helper.rb
@@ -194,4 +194,20 @@ module ApplicationHelper
title.split(' ').join('_').downcase
end
+ def count_uptime(start_time)
+ result_string = []
+ difference = Time.now.utc - start_time
+
+ seconds = difference % 60
+ difference = (difference - seconds) / 60
+ minutes = difference % 60
+ difference = (difference - minutes) / 60
+ hours = difference % 24
+ difference = (difference - hours) / 24
+ days = difference % 7
+
+ result_string<< pluralize(days.to_i, 'day') if days != 0
+
result_string<<"#{"%02d"%hours.to_i}:#{"%02d"%minutes.to_i}:#{"%02d"%seconds.to_i}"
+ result_string.join(", ")
+ end
end
diff --git a/src/app/helpers/deployments_helper.rb
b/src/app/helpers/deployments_helper.rb
deleted file mode 100644
index 620ea01..0000000
--- a/src/app/helpers/deployments_helper.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-module DeploymentsHelper
- def count_uptime(start_time)
- result_string = []
- difference = Time.now.utc - start_time
-
- seconds = difference % 60
- difference = (difference - seconds) / 60
- minutes = difference % 60
- difference = (difference - minutes) / 60
- hours = difference % 24
- difference = (difference - hours) / 24
- days = difference % 7
-
- result_string<< pluralize(days.to_i, 'day') if days != 0
-
result_string<<"#{"%02d"%hours.to_i}:#{"%02d"%minutes.to_i}:#{"%02d"%seconds.to_i}"
- result_string.join(", ")
- end
-end
diff --git a/src/app/models/pool.rb b/src/app/models/pool.rb
index 87f5c19..cd7e11a 100644
--- a/src/app/models/pool.rb
+++ b/src/app/models/pool.rb
@@ -43,7 +43,7 @@ class Pool < ActiveRecord::Base
has_many :instances, :dependent => :destroy
belongs_to :quota, :autosave => true, :dependent => :destroy
belongs_to :pool_family
-
+ has_many :deployments
# NOTE: Commented out because images table doesn't have pool_id foreign key?!
#has_many :images, :dependent => :destroy
diff --git a/src/app/models/user.rb b/src/app/models/user.rb
index f795542..0254014 100644
--- a/src/app/models/user.rb
+++ b/src/app/models/user.rb
@@ -59,6 +59,7 @@ class User < ActiveRecord::Base
has_many :permissions
has_many :owned_instances, :class_name => "Instance", :foreign_key =>
"owner_id"
+ has_many :deployments, :foreign_key => "owner_id"
has_many :view_states
belongs_to :quota, :autosave => true
diff --git a/src/app/views/pools/_deployments.haml
b/src/app/views/pools/_deployments.haml
index 497bf09..6aa3d07 100644
--- a/src/app/views/pools/_deployments.haml
+++ b/src/app/views/pools/_deployments.haml
@@ -1,3 +1,6 @@
-%h3
- Deployments for
- = @pool.name
+%ul.deployments_list
+ - deployments.each do |deployment|
+ %li
+ =deployment.name
+ =count_uptime(deployment.created_at)
+ =deployment.instances.count if deployment.instances
\ No newline at end of file
diff --git a/src/app/views/pools/_overview.haml b/src/app/views/pools/_overview.haml
new file mode 100644
index 0000000..4bd54f4
--- /dev/null
+++ b/src/app/views/pools/_overview.haml
@@ -0,0 +1,31 @@
+#overview-bar
+ %h3=t("overview")
+ %span.btn-seg-toggle
+ Buttons here
+#stats-bar
+ %ul
+ %li.stat
+ %h3=t("stats_bar_pools")
+ %span.your_pools
+ =(a)pools.count
+ %span.in_use
+ 4
+ %li.stat
+ %h3=t("stats_bar_deployments")
+ %span.deployments
+ =current_user.deployments.count
+ %li.stat
+ %h3=t("stats_bar_instances")
+ %span.instances
+ =current_user.owned_instances.count
+ %li.stat
+ %span.alerts
+ %h3=t("alerts")
+ (TODO)0
+ %li.stat
+ %span.updates
+ %h3=t("updates")
+ (TODO)15
+ %li.stat
+ %h3=t("stats_bar_quota_used")
+ (TODO) 86%
\ No newline at end of file
diff --git a/src/app/views/pools/_pretty_list.haml
b/src/app/views/pools/_pretty_list.haml
new file mode 100644
index 0000000..31fbc4d
--- /dev/null
+++ b/src/app/views/pools/_pretty_list.haml
@@ -0,0 +1,37 @@
+= link_to "expand all", "#", :class => "reveal_all"
+%table#pools_pretty_view
+ - @pools.each do |pool|
+ %tr
+ %td
+ = link_to pool.name, pool_path(pool)
+ %td
+ Deployments:
+ = pool.deployments.count
+ %td
+ Instances:
+ = pool.instances.count
+ %td
+ Pending:
+ = pool.instances.select {|i| i.state == Instance::STATE_PENDING }.length
+ %td
+ Failed:
+ = pool.instances.select {|i| i.state == Instance::STATE_ERROR }.length
+ %td
+ Instance quota usage:
+ = pool.quota.percentage_used
+ %td
+ = link_to "+", "#", :class => "toggle"
+ %tr
+ %td
+ = render :partial => 'deployments', :locals => {:deployments =>
pool.deployments}
+
+:javascript
+ $(document).ready(function() {
+ $('ul.deployments_list').hide()
+ $('a.toggle').click( function() {
+ $(this).closest('tr').next().find('ul').toggle();
+ });
+ $('a.reveal_all').click( function() {
+ $(document).find('tr td ul').toggle();
+ });
+ });
\ No newline at end of file
diff --git a/src/app/views/pools/index.haml b/src/app/views/pools/index.haml
index 62ccbc6..7784a31 100644
--- a/src/app/views/pools/index.haml
+++ b/src/app/views/pools/index.haml
@@ -1,2 +1,2 @@
-- content_for :list do
- = render :partial => 'list'
+= render :partial => 'overview'
+= render :partial => 'pretty_list'
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 859bd9e..19c10cf 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -66,6 +66,13 @@ en:
choose_treatment: Choose Treatment
apply: Apply
resource_management: Resource Management
+ overview: Overview
+ stats_bar_pools: Pools
+ stats_bar_deployments: Deployments
+ stats_bar_instances: Instances
+ stats_bar_quota_used: Quota Used
+ alerts: Alerts
+ updates: Udates
deployments:
deployments: Deployments
updated:
diff --git a/src/features/pool.feature b/src/features/pool.feature
index 55aab9f..d9e6f98 100644
--- a/src/features/pool.feature
+++ b/src/features/pool.feature
@@ -32,11 +32,8 @@ Feature: Manage Pools
| maximum_running_instances | 10 |
| running_instances | 8 |
And I am on the pools page
- When I follow "mockpool"
- Then I should be on the show pool page
- When I follow "Quota"
Then I should see the following:
- | mockpool | 10 | 80.0 |
+ | mockpool | Deployments: 0 | Instances: 0 | Pending: 0 | Failed: 0 | Instance quota
usage: 80 |
Scenario: Enter invalid characters into Name field
Given I am on the new pool page
--
1.7.4.4