--- a/ckanext/ga_report/templates/ga_report/site/index.html +++ b/ckanext/ga_report/templates/ga_report/site/index.html @@ -8,127 +8,177 @@ <py:def function="page_title">Site usage</py:def> <py:def function="optional_head"> - <script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> - <style type="text/css"> - .table-condensed td.sparkline-cell { - padding: 1px 0 0 0; - width: 108px; - text-align: center; - } - </style> </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: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"> - - ${month_selector(c.month, c.months, c.day)} - - <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> 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> - <th>History</th> - </tr> - <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"> - <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> @@ -136,25 +186,14 @@ <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); + CKAN.GA_Reports.bind_sparklines(); + CKAN.GA_Reports.bind_sidebar(); + CKAN.GA_Reports.bind_month_selector(); }); </script> </py:def> - <xi:include href="../../layout.html" /> + <xi:include href="layout.html" /> </html>