myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2350] branches/dashboard: Created the dashboard


From: noreply
Subject: [myexperiment-hackers] [2350] branches/dashboard: Created the dashboard controller and it shows some user data as an initial example .
Date: Mon, 29 Mar 2010 11:06:07 -0400 (EDT)

Revision
2350
Author
mmr
Date
2010-03-29 11:06:06 -0400 (Mon, 29 Mar 2010)

Log Message

Created the dashboard controller and it shows some user data as an initial example.

Modified Paths

Added Paths

Diff

Added: branches/dashboard/app/controllers/dashboard_controller.rb (0 => 2350)


--- branches/dashboard/app/controllers/dashboard_controller.rb	                        (rev 0)
+++ branches/dashboard/app/controllers/dashboard_controller.rb	2010-03-29 15:06:06 UTC (rev 2350)
@@ -0,0 +1,54 @@
+# myExperiment: app/controllers/dashboard_controller.rb
+# 
+# Copyright (c) 2010 Univeristy of Manchester and the University of Southampton.
+# See license.txt
+
+class DashboardController < ApplicationController
+  before_filter :check_admin, :load_stats_dates
+
+  def index
+    @total_users = User.find(:all).length
+    @unactivated_users = User.find(:all).select do |u|
+      u.activated_at.nil?
+    end.length
+    @unactivated_users_pct = ((Float.induced_from(@unactivated_users)/Float.induced_from(@total_users)) * 100).round
+    @activated_users = @total_users - @unactivated_users
+    @activated_users_pct = ((Float.induced_from(@activated_users)/Float.induced_from(@total_users)) * 100).round
+    @user_chart_url = user_chart_url(@activated_users_pct, @unactivated_users_pct)
+
+    @top_ten_networks = Network.most_members
+    @top_ten_networks_chart_url = network_chart_url @top_ten_networks
+  end
+
+  protected
+
+  def user_chart_url(activated_users_pct, unactivated_users_pct)
+    "http://chart.apis.google.com/chart?chs=400x150&cht=p3&chtt=User Breakdown&chco=246090&chdl=Activated (#{activated_users_pct}%)|Unactivated (#{unactivated_users_pct}%)&chd=t:#{activated_users_pct},#{unactivated_users_pct}"
+  end
+
+  def network_chart_url(networks)
+    labels = []
+    values = []
+    networks.each do |n|
+      labels.push ActionView::Helpers::TextHelper.truncate(n.title)
+      values.push n.memberships.length
+    end
+    "http://chart.apis.google.com/chart?chs=400x150&cht=bvs&chtt=Top Ten User Networks&chco=246090&chxt=x,y&chxr=0,1,10&chd=t:#{values.join ","}&chm=N,000000,0,-1,11"
+  end
+
+  def check_admin
+    unless current_user.admin?
+      flash[:error] = 'Only administrators have access to the statistics dashboard.'
+      if current_user.nil?
+        redirect_to :controller => 'session', :action ="" 'new'
+      else
+        redirect_to :controller => 'home'
+      end
+    end
+  end
+
+  def load_stats_dates
+    @stats_end_date = params[:stats_end_date] || Date.today
+    @stats_start_date = params[:stats_start_date] || @stats_end_date - 7
+  end
+end

Added: branches/dashboard/app/views/dashboard/_breadcrumbs.rhtml (0 => 2350)


--- branches/dashboard/app/views/dashboard/_breadcrumbs.rhtml	                        (rev 0)
+++ branches/dashboard/app/views/dashboard/_breadcrumbs.rhtml	2010-03-29 15:06:06 UTC (rev 2350)
@@ -0,0 +1 @@
+<li><%= link_to 'Dashboard', dashboard_path -%></li>

Added: branches/dashboard/app/views/dashboard/_subnav.rhtml ( => )


