1a7f9fa611
Test plan 1 Enter in OPAC Search History in a language other than English and check that Copy is not translated 2 Apply patch, restart services 3 Regenerate the templates for that language 4 Repeat step 1 and check that Copy appears now translated Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> (cherry picked from commite3f9617777
) Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com> (cherry picked from commit118da7f0b3
) Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
372 lines
17 KiB
Text
372 lines
17 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE Koha %]
|
|
[% USE KohaDates %]
|
|
[% USE TablesSettings %]
|
|
[% USE AdditionalContents %]
|
|
[% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %]
|
|
[% SET OpacNavBottom = AdditionalContents.get( location => "OpacNavBottom", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Your search history › [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% BLOCK cssinclude %][% END %]
|
|
</head>
|
|
[% INCLUDE 'bodytag.inc' bodyid='opac-search-history' bodyclass='scrollto' %]
|
|
[% INCLUDE 'masthead.inc' %]
|
|
|
|
<div class="main">
|
|
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumbs">
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item">
|
|
<a href="/cgi-bin/koha/opac-main.pl">Home</a>
|
|
</li>
|
|
[% IF ( loggedinusername ) %]
|
|
<li class="breadcrumb-item">
|
|
<a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' patron = logged_in_user %]</a>
|
|
</li>
|
|
<li class="breadcrumb-item active">
|
|
<a href="#" aria-current="page">Your search history</a>
|
|
</li>
|
|
[% ELSE %]
|
|
<li class="breadcrumb-item active">
|
|
<a href="#" aria-current="page">Search history</a>
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</nav> <!-- /#breadcrumbs -->
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
[% IF ( OpacNav||loggedinusername ) %]
|
|
<div class="col col-lg-2 order-2 order-lg-1">
|
|
<div id="navigation">
|
|
[% INCLUDE 'navigation.inc' IsPatronPage=1 %]
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12 col-lg-10 order-1">
|
|
[% ELSE %]
|
|
<div class="col order-first order-md-first order-lg-2">
|
|
[% END %]
|
|
|
|
<div id="searchhistory" class="maincontent">
|
|
<h1>Search history</h1>
|
|
|
|
[% IF Koha.Preference( 'OpacAuthorities' ) == 1 %]
|
|
|
|
[% WRAPPER tabs id= "tabs" %]
|
|
[% WRAPPER tabs_nav %]
|
|
[% WRAPPER tab_item tabname= "biblio_tab" bt_active= 1 %] <span>Catalog</span> [% END %]
|
|
[% WRAPPER tab_item tabname= "authority_tab" %] <span>Authority</span> [% END %]
|
|
[% END # /WRAPPER tabs_nav %]
|
|
|
|
[% WRAPPER tab_panels %]
|
|
[% WRAPPER tab_panel tabname="biblio_tab" bt_active= 1 %]
|
|
<div id="biblio_tab" role="tabpanel" class="tab-pane active" aria-labelledby="biblio-tab-link">
|
|
[% PROCESS catalog_search_history %]
|
|
</div> <!-- / #biblio_tab -->
|
|
[% END # /tab_panel# %]
|
|
[% WRAPPER tab_panel tabname="authority_tab" %]
|
|
<div id="authority_tab" role="tabpanel" class="tab-pane" aria-labelledby="authority-tab-link">
|
|
[% PROCESS authority_search_history %]
|
|
</div> <!-- / #authority_tab -->
|
|
[% END # /tab_panel# %]
|
|
[% END # /WRAPPER tab_panels %]
|
|
[% END # /WRAPPER tabs %]
|
|
|
|
[% ELSE %]
|
|
[% PROCESS catalog_search_history %]
|
|
[% END %]
|
|
</div> <!-- / #searchhistory -->
|
|
</div> <!-- / .col-lg-10/12 -->
|
|
</div> <!-- / .row -->
|
|
</div> <!-- / .container-fluid -->
|
|
</div> <!-- / #main -->
|
|
|
|
[% BLOCK catalog_search_history %]
|
|
<div id="current_biblio">
|
|
[% IF ( current_biblio_searches ) %]
|
|
<h2>Current session</h2>
|
|
<form action="/cgi-bin/koha/opac-search-history.pl" method="post">
|
|
<legend class="sr-only">Toolbar control</legend>
|
|
|
|
[% INCLUDE 'toolbar_controls' %]
|
|
<input type="hidden" name="action" value="delete" />
|
|
<table class="historyt table table-bordered table-striped">
|
|
<caption class="sr-only">Current session</caption>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th>Date</th>
|
|
<th>Search</th>
|
|
<th>Results</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH s IN current_biblio_searches %]
|
|
<tr>
|
|
<td class="selectcol">
|
|
<input type="checkbox" name="id" value="[% s.id | html %]" id="result[% s.id | html %]" />
|
|
</td>
|
|
<td data-order="[% s.time | html %]">
|
|
<label for="result[% s.id | html %]">
|
|
[% s.time |$KohaDates with_hours => 1 %]
|
|
</label>
|
|
</td>
|
|
<td>
|
|
<a href="[% OPACBaseURL | url %]/cgi-bin/koha/opac-search.pl?[% query_cgi | $raw %][% limit_cgi | $raw %]&[% s.query_cgi | $raw %]&count=[% countrss | uri %]&sort_by=acqdate_dsc&format=rss" aria-label="Subscribe to this search" class="rsssearchlink">
|
|
<i class="fa fa-rss rsssearchicon" aria-hidden="true" title="Subscribe to this search"></i>
|
|
</a>
|
|
<a href="/cgi-bin/koha/opac-search.pl?[% s.query_cgi | $raw %]">[% s.query_desc | html %]</a>
|
|
</td>
|
|
<td>[% s.total | html %]</td>
|
|
<td></td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<input type="submit" class="btn btn-danger remove-selected" value="Remove selected searches">
|
|
</form>
|
|
[% END # IF ( current_biblio_searches ) %]
|
|
</div> <!-- / #current_biblio -->
|
|
<hr />
|
|
<div id="previous_biblio">
|
|
[% IF ( previous_biblio_searches ) %]
|
|
<h2>Previous sessions</h2>
|
|
<form action="/cgi-bin/koha/opac-search-history.pl" method="post">
|
|
<legend class="sr-only">Toolbar control</legend>
|
|
[% INCLUDE 'toolbar_controls' %]
|
|
|
|
<input type="hidden" name="action" value="delete" />
|
|
<table class="historyt table table-bordered table-striped">
|
|
<caption class="sr-only">Previous sessions</caption>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th>Date</th>
|
|
<th>Search</th>
|
|
<th>Results</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH s IN previous_biblio_searches %]
|
|
<tr>
|
|
<td class="selectcol">
|
|
<input type="checkbox" name="id" value="[% s.id | html %]" id="result[% s.id | html %]" />
|
|
</td>
|
|
<td data-order="[% s.time | html %]">
|
|
<label for="result[% s.id | html %]">
|
|
[% s.time |$KohaDates with_hours => 1 %]
|
|
</label>
|
|
</td>
|
|
<td>
|
|
<a href="[% OPACBaseURL | url %]/cgi-bin/koha/opac-search.pl?[% query_cgi | $raw %][% limit_cgi | $raw %]&[% s.query_cgi | $raw %]&count=[% countrss | uri %]&sort_by=acqdate_dsc&format=rss" aria-label="Subscribe to this search" class="rsssearchlink">
|
|
<i class="fa fa-rss rsssearchicon" aria-hidden="true" title="Subscribe to this search"></i>
|
|
</a>
|
|
<a href="/cgi-bin/koha/opac-search.pl?[% s.query_cgi | $raw %]">
|
|
[% s.query_desc | html %]
|
|
</a>
|
|
</td>
|
|
<td>[% s.total | html %]</td>
|
|
<td></td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<input type="submit" class="btn btn-danger remove-selected" value="Remove selected searches">
|
|
</form>
|
|
[% END # IF ( previous_biblio_searches ) %]
|
|
</div> <!-- / #previous_biblio -->
|
|
|
|
[% IF !current_biblio_searches && !previous_biblio_searches %]
|
|
<p>Your catalog search history is empty.</p>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% BLOCK authority_search_history %]
|
|
<div id="current_authority">
|
|
[% IF ( current_authority_searches ) %]
|
|
<h2>Current session</h2>
|
|
<form action="/cgi-bin/koha/opac-search-history.pl" method="post">
|
|
<legend class="sr-only">Toolbar control</legend>
|
|
[% INCLUDE 'toolbar_controls' %]
|
|
<input type="hidden" name="action" value="delete" />
|
|
<table class="historyt table table-bordered table-striped">
|
|
<caption class="sr-only">Current session</caption>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th>Date</th>
|
|
<th>Search</th>
|
|
<th>Results</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH s IN current_authority_searches %]
|
|
<tr>
|
|
<td class="selectcol">
|
|
<input type="checkbox" name="id" value="[% s.id | html %]" id="result[% s.id | html %]" />
|
|
</td>
|
|
<td data-order="[% s.time | html %]">
|
|
<label for="result[% s.id | html %]">
|
|
[% s.time |$KohaDates with_hours => 1 %]
|
|
</label>
|
|
</td>
|
|
<td><a href="/cgi-bin/koha/opac-authorities-home.pl?[% s.query_cgi | $raw %]">[% s.query_desc | html %]</a></td>
|
|
<td>[% s.total | html %]</td>
|
|
<td></td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<input type="submit" class="btn btn-danger remove-selected" value="Remove selected searches">
|
|
</form>
|
|
[% END # / IF ( current_authority_searches ) %]
|
|
</div> <!-- / #current_authority -->
|
|
<hr />
|
|
<div id="previous_authority">
|
|
[% IF ( previous_authority_searches ) %]
|
|
<h2>Previous sessions</h2>
|
|
<form action="/cgi-bin/koha/opac-search-history.pl" method="post">
|
|
<legend class="sr-only">Toolbar control</legend>
|
|
[% INCLUDE 'toolbar_controls' %]
|
|
<input type="hidden" name="action" value="delete" />
|
|
<table class="historyt table table-bordered table-striped">
|
|
<caption class="sr-only">Previous sessions</caption>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th>Date</th>
|
|
<th>Search</th>
|
|
<th>Results</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH s IN previous_authority_searches %]
|
|
<tr>
|
|
<td class="selectcol">
|
|
<input type="checkbox" name="id" value="[% s.id | html %]" id="result[% s.id | html %]" />
|
|
</td>
|
|
<td data-order="[% s.time | html %]">
|
|
<label for="result[% s.id | html %]">
|
|
[% s.time |$KohaDates with_hours => 1 %]
|
|
</label>
|
|
</td>
|
|
<td><a href="/cgi-bin/koha/opac-authorities-home.pl?[% s.query_cgi | $raw %]">[% s.query_desc | html %]</a></td>
|
|
<td>[% s.total | html %]</td>
|
|
<td></td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<input type="submit" class="btn btn-danger remove-selected" value="Remove selected searches">
|
|
</form>
|
|
[% END # / IF ( previous_authority_searches )%]
|
|
</div>
|
|
|
|
[% IF !current_authority_searches && !previous_authority_searches %]
|
|
<p>Your authority search history is empty.</p>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% INCLUDE 'opac-bottom.inc' %]
|
|
|
|
[% BLOCK toolbar_controls %]
|
|
[% # Identical controls shown at the top of each table of search history %]
|
|
<div class="selections-toolbar toolbar">
|
|
<div class="check_control">
|
|
<a class="CheckAll btn btn-link btn-sm" href="#">Select all</a>
|
|
<a class="CheckNone btn btn-link btn-sm" href="#">Clear all</a>
|
|
</div>
|
|
<div class="links">
|
|
<span class="selections">Select searches to: </span>
|
|
<a href="#" class="removeitems disabled btn btn-sm btn-link"><i class="fa fa-trash" aria-hidden="true"></i> Delete</a>
|
|
</div>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% BLOCK jsinclude %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
[% INCLUDE 'columns_settings.inc' %]
|
|
<script>
|
|
|
|
var MSG_CONFIRM_DELETE_HISTORY = _("Are you sure you want to delete selected search history entries?");
|
|
$(document).ready(function() {
|
|
// We show table ordered by descending dates by default
|
|
// (so that the more recent query is shown first)
|
|
var columns_settings = []; // Empty because there are no columns we want to be configurable
|
|
var table = KohaTable(".historyt", {
|
|
"order": [[ 1, "desc" ]],
|
|
"dom": '<"top"<"table_entries"><"table_controls"fB>>t',
|
|
"aoColumnDefs": [
|
|
{ "targets": [ 0 ], "sortable": false, "searchable": false },
|
|
{ "className": 'dtr-control', "orderable": false, "targets": -1 }
|
|
],
|
|
"language": {
|
|
"search": "_INPUT_",
|
|
"searchPlaceholder": _("Search")
|
|
},
|
|
"autoWidth": false,
|
|
"responsive": {
|
|
"details": { "type": 'column',"target": -1 }
|
|
},
|
|
}, columns_settings);
|
|
|
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
|
table.DataTable().responsive.recalc();
|
|
});
|
|
|
|
$(".CheckNone").click(function(e){
|
|
e.preventDefault();
|
|
var form = $(this).parents("form").get(0);
|
|
$(form).find("input:checkbox").prop("checked", false);
|
|
enableCheckboxActions(form);
|
|
});
|
|
$(".CheckAll").click(function(e){
|
|
e.preventDefault();
|
|
var form = $(this).parents("form").get(0);
|
|
$(form).find("input:checkbox").prop("checked", true);
|
|
enableCheckboxActions(form);
|
|
});
|
|
|
|
$("input:checkbox").click(function(){
|
|
var form = $(this).parents("form").get(0);
|
|
enableCheckboxActions(form);
|
|
});
|
|
|
|
$(".removeitems,.remove-selected").click(function(e){
|
|
e.preventDefault();
|
|
var form = $(this).parents("form").get(0);
|
|
var ids = $(form).find("input:checkbox:checked");
|
|
if ( $(ids).length < 1 ) {
|
|
return false;
|
|
}
|
|
if ( confirm(MSG_CONFIRM_DELETE_HISTORY) ) {
|
|
$(form).submit();
|
|
}
|
|
return false;
|
|
});
|
|
$(".remove-selected").addClass("disabled");
|
|
});
|
|
|
|
function enableCheckboxActions(form){
|
|
// Enable/disable controls if checkboxes are checked
|
|
var checkedBoxes = $(form).find("input:checkbox:checked");
|
|
if ($(checkedBoxes).size()) {
|
|
$(form).find(".selections").html(_("With selected searches: "));
|
|
$(form).find(".selections-toolbar .links a").removeClass("disabled");
|
|
$(form).find(".remove-selected").removeClass("disabled");
|
|
} else {
|
|
$(form).find(".selections").html(_("Select searches to: "));
|
|
$(form).find(".selections-toolbar .links a").addClass("disabled");
|
|
$(form).find(".remove-selected").addClass("disabled");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
[% END %]
|