---
 src/app/controllers/dashboard_controller.rb |   12 +++
 src/app/views/dashboard/summary.haml        |  143 ++++++++++++++++-----------
 src/public/stylesheets/components.css       |   77 ++++++++++++++-
 3 files changed, 173 insertions(+), 59 deletions(-)

diff --git a/src/app/controllers/dashboard_controller.rb 
b/src/app/controllers/dashboard_controller.rb
index 716d7bb..6f02c4e 100644
--- a/src/app/controllers/dashboard_controller.rb
+++ b/src/app/controllers/dashboard_controller.rb
@@ -40,8 +40,20 @@ class DashboardController < ApplicationController
     end
   end
 
+  def account_quota_graph(opts = {})
+    entity = nil
+    params[:account] = CloudAccount.find(params[:id])
+    graph = GraphService.dashboard_quota(current_user, 
params)[params[:account]][Graph::QUOTA_INSTANCES_IN_USE]
+    respond_to do |format|
+      format.svg  { render :xml => graph.svg}
+    end
+  end
+
   def index
+    # FIXME filter to just those that the user has access to
     @providers = Provider.find(:all)
+    @cloud_accounts = CloudAccount.find(:all)
+    @pools = Pool.find(:all)
 
     # FIXME remove general role based permission check, replace w/
     # more granular / per-permission-object permission checks on the
diff --git a/src/app/views/dashboard/summary.haml 
b/src/app/views/dashboard/summary.haml
index a0687a9..b556f7d 100644
--- a/src/app/views/dashboard/summary.haml
+++ b/src/app/views/dashboard/summary.haml
@@ -26,67 +26,96 @@
       %input{ :id => "hide_getting_started", :type => "checkbox" }
         Thanks, don't show this again
 
-#actions_dashboard_section
-  %h2
-    Actions
-  - if @is_admin
-    %a{:href => url_for(:controller => "cloud_accounts", :action => "new")}
-      Add a Provider Account
-    %a{:href => url_for(:controller => "provider", :action => "new")}
-      Add a Provider
-    %a{:href => url_for(:controller => "image_descriptor", :action => "new")}
-      Create a Template
-    %a{:href => url_for(:controller => "users", :action => "new")}
-      Create a User
-    %a{:href => url_for(:controller => "instance", :action => "index")}
-      View Instances
-  - else
-    %a{:href => url_for(:controller => "", :action => "")}
-      Launch Instances
-    %a{:href => url_for(:controller => "", :action => "")}
-      Enter a help ticket
+.dashboard_column
+  #actions_dashboard_section
+    %h2
+      Actions
+    - if @is_admin
+      %a{:href => url_for(:controller => "cloud_accounts", :action => "new")}
+        Add a Provider Account
+      %a{:href => url_for(:controller => "provider", :action => "new")}
+        Add a Provider
+      %a{:href => url_for(:controller => "", :action => "")}
+        Create a Template
+      %a{:href => url_for(:controller => "users", :action => "new")}
+        Create a User
+    - else
+      %a{:href => url_for(:controller => "", :action => "")}
+        Launch Instances
+      %a{:href => url_for(:controller => "", :action => "")}
+        Enter a help ticket
 
-#key_indicators_dashboard_section
-  %h2
-    Key indicators
-  %ul
-    %li
-      Providers
-      .count= @providers.size
-    %li
-      Accounts
-      .count= @cloud_accounts.size
-    %li
-      Pools
-      .count= @pools.size
-    %li
-      Running instances
-      .count= @stats[:running_instances]
-    %li
-      Stopped instances
-      .count= @stats[:stopped_instances]
-    %li
-      Total instances
-      .count= @stats[:total_instances]
-  .instance_graph #instance_graph
+  #service_quality_dashboard_section
+    - if @is_admin
+      %h2
+        Provider Service Quality
+      .dashboard_section_summary
+        <img src="images/dashboard_summary_next.png" /><img 
src="images/dashboard_summary_prev.png" />
+        %p
+          Average time to submit tasks to provider, 24 hours
+        <div style="clear: both;" />
+      - @providers.each do |provider|
+        .provider_service_quality_graph
+          = "<object data='" + url_for(:action => :provider_qos_graph, :id => 
provider.id, :width => 100, :height => 50) + "' type='image/svg+xml' />"
+        .provider_service_quality_graph_summary
+          = provider.name
+          <!-- FIXME 'good/poor/average service... -->
+      <div style="clear: both;" />
+    - else
+      %h2
+        Service Quality
 
-#service_quality_dashboard_section
-  - if @is_admin
+  #key_indicators_dashboard_section
     %h2
