Koha/koha-tmpl/intranet-tmpl/prog/en/modules/admin/usage_statistics.tt
Julian Maurice ed7543287b Bug 20538: Remove the need of writing [% KOHA_VERSION %] everywhere
Having to write [% KOHA_VERSION %] for each url is bad because:
- It's easily forgettable when adding new <script> or <link>
- It prevents grep'ing for the full filename
- It violates the DRY principle
- If at some point we want to change the "force js and css reload"
  mechanism, it will be tedious

This patch:
- adds a Template::Toolkit plugin that generates <script> and
  <link> tags for JS and CSS files, and inserts automatically the Koha
  version in the filename
- use the new plugin to remove all occurences of [% KOHA_VERSION %]
- remove the code that was adding KOHA_VERSION as a template variable

Test plan:
1. Apply patch
2. Go to several different pages in Koha (opac and intranet) while
   checking your browser's dev tools (there should be no 404 for JS and
   CSS files, and the Koha version should appear in filenames) and the
   server logs (there should be no "File not found")
3. `git grep KOHA_VERSION` should return nothing
4. prove t/db_dependent/Koha/Template/Plugin/Asset.t

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2018-04-13 11:49:44 -03:00

339 lines
16 KiB
Text

[% USE Asset %]
[% SET footerjs = 1 %]
[% USE Koha %]
[% USE KohaDates %]
[% USE Price %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Administration &rsaquo; Koha usage statistics</title>
[% INCLUDE 'doc-head-close.inc' %]
[% Asset.css("lib/leaflet/leaflet.css") %]
</head>
<body id="admin_usage_statistics" class="admin">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> &rsaquo; Usage statistics</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% FOR m IN messages %]
<div class="dialog [% m.type %]">
[% SWITCH m.code %]
[% CASE 'error_on_update' %]
An error occurred when updating this patron category. Perhaps it already exists.
[% CASE 'error_on_insert' %]
An error occurred when inserting this patron category. The patron category might already exist.
[% CASE 'error_on_delete' %]
An error occurred when deleting this patron category. Check the logs.
[% CASE 'success_on_update' %]
Patron category updated successfully.
[% CASE 'success_on_insert' %]
Patron category inserted successfully.
[% CASE 'success_on_delete' %]
Patron category deleted successfully.
[% CASE 'already_exists' %]
This patron category already exists.
[% CASE %]
[% m.code %]
[% 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>
<fieldset class="rows">
<ol style="float:left;">
<li>
<label for="UsageStats">Share my Koha usage statistics: </label>
<select name="UsageStats" id="UsageStats">
[% IF Koha.Preference('UsageStats') %]
<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>
<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="">&nbsp;</option>
[% FOR country IN countries %]
[% IF country == UsageStatsCountry %]
<option value="[% country %]" selected="selected">[% country %]</option>
[% SET IsUsageStatsCountryValid = 1 %]
[% ELSE %]
<option value="[% country %]">[% country %]</option>
[% END %]
[% END %]
</select>
[% UNLESS IsUsageStatsCountryValid %]
Note: The value of your system preference 'UsageStatsCountry' is not valid ([% UsageStatsCountry %]).
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="">&nbsp;</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') %]" id="UsageStatsLibraryUrl" />
</li>
<li>
<span class="label">Last update: </span>
[% IF UsageStatsLastUpdateTime %]
[% UsageStatsLastUpdateTime %]
[% ELSE %]
Your data have never been shared
[% END %]
</li>
<li>
<label for="UsageStatsGeolocation">Geolocation: </label>
<input id="UsageStatsGeolocation" name="UsageStatsGeolocation" value="[% Koha.Preference('UsageStatsGeolocation') %]" type="text" value="[% Koha.Preference('UsageStatsLibrariesInfo') %]" size="35" readonly="readonly" />
<a href="#" class="change_geolocation" data-branchname="" data-id="UsageStatsGeolocation"><img src="[% interface %]/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 %]">[% l.branchname %]: </label>
<div style="float:left;">
<div>Country: [% l.branchcountry %]</div>
<div>Url: [% l.branchurl %]</div>
<div>
Geolocation: <input type="text" id="geolocation_[% l.branchcode %]" name="geolocation_[% l.branchcode %]" value="[% l.geolocation %]" size="35" readonly="readonly" />
<a href="#" class="change_geolocation" data-branchname="[% l.branchname %]" data-id="geolocation_[% l.branchcode %]"><img src="[% interface %]/lib/leaflet/images/marker-icon.png" title="Set geolocation for [% l.branchname %]" 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 %]">[% my_url %]</a>
[% ELSE %]
You do not have anything public yet.
[% END %]
</li>
</ol>
<div style="clear:right"></div>
<div id="mapid" style="width: 600px; height: 400px; margin-left: 40%:"></div>
</fieldset>
<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>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'admin-menu.inc' %]
</div>
</div>
[% MACRO jsinclude BLOCK %]
[% INCLUDE 'calendar.inc' %]
[% Asset.js("js/admin-menu.js") %]
<script src="[% interface %]/lib/leaflet/leaflet.js"></script>
<script type="text/javascript">
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 &copy; <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') %] ];
add_to_map( current_elt, latlng );
[% END %]
[% FOR l IN libraries %]
[% NEXT UNLESS l.geolocation %]
add_to_map( { 'text': "[% l.branchname %]", 'id': "geolocation_[% l.branchcode %]" }, [ [% l.geolocation %] ] );
[% 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' %]