Jonathan Druart
e08629b68b
To be nicer with translators. Update the PO files for whichever languages will show how this is useful. Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
372 lines
18 KiB
Text
372 lines
18 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% SET footerjs = 1 %]
|
|
[% USE Koha %]
|
|
[% USE KohaDates %]
|
|
[% USE Price %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha usage statistics › Administration › Koha</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% Asset.css("lib/leaflet/leaflet.css") | $raw %]
|
|
</head>
|
|
|
|
<body id="admin_usage_statistics" class="admin">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cat-search.inc' %]
|
|
|
|
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
|
|
<ol>
|
|
<li>
|
|
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
|
|
</li>
|
|
<li>
|
|
<a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
|
|
</li>
|
|
<li>
|
|
<a href="#" aria-current="page">
|
|
Usage statistics
|
|
</a>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-sm-10 col-sm-push-2">
|
|
<main>
|
|
|
|
[% FOR m IN messages %]
|
|
<div class="dialog [% m.type | html %]">
|
|
[% SWITCH m.code %]
|
|
[% CASE 'error_on_update' %]
|
|
<span>An error occurred when updating this patron category. Perhaps it already exists</span>
|
|
[% CASE 'error_on_insert' %]
|
|
<span>An error occurred when inserting this patron category. The patron category might already exist</span>
|
|
[% CASE 'error_on_delete' %]
|
|
<span>An error occurred when deleting this patron category. Check the logs</span>
|
|
[% CASE 'success_on_update' %]
|
|
<span>Patron category updated successfully</span>
|
|
[% CASE 'success_on_insert' %]
|
|
<span>Patron category inserted successfully</span>
|
|
[% CASE 'success_on_delete' %]
|
|
<span>Patron category deleted successfully</span>
|
|
[% CASE 'already_exists' %]
|
|
<span>This patron category already exists</span>
|
|
[% CASE %]
|
|
<span>[% m.code | html %]</span>
|
|
[% END %]
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF NOT Koha.Preference('UsageStats') %]
|
|
<div class="dialog message">You are not sharing any data with the Koha community</div>
|
|
[% END %]
|
|
|
|
<form id="category_form" action="/cgi-bin/koha/admin/usage_statistics.pl" method="post">
|
|
<h1>Modify the statistics you share with the Koha community</h1>
|
|
<div class="row">
|
|
<div class="col-xs-12 col-sm-6">
|
|
<fieldset class="rows">
|
|
<ol>
|
|
<li>
|
|
<label for="UsageStats">Share my Koha usage statistics: </label>
|
|
<select name="UsageStats" id="UsageStats">
|
|
[% IF Koha.Preference('UsageStats') == 1 %]
|
|
<option value="2">Undecided</option>
|
|
<option value="1" selected="selected">Yes</option>
|
|
<option value="0">No</option>
|
|
[% ELSIF Koha.Preference('UsageStats') == 0 %]
|
|
<option value="2">Undecided</option>
|
|
<option value="1">Yes</option>
|
|
<option value="0" selected="selected">No</option>
|
|
[% ELSE %]
|
|
<option value="2" selected="selected">Undecided</option>
|
|
<option value="1">Yes</option>
|
|
<option value="0">No</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsCountry">Your country: </label>
|
|
[% SET UsageStatsCountry = Koha.Preference('UsageStatsCountry') %]
|
|
[% SET IsUsageStatsCountryValid = 0 %]
|
|
[% IF NOT UsageStatsCountry %]
|
|
[% SET IsUsageStatsCountryValid = 1 %]
|
|
[% END %]
|
|
[% PROCESS 'country-list.inc' %]
|
|
<select name="UsageStatsCountry" id="UsageStatsCountry">
|
|
<option value=""> </option>
|
|
[% FOR country IN countries %]
|
|
[% IF country == UsageStatsCountry %]
|
|
<option value="[% country | html %]" selected="selected">[% country | html %]</option>
|
|
[% SET IsUsageStatsCountryValid = 1 %]
|
|
[% ELSE %]
|
|
<option value="[% country | html %]">[% country | html %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
[% UNLESS IsUsageStatsCountryValid %]
|
|
Note: The value of your system preference 'UsageStatsCountry' is not valid ([% UsageStatsCountry | html %]).
|
|
Please select a valid one.
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsLibraryName">Library name: </label>
|
|
<input type="text" value="[% Koha.Preference('UsageStatsLibraryName') | html %]" name="UsageStatsLibraryName" id="UsageStatsLibraryName" />
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsLibraryType">Library type: </label>
|
|
[% SET UsageStatsLibraryType = Koha.Preference('UsageStatsLibraryType') %]
|
|
<select name="UsageStatsLibraryType" id="UsageStatsLibraryType">
|
|
<option value=""> </option>
|
|
[% IF UsageStatsLibraryType == 'public' %]
|
|
<option value="public" selected="selected">Public</option>
|
|
[% ELSE %]
|
|
<option value="public">Public</option>
|
|
[% END %]
|
|
|
|
[% IF UsageStatsLibraryType == 'school' %]
|
|
<option value="school" selected="selected">School</option>
|
|
[% ELSE %]
|
|
<option value="school">School</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'academic' %]
|
|
<option value="academic" selected="selected">Academic</option>
|
|
[% ELSE %]
|
|
<option value="academic">Academic</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'research' %]
|
|
<option value="research" selected="selected">Research</option>
|
|
[% ELSE %]
|
|
<option value="research">Research</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'private' %]
|
|
<option value="private" selected="selected">Private</option>
|
|
[% ELSE %]
|
|
<option value="private">Private</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'societyAssociation' %]
|
|
<option value="societyAssociation" selected="selected">Society or association</option>
|
|
[% ELSE %]
|
|
<option value="societyAssociation">Society or association</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'corporate' %]
|
|
<option value="corporate" selected="selected">Corporate</option>
|
|
[% ELSE %]
|
|
<option value="corporate">Corporate</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'government' %]
|
|
<option value="government" selected="selected">Government</option>
|
|
[% ELSE %]
|
|
<option value="government">Government</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'religiousOrg' %]
|
|
<option value="religiousOrg" selected="selected">Religious organization</option>
|
|
[% ELSE %]
|
|
<option value="religiousOrg">Religious organization</option>
|
|
[% END %]
|
|
[% IF UsageStatsLibraryType == 'subscription' %]
|
|
<option value="subscription" selected="selected">Subscription</option>
|
|
[% ELSE %]
|
|
<option value="subscription">Subscription</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsLibraryUrl">Library URL: </label>
|
|
<input type="text" name="UsageStatsLibraryUrl" value="[% Koha.Preference('UsageStatsLibraryUrl') | html %]" id="UsageStatsLibraryUrl" />
|
|
</li>
|
|
<li>
|
|
<span class="label">Last update: </span>
|
|
[% IF UsageStatsLastUpdateTime %]
|
|
[% UsageStatsLastUpdateTime | html %]
|
|
[% ELSE %]
|
|
<span>Your data have never been shared</span>
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsGeolocation">Geolocation: </label>
|
|
<input id="UsageStatsGeolocation" name="UsageStatsGeolocation" value="[% Koha.Preference('UsageStatsGeolocation') | html %]" type="text" value="[% Koha.Preference('UsageStatsLibrariesInfo') | html %]" size="35" readonly="readonly" />
|
|
<a href="#" class="change_geolocation" data-branchname="" data-id="UsageStatsGeolocation"><img src="[% interface | html %]/lib/leaflet/images/marker-icon.png" title="Set geolocation" style="max-height: 2em;" /></a>
|
|
</li>
|
|
<li>
|
|
<label for="UsageStatsLibrariesInfo">Libraries informations: </label>
|
|
<select name="UsageStatsLibrariesInfo" id="UsageStatsLibrariesInfo">
|
|
[% IF Koha.Preference('UsageStatsLibrariesInfo') %]
|
|
<option value="1" selected="selected">Yes</option>
|
|
<option value="0">No</option>
|
|
[% ELSE %]
|
|
<option value="1">Yes</option>
|
|
<option value="0" selected="selected">No</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
|
|
<li id="libraries_info">
|
|
<fieldset class="rows">
|
|
<legend>Libraries</legend>
|
|
<ol>
|
|
[% FOR l IN libraries %]
|
|
<li>
|
|
<label for="[% l.branchcode | html %]">[% l.branchname | html %]: </label>
|
|
<div style="float:left;">
|
|
<div>Country: [% l.branchcountry | html %]</div>
|
|
<div>Url: [% l.branchurl | html %]</div>
|
|
<div>
|
|
Geolocation: <input type="text" id="geolocation_[% l.branchcode | html %]" name="geolocation_[% l.branchcode | html %]" value="[% l.geolocation | html %]" size="35" readonly="readonly" />
|
|
<a href="#" class="change_geolocation" data-branchname="[% l.branchname | html %]" data-id="geolocation_[% l.branchcode | html %]"><img src="[% interface | html %]/lib/leaflet/images/marker-icon.png" title="Set geolocation for [% l.branchname | html %]" style="max-height: 2em;" /></a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</fieldset>
|
|
</li>
|
|
<li>
|
|
<label for="MyPublicLink">See your public page: </label>
|
|
[% IF Koha.Preference('UsageStatsPublicID') %]
|
|
[% SET my_url = 'https://hea.koha-community.org/libraries/' _ Koha.Preference('UsageStatsPublicID') %]
|
|
<a href="[% my_url | url %]">[% my_url | html %]</a>
|
|
[% ELSE %]
|
|
You do not have anything public yet.
|
|
[% END %]
|
|
</li>
|
|
|
|
</ol>
|
|
</fieldset>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6">
|
|
<div>
|
|
<div id="mapid" style="width:100%;height: 400px;"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<fieldset class="action">
|
|
<input type="hidden" name="op" value="update" />
|
|
<input type="submit" value="Update your statistics usage" />
|
|
<a class="cancel" href="/cgi-bin/koha/admin/usage_statistics.pl">Cancel</a>
|
|
</fieldset>
|
|
</form>
|
|
|
|
</main>
|
|
</div> <!-- /.col-sm-10.col-sm-push-2 -->
|
|
|
|
<div class="col-sm-2 col-sm-pull-10">
|
|
<aside>
|
|
[% INCLUDE 'admin-menu.inc' %]
|
|
</aside>
|
|
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
|
|
</div> <!-- /.row -->
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% INCLUDE 'calendar.inc' %]
|
|
[% Asset.js("js/admin-menu.js") | $raw %]
|
|
[% Asset.js("/lib/leaflet/leaflet.js") | $raw %]
|
|
<script>
|
|
function positionMap() {
|
|
var tbh = $("#mapid");
|
|
var mapContainer = tbh.parent();
|
|
mapContainer.css('position', 'relative');
|
|
mapContainer.css('min-height', tbh.outerHeight(true));
|
|
tbh.css('position', 'absolute');
|
|
tbh.css('right', 0);
|
|
|
|
var offsetTop = mapContainer.offset().top;
|
|
var s = parseInt($(window).scrollTop(), 10);
|
|
tbh.css('top', '').css('bottom', '');
|
|
if (s > offsetTop) {
|
|
var mapContainerOffsetBottom = offsetTop + mapContainer.innerHeight();
|
|
if (s + tbh.outerHeight(true) > mapContainerOffsetBottom) {
|
|
tbh.css('bottom', 0);
|
|
} else {
|
|
tbh.css('top', s - offsetTop);
|
|
}
|
|
} else {
|
|
tbh.css('top', 0);
|
|
}
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
$(window).scroll(positionMap);
|
|
positionMap();
|
|
});
|
|
|
|
var map = L.map('mapid').setView([0,0], 1);
|
|
|
|
L.tileLayer('https://a.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
maxZoom: 18,
|
|
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
|
|
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'
|
|
}).addTo(map);
|
|
|
|
var default_elt = { 'text': _("Main library"), 'id': 'UsageStatsGeolocation' };
|
|
var current_elt = default_elt;
|
|
|
|
// Add the title
|
|
var title = L.control({position: 'topright'});
|
|
title.onAdd = function (map) {
|
|
this._div = L.DomUtil.create('div', 'title');
|
|
this.update();
|
|
return this._div;
|
|
};
|
|
title.update = function (props) {
|
|
this._div.innerHTML = '<h4>' + _("Click on the map to set the geolocation for %s").format(current_elt.text) + '</h4>';
|
|
};
|
|
title.addTo(map);
|
|
|
|
var markers = {};
|
|
function add_to_map(elt, latlng) {
|
|
var marker = markers[elt.id];
|
|
if (marker) map.removeLayer(marker);
|
|
marker = L.marker(latlng).addTo(map);
|
|
marker.bindPopup(elt.text);
|
|
marker.on('mouseover', function (e) {this.openPopup(); });
|
|
marker.on('mouseout', function (e) {this.closePopup();});
|
|
markers[elt.id] = marker;
|
|
}
|
|
|
|
// Init the map
|
|
[% IF Koha.Preference('UsageStatsGeolocation') %]
|
|
var latlng = [ [% Koha.Preference('UsageStatsGeolocation') | html %] ];
|
|
add_to_map( current_elt, latlng );
|
|
[% END %]
|
|
[% FOR l IN libraries %]
|
|
[% NEXT UNLESS l.geolocation %]
|
|
add_to_map( { 'text': "[% l.branchname | html %]", 'id': "geolocation_[% l.branchcode | html %]" }, [ [% l.geolocation | html %] ] );
|
|
[% END %]
|
|
|
|
// On click, update the geolocation and the marker
|
|
map.on('click', function(e){
|
|
add_to_map( current_elt, e.latlng );
|
|
$("#" + current_elt.id).val(e.latlng.lat + ',' + e.latlng.lng);
|
|
});
|
|
|
|
// Auto zoom
|
|
var group = new L.featureGroup(Object.keys(markers).map(function(key){return markers[key]}));
|
|
if ( group.getBounds().isValid() ) map.fitBounds(group.getBounds());
|
|
|
|
// On click on the marker icons, update the title of the map
|
|
$(document).ready(function(){
|
|
$(".change_geolocation").on('click', function(e){
|
|
e.preventDefault();
|
|
if ( $(this).data('branchname') ) {
|
|
current_elt = { 'text': $(this).data('branchname'), 'id': $(this).data('id') };
|
|
} else {
|
|
current_elt = default_elt;
|
|
}
|
|
title.update();
|
|
});
|
|
$("#UsageStatsLibrariesInfo").change();
|
|
});
|
|
|
|
$("#UsageStatsLibrariesInfo").on('change', function(){
|
|
if ( $(this).val() == 1 ) $("#libraries_info").show()
|
|
else $("#libraries_info").hide();
|
|
positionMap();
|
|
});
|
|
|
|
</script>
|
|
[% END %]
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|