-      Provider Service Quality
-    .dashboard_section_summary
-      Average time to submit tasks to provider, 24 hours
-      <img src="images/dashboard_summary_prev.png" /><img 
src="images/dashboard_summary_next.png" />
-    - @providers.each do |provider|
-      .provider_service_quality_graph
-        = "<object data='" + url_for(:action => :provider_qos_graph, :id => 
provider.id, :width => 100, :height => 50) + "' type='image/svg+xml' />"
-      .provider_service_quality_graph_summary
-        = provider.name
-        <!-- FIXME 'good/poor/average service... -->
-    <div style="clear: both;" />
-  - else
+      Key indicators
+    %ul
+      %li
+        Providers
+        .count= @providers.size
+      %li
+        Accounts
+        .count= @cloud_accounts.size
+      %li
+        Pools
+        .count= @pools.size
+      %li
+        Running instances
+        .count= @stats[:running_instances]
+      %li
+        Stopped instances
+        .count= @stats[:stopped_instances]
+      %li
+        Total instances
+        .count= @stats[:total_instances]
+    .instance_graph #instance_graph
+
+.dashboard_column
+  #quota_usage_dashboard_section
     %h2
-      Service Quality
+      Quota Usage
+    .dashboard_section_summary
+      Instance utilization by account
+    - @cloud_accounts.each do |account|
+      .account_quota_usage_graph_summary
+        = "Account " + account.username
+      .account_quota_usage_history_graph
+        <!-- FIXME include graph -->
+      .account_quota_usage_current_graph
+        = "<object data='" + url_for(:action => :account_quota_graph, :id => 
account.id, :width => 100, :height => 50) + "' type='image/svg+xml' />"
+      <div style="clear: both;" />
+    .dashboard_section_summary
+      <img src="images/dashboard_summary_next.png" /><img 
src="images/dashboard_summary_prev.png" />
+      %p
+        Quota usage by pool
+      <div style="clear: both;" />
+    - @pools.each do |pool|
+      .pool_quota_usage_summary
+        = pool.name
+      .pool_quota_usage_limit
+        <!-- FIXME 'quota limit met'... -->
+      .pool_quota_usage_instances
+        <!-- FIXME 'running instances'... -->
+      <div style="clear: both;" />
 
 :javascript
   $("#hide_getting_started").click(function(){
diff --git a/src/public/stylesheets/components.css 
b/src/public/stylesheets/components.css
index 6ba5969..eec50c0 100644
--- a/src/public/stylesheets/components.css
+++ b/src/public/stylesheets/components.css
@@ -74,20 +74,32 @@ ul.nav li.selected {
 }
 
 /* dashboard style */
+.dashboard_column{
+  float: left;
+  width: 47%;
+}
+
 .dashboard_section_summary {
   background: #F2F2F2;
   font-size: 0.8em;
   font-weight: bolder;
-  margin: 0 15px 10px 0;
+  margin: 10px 15px 10px 0;
   padding: 5px 0px 5px 5px;
 }
 
+.dashboard_section_summary p {
+  display: inline;
+  float: left;
+  margin: 3px 0 3px 0;
+}
+
 .dashboard_section_summary img:first-child {
-  padding-left: 40px;
+  padding-right: 5px;
 }
 
 .dashboard_section_summary img {
   vertical-align: middle;
+  float: right;
 }
 
 #getting_started_dashboard_section {
@@ -210,6 +222,67 @@ ul.nav li.selected {
   float: left;
 }
 
+#quota_usage_dashboard_section {
+  width: 390px;
+  border: 1px solid black;
+  padding: 5px 0 5px 15px;
+  margin: 10px 0px 10px 5px;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
+}
+
+.account_quota_usage_graph_summary {
+  font-size: 0.8em;
+  padding-left: 15px;
+  display: inline;
+  float: left;
+}
+
+.account_quota_usage_history_graph {
+  display: inline;
+  float: left;
+  margin-left: 10px;
+  border: 1px solid black;
+  width:  120px;
+  height: 20px;
+}
+
+.account_quota_usage_current_graph {
+  display: inline;
+  float: left;
+  margin-left: 10px;
+  border: 1px solid black;
+  width:  140px;
+  height: 20px;
+}
+
+.pool_quota_usage_summary {
+  display: inline;
+  float: left;
+  padding-left: 15px;
+  width: 15%;
+}
+
+.pool_quota_usage_limit {
+  display: inline;
+  float: left;
+  width: 33%;
+  height: 25px;
+  border: 1px solid black;
+  margin-left: 17px;
+}
+
+.pool_quota_usage_instances {
+  display: inline;
+  float: left;
+  width: 33%;
+  height: 25px;
+  border: 1px solid black;
+  margin-left: 17px;
+  margin-bottom: 15px;
+}
+
+
 #image_descriptor_form {
   width: 800px;
   margin: 20px;
-- 
1.6.2.5

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to