.table-condensed td.sparkline-cell { | .table-condensed td.sparkline-cell { |
padding: 1px 0 0 0; | padding: 1px 0 0 0; |
width: 108px; | width: 108px; |
text-align: center; | text-align: center; |
} | } |
.rickshaw_chart_container { | .rickshaw_chart_container { |
position: relative; | position: relative; |
height: 350px; | height: 350px; |
margin: 0 auto 20px auto; | margin: 0 auto 20px auto; |
} | } |
.rickshaw_chart { | .rickshaw_chart { |
position: absolute; | position: absolute; |
left: 40px; | left: 40px; |
width: 500px; | width: 500px; |
top: 0; | top: 0; |
bottom: 0; | bottom: 0; |
} | } |
.rickshaw_legend { | .rickshaw_legend { |
background: transparent; | background: transparent; |
width: 100%; | width: 100%; |
} | } |
.rickshaw_y_axis { | .rickshaw_y_axis { |
position: absolute; | position: absolute; |
top: 0; | top: 0; |
bottom: 0; | bottom: 0; |
width: 40px; | width: 40px; |
} | } |
.rickshaw_legend .label { | .rickshaw_legend .label { |
background: transparent !important; | background: transparent !important; |
color: #000000 !important; | color: #000000 !important; |
font-weight: normal !important; | font-weight: normal !important; |
} | } |
.rickshaw_legend .line .action { | .rickshaw_legend .line .action { |
display: none; | display: none; |
} | } |
.rickshaw_legend .line .swatch { | .rickshaw_legend .line .swatch { |
display: block; | display: block; |
float: left; | float: left; |
} | } |
.rickshaw_legend .line .label { | .rickshaw_legend .line .label { |
display: block; | display: block; |
white-space: normal; | white-space: normal; |
float: left; | float: left; |
width: 200px; | width: 200px; |
} | } |
.ga-reports-table .td-numeric { | |
text-align: center; | |
} | |
<html | <html |
xmlns="http://www.w3.org/1999/xhtml" | xmlns="http://www.w3.org/1999/xhtml" |
xmlns:i18n="http://genshi.edgewall.org/i18n" | xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:py="http://genshi.edgewall.org/" | xmlns:py="http://genshi.edgewall.org/" |
xmlns:xi="http://www.w3.org/2001/XInclude" | xmlns:xi="http://www.w3.org/2001/XInclude" |
py:strip="" | py:strip="" |
> | > |
<select name="month" py:def="month_selector(current_month, months, day)"> | <select name="month" py:def="month_selector(current_month, months, day)"> |
<option value='' py:attrs="{'selected': 'selected' if not current_month else None}">All months</option> | <option value='' py:attrs="{'selected': 'selected' if not current_month else None}">All months</option> |
<py:for each="i, (val,desc) in enumerate(months)"> | <py:for each="i, (val,desc) in enumerate(months)"> |
<option value='${val}' py:attrs="{'selected': 'selected' if current_month == val else None}">${desc}<py:if test="i == 0 and day"> (up to ${day})</py:if></option> | <option value='${val}' py:attrs="{'selected': 'selected' if current_month == val else None}">${desc}<py:if test="i == 0 and day"> (up to ${day})</py:if></option> |
</py:for> | </py:for> |
</select> | </select> |
<table py:def="social_table(items, with_source=False)" class="table table-condensed table-bordered table-striped"> | <table py:def="social_table(items, with_source=False)" class="ga-reports-table table table-condensed table-bordered table-striped"> |
<tr> | <tr> |
<th>Name</th> | <th>Name</th> |
<th py:if="with_source">Source</th> | <th py:if="with_source">Source</th> |
<th>Visits</th> | <th>Visits</th> |
</tr> | </tr> |
<py:for each="name, url, source, count in items"> | <py:for each="name, url, source, count in items"> |
<tr> | <tr> |
<td><a href="${url}">${name}</a></td> | <td><a href="${url}">${name}</a></td> |
<td py:if="with_source">${source}</td> | <td py:if="with_source">${source}</td> |
<td>${count}</td> | <td class="td-numeric">${count}</td> |
</tr> | </tr> |
</py:for> | </py:for> |
</table> | </table> |
<div py:def="rickshaw_graph(items_json,id,mode='line',colorscheme='munin')"> | <div py:def="rickshaw_graph(items_json,id,mode='line',colorscheme='munin')"> |
<div id="chart_container_$id" class="rickshaw_chart_container"> | <div id="chart_container_$id" class="rickshaw_chart_container"> |
<div id="y_axis_$id" class="rickshaw_y_axis"></div> | <div id="y_axis_$id" class="rickshaw_y_axis"></div> |
<div id="chart_$id" class="rickshaw_chart"></div> | <div id="chart_$id" class="rickshaw_chart"></div> |
<script type="text/javascript"> | <script type="text/javascript"> |
$(function() { | $(function() { |
var items = $items_json; | var items = $items_json; |
if (items.length==0) { return; } | if (items.length==0) { return; } |
CKAN.GA_Reports.render_rickshaw('$id', items, '$mode', '$colorscheme'); | CKAN.GA_Reports.render_rickshaw('$id', items, '$mode', '$colorscheme'); |
}); | }); |
</script> | </script> |
</div> | </div> |
</div> | </div> |
<table py:def="stat_table(items, title='Views')" class="table table-condensed table-bordered table-striped"> | <table py:def="stat_table(items, title='Views')" class="ga-reports-table table table-condensed table-bordered table-striped"> |
<tr> | <tr> |
<th>Name</th> | <th>Name</th> |
<th>% ${title}</th> | <th class="td-numeric">% ${title}</th> |
</tr> | </tr> |
<py:for each="name, value in items"> | <py:for each="name, value in items"> |
<tr> | <tr> |
<td>${name}</td> | <td>${name}</td> |
<td>${value}</td> | <td class="td-numeric">${value}</td> |
</tr> | </tr> |
</py:for> | </py:for> |
</table> | </table> |
<div py:def="usage_nav(active_name)" id="minornavigation"> | <div py:def="usage_nav(active_name)" id="minornavigation"> |
<div id="minornavigation-bg-left"> | <div id="minornavigation-bg-left"> |
<div id="minornavigation-bg-right"> | <div id="minornavigation-bg-right"> |
<ul class="nav nav-pills"> | <ul class="nav nav-pills"> |
<li py:attrs="{'class': 'active' if active_name=='Site-wide' else None}"><a py:attrs="{'class': 'active' if active_name=='Site-wide' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Site-wide</a></li> | <?python querystring='?month='+c.month if c.month else '' ?> |
<li py:attrs="{'class': 'active' if active_name=='Site-wide' else None}"><a py:attrs="{'class': 'active' if active_name=='Site-wide' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}${querystring}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Site-wide</a></li> | |
<li py:attrs="{'class': 'active' if active_name=='Publishers' else None}"> | <li py:attrs="{'class': 'active' if active_name=='Publishers' else None}"> |
<a py:attrs="{'class': 'active' if active_name=='Publishers' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='publishers')}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Publishers</a> | <a py:attrs="{'class': 'active' if active_name=='Publishers' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='publishers')}${querystring}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Publishers</a> |
</li> | </li> |
<li py:attrs="{'class': 'active' if active_name=='Datasets' else None}"> | <li py:attrs="{'class': 'active' if active_name=='Datasets' else None}"> |
<a py:attrs="{'class': 'active' if active_name=='Datasets' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='read')}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Datasets</a> | <a py:attrs="{'class': 'active' if active_name=='Datasets' else None}" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='read')}${querystring}"><img src="/images/icons/page_white.png" height="16px" width="16px" alt="None" class="inline-icon "/> Datasets</a> |
</li> | </li> |
</ul> | </ul> |
</div> | </div> |
</div> | </div> |
</div> | </div> |
</html> | </html> |
<html xmlns:py="http://genshi.edgewall.org/" | <html xmlns:py="http://genshi.edgewall.org/" |
xmlns:i18n="http://genshi.edgewall.org/i18n" | xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:xi="http://www.w3.org/2001/XInclude" | xmlns:xi="http://www.w3.org/2001/XInclude" |
py:strip=""> | py:strip=""> |
<xi:include href="../ga_util.html" /> | <xi:include href="../ga_util.html" /> |
<py:def function="page_title">Usage by Publisher</py:def> | <py:def function="page_title">Usage by Publisher</py:def> |
<py:match path="primarysidebar"> | <py:match path="primarysidebar"> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Download</h4> | <h4>Download</h4> |
<p><center> | <p><center> |
<a class="btn button btn-primary" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='publisher_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:GaDatasetReport',action='publisher_csv',month=c.month or 'all')}">Download as CSV</a></center> |
</p> | </p> |
</li> | </li> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Graph Legend</h4> | <h4>Graph Legend</h4> |
<div id="graph-legend-container"> | <div id="graph-legend-container"> |
</div> | </div> |
</li> | </li> |
<xi:include href="../notes.html" /> | <xi:include href="../notes.html" /> |
</py:match> | </py:match> |
<py:def function="optional_head"> | <py:def function="optional_head"> |
<link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> | <link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> |
<link rel="stylesheet" type="text/css" href="/css/ga_report.css"/> | <link rel="stylesheet" type="text/css" href="/css/ga_report.css?1"/> |
<script type="text/javascript" src="/scripts/ckanext_ga_reports.js"></script> | <script type="text/javascript" src="/scripts/ckanext_ga_reports.js?1"></script> |
<script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> | <script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> |
<script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> | <script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> |
<script type="text/javascript" src="/scripts/vendor/d3.v2.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/d3.layout.min.js"></script> |
<script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> | <script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> |
</py:def> | </py:def> |
<div py:match="content"> | <div py:match="content"> |
<h1>Site Usage</h1> | <h1>Site Usage</h1> |
${usage_nav('Publishers')} | ${usage_nav('Publishers')} |
${rickshaw_graph(c.top_publishers_graph,'publishers')} | ${rickshaw_graph(c.top_publishers_graph,'publishers')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='publishers')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='publishers')}" method="get"> |
<div class="controls"> | <div class="controls"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</div> | </div> |
</form> | </form> |
<table class="table table-condensed table-bordered table-striped"> | <table class="ga-reports-table table table-condensed table-bordered table-striped"> |
<tr> | <tr> |
<th>Publisher</th> | <th>Publisher</th> |
<th>Dataset Views</th> | <th class="td-numeric">Dataset Views</th> |
</tr> | </tr> |
<py:for each="publisher, views, visits in c.top_publishers"> | <py:for each="publisher, views, visits in c.top_publishers"> |
<tr> | <tr> |
<td> | <td> |
${h.link_to(publisher.title, h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport', action='read_publisher', id=publisher.name) + (("?month=" + c.month) if c.month else ''))} | ${h.link_to(publisher.title, h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport', action='read_publisher', id=publisher.name) + (("?month=" + c.month) if c.month else ''))} |
</td> | </td> |
<td>${views}</td> | <td class="td-numeric">${views}</td> |
</tr> | </tr> |
</py:for> | </py:for> |
</table> | </table> |
</div> | </div> |
<py:def function="optional_footer"> | <py:def function="optional_footer"> |
<script type="text/javascript"> | <script type="text/javascript"> |
$(function() { | $(function() { |
CKAN.GA_Reports.bind_month_selector(); | CKAN.GA_Reports.bind_month_selector(); |
}); | }); |
</script> | </script> |
</py:def> | </py:def> |
<xi:include href="../../layout.html" /> | <xi:include href="../../layout.html" /> |
</html> | </html> |
<html xmlns:py="http://genshi.edgewall.org/" | <html xmlns:py="http://genshi.edgewall.org/" |
xmlns:i18n="http://genshi.edgewall.org/i18n" | xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:xi="http://www.w3.org/2001/XInclude" | xmlns:xi="http://www.w3.org/2001/XInclude" |
py:strip=""> | py:strip=""> |
<xi:include href="../ga_util.html" /> | <xi:include href="../ga_util.html" /> |
<py:def function="page_title">Usage by Dataset</py:def> | <py:def function="page_title">Usage by Dataset</py:def> |
<py:def function="optional_head"> | <py:def function="optional_head"> |
<link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> | <link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> |
<link rel="stylesheet" type="text/css" href="/css/ga_report.css"/> | <link rel="stylesheet" type="text/css" href="/css/ga_report.css?1"/> |
<script type="text/javascript" src="/scripts/ckanext_ga_reports.js"></script> | <script type="text/javascript" src="/scripts/ckanext_ga_reports.js?1"></script> |
<script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> | <script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> |
<script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> | <script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> |
<script type="text/javascript" src="/scripts/vendor/d3.v2.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/d3.layout.min.js"></script> |
<script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> | <script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> |
</py:def> | </py:def> |
<py:match path="primarysidebar"> | <py:match path="primarysidebar"> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Download</h4> | <h4>Download</h4> |
<p><center> | <p><center> |
<a class="btn button btn-primary" href="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='dataset_csv',id=c.publisher_name or 'all',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:GaDatasetReport',action='dataset_csv',id=c.publisher_name or 'all',month=c.month or 'all')}">Download as CSV</a></center> |
</p> | </p> |
</li> | </li> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Graph Legend</h4> | <h4>Graph Legend</h4> |
<div id="graph-legend-container"> | <div id="graph-legend-container"> |
</div> | </div> |
</li> | </li> |
<xi:include href="../notes.html" /> | <xi:include href="../notes.html" /> |
</py:match> | </py:match> |
<div py:match="content"> | <div py:match="content"> |
<h1>Site Usage</h1> | <h1>Site Usage</h1> |
${usage_nav('Datasets')} | ${usage_nav('Datasets')} |
<h3 py:if="c.publisher"><a href="${h.url_for(controller='ckanext.dgu.controllers.publisher:PublisherController',action='read',id=c.publisher.name)}">${c.publisher.title}</a></h3> | <h3 py:if="c.publisher"><a href="${h.url_for(controller='ckanext.dgu.controllers.publisher:PublisherController',action='read',id=c.publisher.name)}">${c.publisher.title}</a></h3> |
<p py:if="not c.top_packages">No page views in this period</p> | <p py:if="not c.top_packages">No page views in this period</p> |
<py:if test="c.top_packages"> | <py:if test="c.top_packages"> |
${rickshaw_graph(c.graph_data,'dataset-downloads',debug=True)} | ${rickshaw_graph(c.graph_data,'dataset-downloads',debug=True)} |
</py:if> | </py:if> |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='read')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaDatasetReport',action='read')}" method="get"> |
<div class="controls"> | <div class="controls"> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
<select name="publisher"> | <select name="publisher"> |
<option value='' py:attrs="{'selected': 'selected' if not c.publisher else None}">All publishers</option> | <option value='' py:attrs="{'selected': 'selected' if not c.publisher else None}">All publishers</option> |
<py:for each="val,desc in c.publishers"> | <py:for each="val,desc in c.publishers"> |
<option value='${val}' py:attrs="{'selected': 'selected' if c.publisher_name == val else None}">${desc}</option> | <option value='${val}' py:attrs="{'selected': 'selected' if c.publisher_name == val else None}">${desc}</option> |
</py:for> | </py:for> |
</select> | </select> |
<input class="btn button btn-primary" type='submit' value="Update"/> | <input class="btn button btn-primary" type='submit' value="Update"/> |
</div> | </div> |
</form> | </form> |
<py:if test="c.top_packages"> | <py:if test="c.top_packages"> |
<table class="table table-condensed table-bordered table-striped"> | <table class="ga-reports-table table table-condensed table-bordered table-striped"> |
<tr> | <tr> |
<th>Dataset</th> | <th>Dataset</th> |
<th>Views</th> | <th>Views</th> |
<th>Downloads</th> | <th>Downloads</th> |
</tr> | </tr> |
<py:for each="package, views, visits,downloads in c.top_packages"> | <py:for each="package, views, visits,downloads in c.top_packages"> |
<tr> | <tr> |
<td> | <td> |
${h.link_to(package.title or package.name, h.url_for(controller='package', action='read', id=package.name))} | ${h.link_to(package.title or package.name, h.url_for(controller='package', action='read', id=package.name))} |
</td> | </td> |
<td>${views}</td> | <td class="td-numeric">${views}</td> |
<td>${downloads}</td> | <td class="td-numeric">${downloads}</td> |
</tr> | </tr> |
</py:for> | </py:for> |
</table> | </table> |
</py:if> | </py:if> |
</div> | </div> |
<xi:include href="../../layout.html" /> | <xi:include href="../../layout.html" /> |
</html> | </html> |
<html xmlns:py="http://genshi.edgewall.org/" | <html xmlns:py="http://genshi.edgewall.org/" |
xmlns:i18n="http://genshi.edgewall.org/i18n" | xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:xi="http://www.w3.org/2001/XInclude" | xmlns:xi="http://www.w3.org/2001/XInclude" |
py:strip=""> | py:strip=""> |
<xi:include href="../ga_util.html" /> | <xi:include href="../ga_util.html" /> |
<py:def function="page_title">Site usage</py:def> | <py:def function="page_title">Site usage</py:def> |
<py:def function="optional_head"> | <py:def function="optional_head"> |
<link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> | <link rel="stylesheet" type="text/css" href="/scripts/vendor/rickshaw.min.css"/> |
<link rel="stylesheet" type="text/css" href="/css/ga_report.css"/> | <link rel="stylesheet" type="text/css" href="/css/ga_report.css?1"/> |
<script type="text/javascript" src="/scripts/ckanext_ga_reports.js"></script> | <script type="text/javascript" src="/scripts/ckanext_ga_reports.js?1"></script> |
<script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> | <script type="text/javascript" src="/scripts/vendor/jquery.sparkline.modified.js"></script> |
<script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> | <script type="text/javascript" src="/scripts/rickshaw_ie7_shim.js"></script> |
<script type="text/javascript" src="/scripts/vendor/d3.v2.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/d3.layout.min.js"></script> |
<script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> | <script type="text/javascript" src="/scripts/vendor/rickshaw.min.js"></script> |
</py:def> | </py:def> |
<py:match path="primarysidebar"> | <py:match path="primarysidebar"> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Download</h4> | <h4>Download</h4> |
<p><center> | <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> | <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> | </p> |
</li> | </li> |
<li class="widget-container boxed widget_text"> | <li class="widget-container boxed widget_text"> |
<h4>Graph Legend</h4> | <h4>Graph Legend</h4> |
<div id="graph-legend-container"> | <div id="graph-legend-container"> |
<div id="legend_none">(No graph loaded)</div> | <div id="legend_none">(No graph loaded)</div> |
</div> | </div> |
</li> | </li> |
<xi:include href="../notes.html" /> | <xi:include href="../notes.html" /> |
</py:match> | </py:match> |
<div py:match="content"> | <div py:match="content"> |
<h1>Site Usage</h1> | <h1>Site Usage</h1> |
${usage_nav('Site-wide')} | ${usage_nav('Site-wide')} |
<div class="tabbable"> | <div class="tabbable"> |
<ul class="nav nav-tabs"> | <ul class="nav nav-tabs"> |
<li><a href="#totals" data-toggle="hashchange">Totals</a></li> | <li><a href="#totals" data-toggle="hashchange">Totals</a></li> |
<li class="dropdown"> | <li class="dropdown"> |
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Browsers | <a href="#" class="dropdown-toggle" data-toggle="dropdown">Browsers |
<b class="caret"></b></a> | <b class="caret"></b></a> |
<ul class="dropdown-menu"> | <ul class="dropdown-menu"> |
<li><a href="#browsers_names" data-toggle="hashchange">Browsers</a></li> | <li><a href="#browsers_names" data-toggle="hashchange">Browsers</a></li> |
<li><a href="#browsers_versions" data-toggle="hashchange">Versions</a></li> | <li><a href="#browsers_versions" data-toggle="hashchange">Versions</a></li> |
</ul> | </ul> |
</li> | </li> |
<li class="dropdown"> | <li class="dropdown"> |
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Operating Systems | <a href="#" class="dropdown-toggle" data-toggle="dropdown">Operating Systems |
<b class="caret"></b></a> | <b class="caret"></b></a> |
<ul class="dropdown-menu"> | <ul class="dropdown-menu"> |
<li><a href="#os" data-toggle="hashchange">Operating Systems</a></li> | <li><a href="#os" data-toggle="hashchange">Operating Systems</a></li> |
<li><a href="#os_versions" data-toggle="hashchange">Versions</a></li> | <li><a href="#os_versions" data-toggle="hashchange">Versions</a></li> |
</ul> | </ul> |
</li> | </li> |
<li class="dropdown"> | <li class="dropdown"> |
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Social | <a href="#" class="dropdown-toggle" data-toggle="dropdown">Social |
<b class="caret"></b></a> | <b class="caret"></b></a> |
<ul class="dropdown-menu"> | <ul class="dropdown-menu"> |
<li><a href="#social_networks" data-toggle="hashchange">All networks</a></li> | <li><a href="#social_networks" data-toggle="hashchange">All networks</a></li> |
<li><a href="#social_referrals_totals" data-toggle="hashchange">Referral links</a></li> | <li><a href="#social_referrals_totals" data-toggle="hashchange">Referral links</a></li> |
</ul> | </ul> |
</li> | </li> |
<li><a href="#languages" data-toggle="hashchange">Languages</a></li> | <li><a href="#languages" data-toggle="hashchange">Languages</a></li> |
<li><a href="#country" data-toggle="hashchange">Country</a></li> | <li><a href="#country" data-toggle="hashchange">Country</a></li> |
</ul> | </ul> |
<div class="tab-content"> | <div class="tab-content"> |
<div class="tab-pane" id="totals"> | <div class="tab-pane" id="totals"> |
<table class="table table-condensed table-bordered table-striped"> | <table class="ga-reports-table table table-condensed table-bordered table-striped"> |
<tr> | <tr> |
<th>Name</th> | <th>Name</th> |
<th>Value</th> | <th class="td-numeric">Value</th> |
<th>History</th> | <th>History</th> |
</tr> | </tr> |
<py:for each="name, value, graph in c.global_totals"> | <py:for each="name, value, graph in c.global_totals"> |
<tr> | <tr> |
<td>${name}</td> | <td>${name}</td> |
<td>${value}</td> | <td class="td-numeric">${value}</td> |
<td class="sparkline-cell"> | <td class="sparkline-cell"> |
<span class="sparkline" sparkTooltips="${','.join([x for x,y in graph])}"> | <span class="sparkline" sparkTooltips="${','.join([x for x,y in graph])}"> |
${','.join([y for x,y in graph])} | ${','.join([y for x,y in graph])} |
</span> | </span> |
</td> | </td> |
</tr> | </tr> |
</py:for> | </py:for> |
</table> | </table> |
</div> | </div> |
<div class="tab-pane" id="browsers_versions"> | <div class="tab-pane" id="browsers_versions"> |
${rickshaw_graph(c.browser_versions_graph,'browser-versions',mode='stack')} | ${rickshaw_graph(c.browser_versions_graph,'browser-versions',mode='stack')} |
<p>Note: Where a browser has a large number of versions, these have been grouped together.</p> | <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"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.browser_versions)} | ${stat_table(c.browser_versions)} |
</div> | </div> |
<div class="tab-pane" id="browsers_names"> | <div class="tab-pane" id="browsers_names"> |
${rickshaw_graph(c.browsers_graph,'browsers',mode='stack')} | ${rickshaw_graph(c.browsers_graph,'browsers',mode='stack')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.browsers)} | ${stat_table(c.browsers)} |
</div> | </div> |
<div class="tab-pane" id="os"> | <div class="tab-pane" id="os"> |
${rickshaw_graph(c.os_graph,'os',mode='stack')} | ${rickshaw_graph(c.os_graph,'os',mode='stack')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.os)} | ${stat_table(c.os)} |
</div> | </div> |
<div class="tab-pane" id="os_versions"> | <div class="tab-pane" id="os_versions"> |
${rickshaw_graph(c.os_versions_graph,'os_versions',mode='stack')} | ${rickshaw_graph(c.os_versions_graph,'os_versions',mode='stack')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.os_versions)} | ${stat_table(c.os_versions)} |
</div> | </div> |
<div class="tab-pane" id="social_referrals_totals"> | <div class="tab-pane" id="social_referrals_totals"> |
<p>Number of visits that were referred from social networks</p> | <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"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${social_table(c.social_referrer_totals)} | ${social_table(c.social_referrer_totals)} |
</div> | </div> |
<div class="tab-pane" id="social_networks"> | <div class="tab-pane" id="social_networks"> |
${rickshaw_graph(c.social_networks_graph, 'social_networks',mode='stack')} | ${rickshaw_graph(c.social_networks_graph, 'social_networks',mode='stack')} |
<p>Percentage of visits that were referred from these social networks</p> | <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"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.social_networks, 'Visits')} | ${stat_table(c.social_networks, 'Visits')} |
</div> | </div> |
<div class="tab-pane" id="languages"> | <div class="tab-pane" id="languages"> |
${rickshaw_graph(c.languages_graph,'languages',mode='stack')} | ${rickshaw_graph(c.languages_graph,'languages',mode='stack')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.languages)} | ${stat_table(c.languages)} |
</div> | </div> |
<div class="tab-pane" id="country"> | <div class="tab-pane" id="country"> |
${rickshaw_graph(c.country_graph,'country',mode='stack')} | ${rickshaw_graph(c.country_graph,'country',mode='stack')} |
<form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> | <form class="form-inline" action="${h.url_for(controller='ckanext.ga_report.controller:GaReport',action='index')}" method="get"> |
<label>Show stats table for:</label> | <label>Show stats table for:</label> |
${month_selector(c.month, c.months, c.day)} | ${month_selector(c.month, c.months, c.day)} |
</form> | </form> |
${stat_table(c.country)} | ${stat_table(c.country)} |
</div> | </div> |
</div> | </div> |
</div> | </div> |
</div> | </div> |
<py:def function="optional_footer"> | <py:def function="optional_footer"> |
<script type="text/javascript"> | <script type="text/javascript"> |
$(function() { | $(function() { |
CKAN.GA_Reports.bind_sparklines(); | CKAN.GA_Reports.bind_sparklines(); |
CKAN.GA_Reports.bind_sidebar(); | CKAN.GA_Reports.bind_sidebar(); |
CKAN.GA_Reports.bind_month_selector(); | CKAN.GA_Reports.bind_month_selector(); |
if (!window.location.hash) { | if (!window.location.hash) { |
window.location.hash='totals'; | window.location.hash='totals'; |
} | } |
else { | else { |
$(window).trigger('hashchange'); | $(window).trigger('hashchange'); |
} | } |
}); | }); |
</script> | </script> |
</py:def> | </py:def> |
<xi:include href="../../layout.html" /> | <xi:include href="../../layout.html" /> |
</html> | </html> |