Changes related to presentation, and new tabs.
[ckanext-ga-report.git] / ckanext / ga_report / templates / ga_report / site / index.html
blob:a/ckanext/ga_report/templates/ga_report/site/index.html -> blob:b/ckanext/ga_report/templates/ga_report/site/index.html
--- a/ckanext/ga_report/templates/ga_report/site/index.html
+++ b/ckanext/ga_report/templates/ga_report/site/index.html
@@ -7,37 +7,36 @@
 
   <py:def function="page_title">Site usage</py:def>
 
+  <py:def function="optional_head">
+    <link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/>
+    <link rel="stylesheet" type="text/css" href="/css/ga_report.css"/>
+    <script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script>
+    <script type="text/javascript" src="/scripts/vendor/d3.v2.js"></script>
+    <script type="text/javascript" src="/scripts/vendor/d3.layout.min.js"></script>
+    <script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script>
+  </py:def>
+
   <py:match path="primarysidebar">
-    <li class="widget-container boxed widget_text">
-      <h4>Site-wide</h4>
-      <p>
-          Note: this data does not include API calls and some values have been rounded up to 2 decimal places.  Where there are a large number of browser versions they have been grouped together.
-      </p>
-    </li>
     <li class="widget-container boxed widget_text">
       <h4>Download</h4>
       <p><center>
-          <a class="btn button" href="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='csv',month=c.month or 'all')}">Download as CSV</a></center>
+          <a class="btn button btn-primary" href="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='csv',month=c.month or 'all')}">Download as CSV</a></center>
       </p>
     </li>
+    <xi:include href="../notes.html" />
 
   </py:match>
 
   <div py:match="content">
       <h1>Site Usage</h1>
-
-      ${usage_nav('Site-wide', None)}
+      ${usage_nav('Site-wide')}
 
       <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
           <div class="controls">
-          <select name="month">
-                <option value='' py:attrs="{'selected': 'selected' if not c.month else None}">All time</option>
 
-              <py:for each="val,desc in c.months">
-                <option value='${val}' py:attrs="{'selected': 'selected' if c.month == val else None}">${desc}</option>
-              </py:for>
-          </select>
-           <input class="btn button" type='submit' value="Update"/>
+          ${month_selector(c.month, c.months, c.day)}
+
+           <input class="btn button btn-primary" type='submit' value="Update"/>
           </div>
        </form>
 
@@ -60,7 +59,16 @@
                 <li><a href="#os_versions" data-toggle="tab">Versions</a></li>
             </ul>
         </li>
-        <li><a href="#social_networks" data-toggle="tab">Social Networks</a></li>
+        <li class="dropdown">
+            <a href="#browsers" class="dropdown-toggle" data-toggle="dropdown">Social Networks
+                <b class="caret"></b></a>
+            <ul class="dropdown-menu">
+                <li><a href="#social_networks" data-toggle="tab">All networks</a></li>
+                <li><a href="#social_referrals_totals" data-toggle="tab">Referral links</a></li>
+            </ul>
+        </li>
+
+        <li><a href="#social_networks" data-toggle="tab"></a></li>
         <li><a href="#languages" data-toggle="tab">Languages</a></li>
         <li><a href="#country" data-toggle="tab">Country</a></li>
       </ul>
@@ -70,56 +78,82 @@
             	 <tr>
             	   <th>Name</th>
             	   <th>Value</th>
+            	   <th>History</th>
             	 </tr>
-                <py:for each="name, value in c.global_totals">
+                <py:for each="name, value, graph in c.global_totals">
                     <tr>
                         <td>${name}</td>
                         <td>${value}</td>
+                        <td class="sparkline-cell">
+                          <span class="sparkline" sparkTooltips="${','.join([x for x,y in graph])}">
+                            ${','.join([y for x,y in graph])}
+                          </span>
+                        </td>
                     </tr>
                 </py:for>
                </table>
         </div>
          <div class="tab-pane" id="browsers_versions">
+             ${rickshaw_graph(c.browser_versions_graph,'browser-versions')}
+             <p>Note: Where a browser has a large number of versions, these have been grouped together.</p>
              ${stat_table(c.browser_versions)}
          </div>
          <div class="tab-pane" id="browsers_names">
+             ${rickshaw_graph(c.browsers_graph,'browsers')}
              ${stat_table(c.browsers)}
          </div>
          <div class="tab-pane" id="os">
+             ${rickshaw_graph(c.os_graph,'os')}
              ${stat_table(c.os)}
          </div>
          <div class="tab-pane" id="os_versions">
+             ${rickshaw_graph(c.os_versions_graph,'os_versions')}
              ${stat_table(c.os_versions)}
          </div>
+        <div class="tab-pane" id="social_referrals_totals">
+            <p>Number of visits that were referred from social networks</p>
+            ${social_table(c.social_referrer_totals)}
+        </div>
         <div class="tab-pane" id="social_networks">
-             ${stat_table(c.social_networks)}
+             ${rickshaw_graph(c.social_networks_graph, 'social_networks')}
+            <p>Percentage of visits that were referred from these social networks</p>
+             ${stat_table(c.social_networks, 'Visits')}
         </div>
         <div class="tab-pane" id="languages">
+             ${rickshaw_graph(c.languages_graph,'languages')}
              ${stat_table(c.languages)}
         </div>
         <div class="tab-pane" id="country">
+             ${rickshaw_graph(c.country_graph,'country')}
              ${stat_table(c.country)}
         </div>
+       </div>
+     </div>
+  </div>
 
 
-       </div>
-     </div>
-
-
-
-  </div>
+  <py:def function="optional_footer">
+    <script type="text/javascript">
+      $(function() {
+          var sparkOptions = {
+            enableTagOptions: true,
+            type: 'line',
+            width: 100,
+            height: 26,
+            chartRangeMin: 0,
+            spotColor: '',
+            maxSpotColor: '',
+            minSpotColor: '',
+            highlightSpotColor: '000000',
+            lineColor: '3F8E6D',
+            fillColor: 'B7E66B'
+          };
+          $('.sparkline').sparkline('html',sparkOptions);
+      });  
+    </script>
+  </py:def>
 
   <xi:include href="../../layout.html" />
-
-  <py:def function="optional_footer">
-    <script type='text/javascript'>
-        $('.dropdown-toggle').dropdown();
-        $('.nav-tabs li a').click(function (e) {
-          e.preventDefault();
-          $(this).tab('show');
-        })
-    </script>
-  </py:def>
 </html>