Added: branches/dashboard/app/views/dashboard/index.rhtml
===================================================================
--- branches/dashboard/app/views/dashboard/index.rhtml	                        (rev 0)
+++ branches/dashboard/app/views/dashboard/index.rhtml	2010-03-29 15:06:06 UTC (rev 2350)
@@ -0,0 +1,40 @@
+<h1>Statistics Dashboard</h1>
+<p>This is the current statistics report for <%= Conf.sitename %> from <%= @stats_start_date %> to <%= @stats_end_date %>.</p>
+<div id="user-stats">
+  <h2>Users &amp; Networks</h2>
+  <div class="stats-area stats-area-left">
+    <p>This is a breakdown of the registered users in your system.</p>
+    <table>
+     <tbody>
+       <tr>
+         <td>Activated Users</td>
+         <td><%= @activated_users %></td>
+       </tr>
+       <tr>
+         <td>Unactivated Users</td>
+         <td><%= @unactivated_users %></td>
+       </tr>
+       <tr>
+         <th>Registered Users</th>
+          <td><%= @total_users %></td>
+       </tr>
+     </tbody>
+    </table>
+  </div>
+  <div class="stats-area">
+    <img src="" @user_chart_url %>"/>
+  </div>
+  <div class="stats-clear"></div>
+  <div class="stats-area stats-area-left">
+    <p>These are the top 10 biggest networks;</p>
+    <ol>
+      <% @top_ten_networks.each do |n| %>
+        <li><%= link_to n.title, group_path(n) %> (<%= n.memberships.length %>)</li>
+      <% end %>
+    </ol>
+  </div>
+  <div class="stats-area">
+    <img src="" @top_ten_networks_chart_url %>"/>
+  </div>
+  <div class="stats-clear"></div>
+</div>

Modified: branches/dashboard/app/views/gadgets/_user_monitor.rhtml (2349 => 2350)


--- branches/dashboard/app/views/gadgets/_user_monitor.rhtml	2010-03-26 16:27:22 UTC (rev 2349)
+++ branches/dashboard/app/views/gadgets/_user_monitor.rhtml	2010-03-29 15:06:06 UTC (rev 2350)
@@ -27,6 +27,7 @@
 		<hr/>	
 		<ul class="gadget_list">
 			<li><%= icon "announcement", announcements_url, nil, nil, "Manage Announcements" %></li>
+      <li><%= icon "dashboard", dashboard_url, nil, nil, "Statistics Dashboard" %></li>
 		</ul>
 	<% end %>
 	

Modified: branches/dashboard/config/environment.rb (2349 => 2350)


--- branches/dashboard/config/environment.rb	2010-03-26 16:27:22 UTC (rev 2349)
+++ branches/dashboard/config/environment.rb	2010-03-29 15:06:06 UTC (rev 2350)
@@ -74,5 +74,7 @@
 
 ActionMailer::Base.smtp_settings = Conf.smtp
 
+require 'lib/actionpack_ext.rb'
+
 load 'config/environment_private.rb' if FileTest.exist?('config/environment_private.rb')
 

Modified: branches/dashboard/config/routes.rb (2349 => 2350)


--- branches/dashboard/config/routes.rb	2010-03-26 16:27:22 UTC (rev 2349)
+++ branches/dashboard/config/routes.rb	2010-03-29 15:06:06 UTC (rev 2350)
@@ -220,5 +220,7 @@
 
   # Install the default route as the lowest priority.
   map.connect ':controller/:action/:id'
+
+  map.dashboard 'dashboard', :controller => 'dashboard'
 end
 

Added: branches/dashboard/public/stylesheets/dashboard.css (0 => 2350)


--- branches/dashboard/public/stylesheets/dashboard.css	                        (rev 0)
+++ branches/dashboard/public/stylesheets/dashboard.css	2010-03-29 15:06:06 UTC (rev 2350)
@@ -0,0 +1,14 @@
+.stats-area {
+  float: left;
+  padding: 10px;
+}
+
+.stats-area-left {
+  border-right: 1px solid #afafaf;
+  width: 30%;
+}
+
+.stats-clear {
+  border-bottom: 1px solid #afafaf;
+  clear: both;
+}

Modified: branches/dashboard/public/stylesheets/styles.css (2349 => 2350)


--- branches/dashboard/public/stylesheets/styles.css	2010-03-26 16:27:22 UTC (rev 2349)
+++ branches/dashboard/public/stylesheets/styles.css	2010-03-29 15:06:06 UTC (rev 2350)
@@ -6,6 +6,9 @@
    Note that for font-size, only use %ages according to: 
    http://developer.yahoo.com/yui/fonts/#fontsize
 */
+
address@hidden url(/stylesheets/dashboard.css);
+
 body {
 	background: #8e8e8e url('/images/body-bg.gif') repeat-y center;
 	/* Only need to define one font here because the 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]