Show top datasets cross-publisher. Drop-down for the publisher. Browser version numbers filtered on download, so you get this version in the CSV too - for privacy. single_popular_dataset now copes when not much data, and can return the figures so DGU can reskin it in its own repo. Notes about usage stats centralised to notes.html.
[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,130 +7,193 @@
 
   <py:def function="page_title">Site usage</py:def>
 
-  <py:match path="primarysidebar">
-    <li class="widget-container boxed widget_text">
-      <h4>Download</h4>
-      <p><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:def function="optional_head">
+  </py:def>
+
+ <py:match path="breadcrumbs">
+    <li><a href="/site-usage">Site Analytics</a></li>
+    <li><a href="/site-usage">Site-wide</a></li>
   </py:match>
 
   <div py:match="content">
-      <h1>Site Usage</h1>
-      ${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 months</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 btn-primary" type='submit' value="Update"/>
+    <div class="row">
+      <div class="col-sm-7 col-md-8 col-lg-9">
+        <py:with vars="download_link=h.url_for(controller='ckanext.ga_report.controller:GaReport',action='csv',month=c.month or 'all')">
+          <a class="btn button btn-primary btn-sm pull-right" href="${download_link}"><i class="icon-download"></i>&nbsp; Download as CSV</a>
+        </py:with>
+        <h1>Site Usage</h1>
+      </div>
+      <div class="col-sm-5 col-md-4 col-lg-3">
+        <div class="panel panel-default">
+          <div class="panel-heading"><strong>Jump To...</strong></div>
+          <div class="panel-body">
+            <ul>
+              <li><a href="/site-usage/publisher">Publisher Usage Statistics</a></li>
+              <li><a href="/site-usage/dataset">Dataset Usage Statistics</a></li>
+            </ul>
           </div>
-       </form>
-
-    <div class="tabbable">
-      <ul class="nav nav-tabs">
-        <li class="active"><a href="#totals" data-toggle="tab">Totals</a></li>
-        <li class="dropdown">
-            <a href="#browsers" class="dropdown-toggle" data-toggle="dropdown">Browsers
-                <b class="caret"></b></a>
-            <ul class="dropdown-menu">
-                <li><a href="#browsers_names" data-toggle="tab">Browsers</a></li>
-                <li><a href="#browsers_versions" data-toggle="tab">Versions</a></li>
+        </div>
+      </div>
+    </div>
+
+    <div class="row" style="background: #fff;">
+      <div class="col-md-8">
+        <div class="whitebox">
+          <div class="tabbable">
+            <ul class="nav nav-tabs">
+              <li class="active"><a href="#totals" data-hash="totals" data-toggle="tab">Totals</a></li>
+              <li class="dropdown">
+                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Browsers
+                      <b class="caret"></b></a>
+                  <ul class="dropdown-menu">
+                      <li><a href="#browsers_names" data-hash="browsers_names" data-toggle="tab">Browsers</a></li>
+                      <li><a href="#browsers_versions" data-hash="browsers_versions" data-toggle="tab">Versions</a></li>
+                  </ul>
+              </li>
+              <li class="dropdown">
+                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Operating Systems
+                      <b class="caret"></b></a>
+                  <ul class="dropdown-menu">
+                      <li><a href="#os" data-hash="os" data-toggle="tab">Operating Systems</a></li>
+                      <li><a href="#os_versions" data-hash="os_versions" data-toggle="tab">Versions</a></li>
+                  </ul>
+              </li>
+              <li class="dropdown">
+                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Social
+                      <b class="caret"></b></a>
+                  <ul class="dropdown-menu">
+                      <li><a href="#social_networks" data-hash="social_networks" data-toggle="tab">All networks</a></li>
+                      <li><a href="#social_referrals_totals" data-hash="social_referrals_totals" data-toggle="tab">Referral links</a></li>
+                  </ul>
+              </li>
+              <li><a href="#languages" data-hash="languages" data-toggle="tab">Languages</a></li>
+              <li><a href="#country" data-hash="country" data-toggle="tab">Country</a></li>
             </ul>
-        </li>
-        <li class="dropdown">
-            <a href="#browsers" class="dropdown-toggle" data-toggle="dropdown">Operating<br/>Systems
-                <b class="caret"></b></a>
-            <ul class="dropdown-menu">
-                <li><a href="#os" data-toggle="tab">Operating Systems</a></li>
-                <li><a href="#os_versions" data-toggle="tab">Versions</a></li>
-            </ul>
-        </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>
-      <div class="tab-content">
-        <div class="tab-pane active" id="totals">
-             <table class="table table-condensed table-bordered table-striped">
-            	 <tr>
-            	   <th>Name</th>
-            	   <th>Value</th>
-            	 </tr>
-                <py:for each="name, value in c.global_totals">
-                    <tr>
-                        <td>${name}</td>
-                        <td>${value}</td>
-                    </tr>
-                </py:for>
-               </table>
-        </div>
-         <div class="tab-pane" id="browsers_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">
-             ${stat_table(c.browsers)}
-         </div>
-         <div class="tab-pane" id="os">
-             ${stat_table(c.os)}
-         </div>
-         <div class="tab-pane" id="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">
-            <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">
-             ${stat_table(c.languages)}
-        </div>
-        <div class="tab-pane" id="country">
-             ${stat_table(c.country)}
-        </div>
-
-
+            <div class="tab-content">
+              <div class="tab-pane active" id="totals">
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                   <table class="ga-reports-table table table-condensed table-bordered table-striped">
+                     <tr>
+                       <th>Name</th>
+                       <th class="td-numeric">Value</th>
+                       <th>History</th>
+                     </tr>
+                      <py:for each="name, value, graph in c.global_totals">
+                          <tr>
+                              <td>${name}</td>
+                              <td class="td-numeric">${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',mode='stack')}
+                   <hr/>
+                   <p>Note: Where a browser has a large number of versions, these have been grouped together.</p>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.browser_versions)}
+               </div>
+               <div class="tab-pane" id="browsers_names">
+                   ${rickshaw_graph(c.browsers_graph,'browsers',mode='stack')}
+                   <hr/>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.browsers)}
+               </div>
+               <div class="tab-pane" id="os">
+                   ${rickshaw_graph(c.os_graph,'os',mode='stack')}
+                   <hr/>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.os)}
+               </div>
+               <div class="tab-pane" id="os_versions">
+                   ${rickshaw_graph(c.os_versions_graph,'os_versions',mode='stack')}
+                   <hr/>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${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>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                  ${social_table(c.social_referrer_totals)}
+              </div>
+              <div class="tab-pane" id="social_networks">
+                   ${rickshaw_graph(c.social_networks_graph, 'social_networks',mode='stack')}
+                   <hr/>
+                  <p>Percentage of visits that were referred from these social networks</p>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.social_networks, 'Visits')}
+              </div>
+              <div class="tab-pane" id="languages">
+                   ${rickshaw_graph(c.languages_graph,'languages',mode='stack')}
+                   <hr/>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.languages)}
+              </div>
+              <div class="tab-pane" id="country">
+                   ${rickshaw_graph(c.country_graph,'country',mode='stack')}
+                   <hr/>
+                   <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get">
+                     <h4 class="ga-reports-heading">Show stats table for:</h4>
+                     ${month_selector(c.month, c.months, c.day)}
+                   </form>
+                <hr/>
+                   ${stat_table(c.country)}
+              </div>
+             </div>
+           </div>
        </div>
-     </div>
-
-
+      </div>
+    </div>
 
   </div>
 
-  <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');
-        })
-        alert(window.location.hash);
+    <script type="text/javascript">
+      $(function() {
+        CKAN.GA_Reports.bind_sparklines();
+        CKAN.GA_Reports.bind_sidebar();
+        CKAN.GA_Reports.bind_month_selector();
+      });
     </script>
   </py:def>
+
+  <xi:include href="layout.html" />
 </html>