Bug 31162: Add a cataloging module home page

This patch adds a new cataloging-home template and controller and
replaces most cases of links to addbooks.  This serves to provide a new
cataloging home page for the cataloging module and keeps it distinct
from the current addbooks page it partially replaces as a starting point
for cataloging.

We migrate most cataloging related tools from the 'Tools' module whilst
opting to move 'Rotating collections' to the 'Circulation' section of
the 'Tools' homepage. We also add links to the cataloging tab of system
preferences and a the adminstration pages if the user has the correct
permissions to have access to these areas.

Signed-off-by: KIT <michaela.sieber@kit.edu>
Signed-off-by: Emmanuel Bétemps <e.betemps@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Martin Renvoize 2022-07-15 12:37:03 +01:00 committed by Tomas Cohen Arazi
parent 3efd9e4f96
commit c1b08d24da
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
12 changed files with 451 additions and 231 deletions

View File

@ -122,6 +122,7 @@ our $mapping = {
'catalogue/moredetail' => '/cataloging.html#item-records',
'catalogue/search-history' => '/plugins.html#search-history',
'catalogue/search' => '/searching.html',
'cataloguing/cataloging-home' => '/cataloging.html',
'cataloguing/addbiblio' => '/cataloging.html#bibliographic-records',
'cataloguing/addbooks' => '/cataloging.html',
'cataloguing/additem' => '/cataloging.html#item-records',

52
cataloguing/cataloging-home.pl Executable file
View File

@ -0,0 +1,52 @@
#!/usr/bin/perl
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
#
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::Context;
use Koha::BiblioFrameworks;
use Koha::Z3950Servers;
my $query = CGI->new;
my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user(
{
template_name => "cataloguing/cataloging-home.tt",
query => $query,
type => "intranet",
flagsrequired => { editcatalogue => '*' },
}
);
my $servers = Koha::Z3950Servers->search(
{
recordtype => 'biblio',
servertype => ['zed','sru'],
}
);
my $frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] });
$template->param(
servers => $servers,
frameworks => $frameworks
);
output_html_with_http_headers $query, $cookie, $template->output;

View File

@ -31,7 +31,7 @@
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="/cgi-bin/koha/virtualshelves/shelves.pl">Lists</a></li>
[% IF ( CAN_user_editcatalogue_edit_catalogue || CAN_user_editcatalogue_edit_items ) %]
<li><a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a></li>
<li><a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a></li>
[% END %]
[% IF ( CAN_user_acquisition ) %]
<li><a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a></li>

View File

@ -804,7 +804,7 @@ function PopupMARCFieldDoc(field) {
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="#" aria-current="page">
@ -953,7 +953,7 @@ function PopupMARCFieldDoc(field) {
</div>
[% ELSE %]
<div class="btn-group">
<a class="btn btn-link" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
<a class="btn btn-link" id="cancel" href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cancel</a>
</div>
[% END %]
<div id="show-errors" class="btn-group"></div>

View File

@ -21,7 +21,7 @@
</li>
[% IF ( total || breeding_loop ) %]
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="#" aria-current="page">Search results</a>

View File

@ -41,7 +41,7 @@
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblio.biblionumber | uri %]">Edit <em>[% biblio.title | html %] [% IF ( biblio.author ) %] by [% biblio.author | html %][% END %] (Record #[% biblio.biblionumber | html %])</em></a>

View File

@ -0,0 +1,245 @@
[% USE raw %]
[% USE Koha %]
[% USE Branches %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Cataloging &rsaquo; Koha</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="cat_cataloging-home" class="cat">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cataloging-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="#" aria-current="page">Cataloging</a>
</li>
</ol>
</nav>
<div class="main container-fluid">
<div class="row">
<div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]
<div id="toolbar" class="btn-toolbar">
[% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
<a id="useadvanced" href="/cgi-bin/koha/cataloguing/editor.pl" class="btn btn-default"><i class="fa fa-pencil"></i> Advanced editor</a>
[% END %]
<div class="btn-group">
<button class="btn btn-default" id="newRecord"><i class="fa fa-plus"></i> New record</button>
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a id="newRecordDefault" href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=">Default framework</a></li>
[% FOREACH framework IN frameworks %]
<li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=[% framework.frameworkcode | uri %]">[% framework.frameworktext | html %]</a></li>
[% END %]
</ul>
</div>
[% IF servers.count > 0 %]
<div class="btn-group">
<button class="btn btn-default" id="z3950search"><i class="fa fa-search"></i> New from Z39.50/SRU</button>
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu">
<li id="Default" class="z3950searchFw"><a href="#">Default framework</a></li>
[% FOREACH framework IN frameworks %]
<li id="[% framework.frameworkcode | html %]" class="z3950searchFw"><a href="#">[% framework.frameworktext | html %]</a></li>
[% END %]
</ul>
</div>
[% END # /IF servers.count %]
</div> <!-- /#toolbar -->
[% END # /IF CAN_user_editcatalogue_edit_catalogue %]
<h1>Cataloging</h1>
<div class="row">
<div class="col-sm-4 col-md-4">
[% IF ( CAN_user_tools_stage_marc_import || CAN_user_tools_manage_staged_marc ) %]
<h3>Import</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_stage_marc_import ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/stage-marc-import.pl"><i class="fa fa-download"></i> Stage records for import</a>
</li>
[% END %]
[% IF ( CAN_user_tools_manage_staged_marc ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/manage-marc-import.pl"><i class="fa fa-tasks"></i> Manage staged records</a>
</li>
[% END %]
</ul>
[% END %]
[% IF ( CAN_user_tools_export_catalog ) %]
<h3>Export</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_export_catalog ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/export.pl"><i class="fa fa-upload"></i> Export catalog data</a>
</li>
[% END %]
</ul>
[% END %]
[% IF ( CAN_user_tools_inventory ) %]
<h3>Reports</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_inventory ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/inventory.pl"><i class="fa fa-line-chart"></i> Inventory</a>
</li>
[% END %]
</ul>
[% END %]
</div>
<div class="col-sm-4 col-md-4">
[% IF ( CAN_user_tools_items_batchmod || CAN_user_tools_items_batchdel || CAN_user_tools_records_batchmod || CAN_user_tools_records_batchdel || CAN_user_tools_marc_modification_templates ) %]
<h3>Batch editing</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_items_batchmod ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/batchMod.pl"><i class="fa fa-pencil"></i> Batch item modification</a>
</li>
[% END %]
[% IF ( CAN_user_tools_items_batchdel ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/batchMod.pl?del=1"><i class="fa fa-trash"></i> Batch item deletion</a>
</li>
[% END %]
[% IF CAN_user_tools_records_batchmod %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/batch_record_modification.pl"><i class="fa fa-pencil"></i> Batch record modification</a>
</li>
[% END %]
[% IF CAN_user_tools_records_batchdel %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/batch_delete_records.pl"><i class="fa fa-trash"></i> Batch record deletion</a>
</li>
[% END %]
[% IF ( CAN_user_tools_marc_modification_templates ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/marc_modification_templates.pl"><i class="fa fa-gear"></i> MARC modification templates</a>
</li>
[% END %]
</ul>
[% END %]
[% IF ( CAN_user_tools_items_batchmod || ( CAN_user_stockrotation_manage_rotas && Koha.Preference('StockRotation') ) ) %]
<h3>Automation</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_items_batchmod ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/automatic_item_modification_by_age.pl"><i class="fa fa-calendar"></i> Item modifications by age</a>
</li>
[% END %]
[% IF ( CAN_user_stockrotation_manage_rotas && Koha.Preference('StockRotation') ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/stockrotation.pl"><i class="fa fa-refresh"></i> Stock rotation</a>
</li>
[% END %]
</ul>
[% END %]
</div>
<div class="col-sm-4 col-md-4">
[% IF ( CAN_user_tools_label_creator || CAN_user_tools_upload_local_cover_images ) %]
<h3>Tools</h3>
<ul class="buttons-list">
[% IF ( CAN_user_tools_label_creator ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/labels/label-home.pl"><i class="fa fa-hashtag"></i> Label creator</a>
</li>
<li>
<a class="circ-button" href="/cgi-bin/koha/labels/barcode-print.pl"><i class="fa fa-barcode"></i> Barcode image generator</a>
</li>
<li>
<a class="circ-button" href="/cgi-bin/koha/labels/spinelabel-home.pl"><i class="fa fa-hashtag"></i> Quick spine label creator</a>
</li>
[% END %]
[% IF ( CAN_user_tools_upload_local_cover_images ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/tools/upload-cover-image.pl"><i class="fa fa-upload"></i> Upload local cover image</a>
</li>
[% END %]
</ul>
[% END %]
[% IF ( CAN_user_parameters ) %]
<h3>Administration</h3>
<ul class="buttons-list">
[% IF ( CAN_user_parameters_manage_sysprefs ) %]
<li>
<a class="circ-button" href="/cgi-bin/koha/admin/preferences.pl?tab=cataloguing"><i class="fa fa-tasks"></i> Preferences</a>
</li>
[% END %]
<li>
<a class="circ-button" href="/cgi-bin/koha/admin/admin-home.pl"><i class="fa fa-cogs"></i> Configuration</a>
</li>
</ul>
[% END %]
</div>
</div>
</div>
</div>
[% MACRO jsinclude BLOCK %]
<script>
$(document).ready(function() {
$("#newRecord").click(function(){
var url = $("a#newRecordDefault").prop("href");
window.location.href = url;
return false;
});
$("#z3950search").click(function(){
PopupZ3950("Default");
return false;
});
$(".z3950searchFw").click(function(){
PopupZ3950($(this).prop('id'));
return false;
});
$("#useadvanced").click(function(){
Cookies.set( "catalogue_editor_[% logged_in_user.borrowernumber | html %]", "advanced", { expires: 365, path: '/', sameSite: 'Lax' } );
return true;
});
});
/* this function open a popup to search on z3950 server. */
function PopupZ3950(fw) {
var strQuery = GetZ3950Terms(fw);
if(strQuery){
window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber | html %]"+strQuery,"z3950search",'width=800,height=500,location=yes,toolbar=no,scrollbars=yes,resize=yes');
}
}
/* provide Z3950 search points */
function GetZ3950Terms(fw){
var strQuery="&frameworkcode=" + fw;
return strQuery;
}
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]

View File

@ -27,7 +27,7 @@
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="#" aria-current="page">

View File

@ -15,7 +15,7 @@
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="#" aria-current="page">

View File

@ -26,7 +26,7 @@ div#result { margin-top: 1em; }
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
</li>
<li>
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
<a href="/cgi-bin/koha/cataloguing/cataloging-home.pl">Cataloging</a>
</li>
<li>
<a href="#" aria-current="page">

View File

@ -124,7 +124,7 @@
[% IF ( CAN_user_editcatalogue_edit_catalogue || CAN_user_editcatalogue_edit_items ) %]
<li>
<a class="icon_general icon_cataloging" href="/cgi-bin/koha/cataloguing/addbooks.pl"><i class="fa fa-fw fa-tag"></i>Cataloging</a>
<a class="icon_general icon_cataloging" href="/cgi-bin/koha/cataloguing/cataloging-home.pl"><i class="fa fa-fw fa-tag"></i>Cataloging</a>
</li>
[% END %]

View File

@ -26,258 +26,180 @@
</nav>
[% END %]
<div class="container-fluid">
<h1>Tools</h1>
<div class="main container-fluid">
<div class="row">
<div class="col-sm-4">
[% IF ( CAN_user_tools_manage_patron_lists || CAN_user_clubs || CAN_user_tools_moderate_comments || CAN_user_tools_import_patrons || CAN_user_tools_edit_notices || CAN_user_tools_edit_notice_status_triggers || CAN_user_tools_label_creator || CAN_user_tools_delete_anonymize_patrons || CAN_user_tools_edit_patrons || CAN_user_tools_batch_extend_due_dates || CAN_user_tools_moderate_tags || ( CAN_user_tools_batch_upload_patron_images && Koha.Preference('patronimages') ) ) %]
<h3>Patrons and circulation</h3>
[% END %]
<dl>
[% IF (CAN_user_tools_manage_patron_lists) %]
<dt><a href="/cgi-bin/koha/patron_lists/lists.pl">Patron lists</a></dt>
<dd>Manage lists of patrons</dd>
[% END %]
[% IF (CAN_user_clubs) %]
<dt><a href="/cgi-bin/koha/clubs/clubs.pl">Patron clubs</a></dt>
<dd>Manage patron clubs</dd>
[% END %]
[% IF ( CAN_user_tools_moderate_comments ) %]
<dt>
<a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Comments</a>
[% IF ( pendingcomments ) %]
<span class="number_box"><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">[% pendingcomments | html %]</a></span>
<div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
<h1>Tools</h1>
<div class="row">
<div class="col-sm-6">
[% IF ( CAN_user_tools_manage_patron_lists || CAN_user_clubs || CAN_user_tools_moderate_comments || CAN_user_tools_import_patrons || CAN_user_tools_edit_notices || CAN_user_tools_edit_notice_status_triggers || CAN_user_tools_label_creator || CAN_user_tools_delete_anonymize_patrons || CAN_user_tools_edit_patrons || CAN_user_tools_batch_extend_due_dates || CAN_user_tools_moderate_tags || CAN_user_tools_rotating_collections || ( CAN_user_tools_batch_upload_patron_images && Koha.Preference('patronimages') ) ) %]
<h3>Patrons and circulation</h3>
[% END %]
<dl>
[% IF (CAN_user_tools_manage_patron_lists) %]
<dt><a href="/cgi-bin/koha/patron_lists/lists.pl">Patron lists</a></dt>
<dd>Manage lists of patrons</dd>
[% END %]
</dt>
<dd>Moderate patron comments</dd>
[% END %]
[% IF ( CAN_user_tools_import_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/import_borrowers.pl">Import patrons</a></dt>
<dd>Import patron data</dd>
[% END %]
[% IF ( CAN_user_tools_edit_notices ) %]
<dt><a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a></dt>
<dd>Define notices (print and email notification messages for overdues, etc.)</dd>
[% END %]
[% IF ( CAN_user_tools_edit_notice_status_triggers ) %]
<dt><a href="/cgi-bin/koha/tools/overduerules.pl">Overdue notice/status triggers</a></dt>
<dd>Set notice/status triggers for overdue items</dd>
[% END %]
[% IF ( CAN_user_tools_label_creator ) %]
<dt><a href="/cgi-bin/koha/patroncards/home.pl">Patron card creator</a></dt>
<dd>Create printable patron cards</dd>
[% END %]
[% IF ( CAN_user_tools_delete_anonymize_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/cleanborrowers.pl">Batch patron deletion and anonymization</a></dt>
<dd>Batch delete patrons and delete patron circulation history</dd>
[% END %]
[% IF ( CAN_user_tools_edit_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/modborrowers.pl">Batch patron modification</a></dt>
<dd>Modify patrons in batch</dd>
[% END %]
[% IF ( CAN_user_tools_batch_extend_due_dates ) %]
<dt><a href="/cgi-bin/koha/tools/batch_extend_due_dates.pl">Batch extend due dates</a></dt>
<dd>Modify the due date checkouts in batch</dd>
[% END %]
[% IF ( CAN_user_tools_moderate_tags ) %]
<dt>
<a href="/cgi-bin/koha/tags/review.pl">Tags</a>
[% IF ( pendingtags ) %]
<span class="number_box"><a href="/cgi-bin/koha/tags/review.pl">[% pendingtags | html %]</a></span>
[% IF (CAN_user_clubs) %]
<dt><a href="/cgi-bin/koha/clubs/clubs.pl">Patron clubs</a></dt>
<dd>Manage patron clubs</dd>
[% END %]
</dt>
<dd>Moderate patron tags</dd>
[% END %]
[% IF ( CAN_user_tools_batch_upload_patron_images && Koha.Preference('patronimages') ) %]
<dt><a href="/cgi-bin/koha/tools/picture-upload.pl">Upload patron images</a></dt>
<dd>Upload patron images in a batch or one at a time</dd>
[% END %]
</dl>
</div> <!-- /.col-sm-4 -->
[% IF ( CAN_user_tools_moderate_comments ) %]
<dt>
<a href="/cgi-bin/koha/reviews/reviewswaiting.pl">Comments</a>
[% IF ( pendingcomments ) %]
<span class="number_box"><a href="/cgi-bin/koha/reviews/reviewswaiting.pl">[% pendingcomments | html %]</a></span>
[% END %]
</dt>
<dd>Moderate patron comments</dd>
[% END %]
<div class="col-sm-4 col-sm-push-4">
[% IF ( CAN_user_tools_edit_calendar || CAN_user_tools_manage_csv_profiles || CAN_user_tools_view_system_logs || CAN_user_tools_edit_additional_contents || CAN_user_tools_schedule_tasks || CAN_user_tools_edit_quotes || ( plugins_enabled && CAN_user_plugins_tool ) || CAN_user_tools_upload_general_files || CAN_user_tools_access_files ) %]
<h3>Additional tools</h3>
[% END %]
<dl>
[% IF ( CAN_user_tools_edit_calendar ) %]
<dt><a href="/cgi-bin/koha/tools/holidays.pl">Calendar</a></dt>
<dd>Define days when the library is closed</dd>
[% END %]
[% IF ( CAN_user_tools_import_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/import_borrowers.pl">Import patrons</a></dt>
<dd>Import patron data</dd>
[% END %]
[% IF ( CAN_user_tools_manage_csv_profiles ) %]
<dt><a href="/cgi-bin/koha/tools/csv-profiles.pl">CSV profiles</a></dt>
<dd>Manage CSV export profiles</dd>
[% END %]
[% IF ( CAN_user_tools_edit_notices ) %]
<dt><a href="/cgi-bin/koha/tools/letter.pl">Notices and slips</a></dt>
<dd>Define notices (print and email notification messages for overdues, etc.)</dd>
[% END %]
[% IF ( CAN_user_tools_view_system_logs ) %]
<dt><a href="/cgi-bin/koha/tools/viewlog.pl">Log viewer</a></dt>
<dd>Browse the system logs</dd>
[% END %]
[% IF ( CAN_user_tools_edit_notice_status_triggers ) %]
<dt><a href="/cgi-bin/koha/tools/overduerules.pl">Overdue notice/status triggers</a></dt>
<dd>Set notice/status triggers for overdue items</dd>
[% END %]
[% IF ( CAN_user_tools_edit_additional_contents ) %]
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=news">News</a></dt>
<dd>Write news for the OPAC and staff interfaces</dd>
[% IF ( CAN_user_tools_label_creator ) %]
<dt><a href="/cgi-bin/koha/patroncards/home.pl">Patron card creator</a></dt>
<dd>Create printable patron cards</dd>
[% END %]
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=html_customizations">HTML customizations</a></dt>
<dd>Write HTML customizations</dd>
[% IF ( CAN_user_tools_delete_anonymize_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/cleanborrowers.pl">Batch patron deletion and anonymization</a></dt>
<dd>Batch delete patrons and delete patron circulation history</dd>
[% END %]
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=pages">Pages</a></dt>
<dd>Write custom pages</dd>
[% END %]
[% IF ( CAN_user_tools_edit_patrons ) %]
<dt><a href="/cgi-bin/koha/tools/modborrowers.pl">Batch patron modification</a></dt>
<dd>Modify patrons in batch</dd>
[% END %]
[% IF ( CAN_user_tools_schedule_tasks ) %]
<dt><a href="/cgi-bin/koha/tools/scheduler.pl">Task scheduler</a></dt>
<dd>Schedule tasks to run</dd>
[% END %]
[% IF ( CAN_user_tools_batch_extend_due_dates ) %]
<dt><a href="/cgi-bin/koha/tools/batch_extend_due_dates.pl">Batch extend due dates</a></dt>
<dd>Modify the due date checkouts in batch</dd>
[% END %]
[% IF ( CAN_user_tools_edit_quotes ) %]
<dt><a href="/cgi-bin/koha/tools/quotes.pl">Quote editor</a></dt>
<dd>Manage 'Quote of the day' quotes</dd>
[% END %]
[% IF ( CAN_user_tools_moderate_tags ) %]
<dt>
<a href="/cgi-bin/koha/tags/review.pl">Tags</a>
[% IF ( pendingtags ) %]
<span class="number_box"><a href="/cgi-bin/koha/tags/review.pl">[% pendingtags | html %]</a></span>
[% END %]
</dt>
<dd>Moderate patron tags</dd>
[% END %]
[% IF ( plugins_enabled && CAN_user_plugins_tool && tool_plugins ) %]
<dt><a href="/cgi-bin/koha/plugins/plugins-home.pl?method=tool">Tool plugins</a></dt>
<dd>
Use tool plugins
<ul>
[% FOREACH plugin IN tool_plugins %]
<li class="plugin_link">
<a href="/cgi-bin/koha/plugins/run.pl?class=[% plugin.class | uri %]&method=tool">
<span class="plugin_name">[% plugin.metadata.name | html %]</span>
</a>
</li>
[% END %]
</ul>
</dd>
[% END # /IF ( plugins_enabled... %]
[% IF ( CAN_user_tools_batch_upload_patron_images && Koha.Preference('patronimages') ) %]
<dt><a href="/cgi-bin/koha/tools/picture-upload.pl">Upload patron images</a></dt>
<dd>Upload patron images in a batch or one at a time</dd>
[% END %]
[% IF ( CAN_user_tools_upload_general_files ) %]
<dt><a href="/cgi-bin/koha/tools/upload.pl">Uploads</a></dt>
<dd>Upload any type of file, manage uploads</dd>
[% END %]
[% IF ( CAN_user_tools_rotating_collections ) %]
<dt><a href="/cgi-bin/koha/rotating_collections/rotatingCollections.pl">Rotating collections</a></dt>
<dd>Manage rotating collections</dd>
[% END %]
</dl>
</div> <!-- /.col-sm-6 -->
[% IF CAN_user_tools_access_files %]
<dt><a href="/cgi-bin/koha/tools/access_files.pl">Access files</a></dt>
<dd>Access files stored on the server, like log files or reports</dd>
[% END %]
<div class="col-sm-6">
[% IF ( CAN_user_tools_edit_calendar || CAN_user_tools_manage_csv_profiles || CAN_user_tools_view_system_logs || CAN_user_tools_edit_additional_contents || CAN_user_tools_schedule_tasks || CAN_user_tools_edit_quotes || ( plugins_enabled && CAN_user_plugins_tool ) || CAN_user_tools_upload_general_files || CAN_user_tools_access_files ) %]
<h3>Additional tools</h3>
[% END %]
<dl>
[% IF ( CAN_user_tools_edit_calendar ) %]
<dt><a href="/cgi-bin/koha/tools/holidays.pl">Calendar</a></dt>
<dd>Define days when the library is closed</dd>
[% END %]
[% IF ( Koha.Preference('OPACReportProblem') && CAN_user_problem_reports ) %]
<dt><a href="/cgi-bin/koha/tools/problem-reports.pl">OPAC problem reports</a></dt>
<dd>Manage OPAC problem reports submitted by patrons</dd>
[% END %]
[% IF ( CAN_user_tools_manage_csv_profiles ) %]
<dt><a href="/cgi-bin/koha/tools/csv-profiles.pl">CSV profiles</a></dt>
<dd>Manage CSV export profiles</dd>
[% END %]
</dl>
[% IF ( CAN_user_tools_view_system_logs ) %]
<dt><a href="/cgi-bin/koha/tools/viewlog.pl">Log viewer</a></dt>
<dd>Browse the system logs</dd>
[% END %]
[% IF ( Koha.Preference('UseCashRegisters') && ( CAN_user_cash_management_cashup || CAN_user_cash_management_anonymous_refund ) ) %]
<h3>Cash management</h3>
<dl>
<dt><a href="/cgi-bin/koha/pos/registers.pl">Cash summary for [% Branches.GetLoggedInBranchname | html %]</a></dt>
<dd>View cash takings for the current library</dd>
[% IF ( CAN_user_tools_edit_additional_contents ) %]
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=news">News</a></dt>
<dd>Write news for the OPAC and staff interfaces</dd>
<dt><a href="/cgi-bin/koha/pos/register.pl">Transaction history for [% Registers.session_register_name | html %]</a></dt>
<dd>View transaction history for the current cash register</dd>
</dl>
[% END %]
</div> <!-- /.col-sm-4... -->
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=html_customizations">HTML customizations</a></dt>
<dd>Write HTML customizations</dd>
<div class="col-sm-4 col-sm-pull-4">
[% IF ( CAN_user_tools_items_batchdel || CAN_user_tools_items_batchmod || CAN_user_tools_records_batchdel || CAN_user_tools_records_batchmod || CAN_user_tools_export_catalog || CAN_user_tools_inventory || CAN_user_tools_label_creator || CAN_user_tools_rotating_collections || ( CAN_user_stockrotation_manage_rotas && Koha.Preference('StockRotation') ) || CAN_user_tools_marc_modification_templates || CAN_user_tools_stage_marc_import || CAN_user_tools_manage_staged_marc || CAN_user_tools_upload_local_cover_images ) %]
<h3>Catalog</h3>
[% END %]
<dl>
[% IF ( CAN_user_tools_items_batchdel ) %]
<dt><a href="/cgi-bin/koha/tools/batchMod.pl?del=1">Batch item deletion</a></dt>
<dd>Delete a batch of items</dd>
[% END %]
<dt><a href="/cgi-bin/koha/tools/additional-contents.pl?category=pages">Pages</a></dt>
<dd>Write custom pages</dd>
[% END %]
[% IF ( CAN_user_tools_items_batchmod ) %]
<dt><a href="/cgi-bin/koha/tools/batchMod.pl">Batch item modification</a></dt>
<dd>Modify items in a batch</dd>
[% END %]
[% IF ( CAN_user_tools_schedule_tasks ) %]
<dt><a href="/cgi-bin/koha/tools/scheduler.pl">Task scheduler</a></dt>
<dd>Schedule tasks to run</dd>
[% END %]
[% IF CAN_user_tools_records_batchdel %]
<dt><a href="/cgi-bin/koha/tools/batch_delete_records.pl">Batch record deletion</a></dt>
<dd>Delete a batch of bibliographic or authority records</dd>
[% END %]
[% IF ( CAN_user_tools_edit_quotes ) %]
<dt><a href="/cgi-bin/koha/tools/quotes.pl">Quote editor</a></dt>
<dd>Manage 'Quote of the day' quotes</dd>
[% END %]
[% IF CAN_user_tools_records_batchmod %]
<dt><a href="/cgi-bin/koha/tools/batch_record_modification.pl">Batch record modification</a></dt>
<dd>Modify a batch of bibliographic or authority records</dd>
[% END %]
[% IF ( plugins_enabled && CAN_user_plugins_tool && tool_plugins ) %]
<dt><a href="/cgi-bin/koha/plugins/plugins-home.pl?method=tool">Tool plugins</a></dt>
<dd>
Use tool plugins
<ul>
[% FOREACH plugin IN tool_plugins %]
<li class="plugin_link">
<a href="/cgi-bin/koha/plugins/run.pl?class=[% plugin.class | uri %]&method=tool">
<span class="plugin_name">[% plugin.metadata.name | html %]</span>
</a>
</li>
[% END %]
</ul>
</dd>
[% END %]
[% IF ( CAN_user_tools_items_batchmod ) %]
<dt><a href="/cgi-bin/koha/tools/automatic_item_modification_by_age.pl">Automatic item modifications by age</a></dt>
<dd>Define rules to modify items by age</dd>
[% END %]
[% IF ( CAN_user_tools_upload_general_files ) %]
<dt><a href="/cgi-bin/koha/tools/upload.pl">Uploads</a></dt>
<dd>Upload any type of file, manage uploads</dd>
[% END %]
[% IF ( CAN_user_tools_export_catalog ) %]
<dt><a href="/cgi-bin/koha/tools/export.pl">Export data</a></dt>
<dd>Export bibliographic, holdings, and authority records</dd>
[% END %]
[% IF CAN_user_tools_access_files %]
<dt><a href="/cgi-bin/koha/tools/access_files.pl">Access files</a></dt>
<dd>Access files stored on the server, like log files or reports</dd>
[% END %]
[% IF ( CAN_user_tools_inventory ) %]
<dt><a href="/cgi-bin/koha/tools/inventory.pl">Inventory</a></dt>
<dd>Perform inventory of your catalog</dd>
[% END %]
[% IF ( Koha.Preference('OPACReportProblem') && CAN_user_problem_reports ) %]
<dt><a href="/cgi-bin/koha/tools/problem-reports.pl">OPAC problem reports</a></dt>
<dd>Manage OPAC problem reports submitted by patrons</dd>
[% END %]
</dl>
[% IF ( CAN_user_tools_label_creator ) %]
<dt><a href="/cgi-bin/koha/labels/label-home.pl">Label creator</a></dt>
<dd>Create printable labels and barcodes from catalog data</dd>
[% END %]
[% IF ( Koha.Preference('UseCashRegisters') && ( CAN_user_cash_management_cashup || CAN_user_cash_management_anonymous_refund ) ) %]
<h3>Cash management</h3>
<dl>
<dt><a href="/cgi-bin/koha/pos/registers.pl">Cash summary for [% Branches.GetLoggedInBranchname | html %]</a></dt>
<dd>View cash takings for the current library</dd>
[% IF ( CAN_user_tools_label_creator ) %]
<dt><a href="/cgi-bin/koha/labels/barcode-print.pl">Barcode image generator</a></dt>
<dd>Configure and create barcodes of various types to be output as an image</dd>
[% END %]
<dt><a href="/cgi-bin/koha/pos/register.pl">Transaction history for [% Registers.session_register_name | html %]</a></dt>
<dd>View transaction history for the current cash register</dd>
</dl>
[% END %]
[% IF ( CAN_user_tools_label_creator ) %]
<dt><a href="/cgi-bin/koha/labels/spinelabel-home.pl">Quick spine label creator</a></dt>
<dd>Enter a barcode to generate a printable spine label. For use with dedicated label printers</dd>
[% END %]
[% IF ( CAN_user_tools_rotating_collections ) %]
<dt><a href="/cgi-bin/koha/rotating_collections/rotatingCollections.pl">Rotating collections</a></dt>
<dd>Manage rotating collections</dd>
[% END %]
[% IF ( CAN_user_stockrotation_manage_rotas && Koha.Preference('StockRotation') ) %]
<dt><a href="/cgi-bin/koha/tools/stockrotation.pl">Stock rotation</a></dt>
<dd>Manage Stock rotation rotas, rota stages and rota items</dd>
[% END %]
[% IF ( CAN_user_tools_marc_modification_templates ) %]
<dt><a href="/cgi-bin/koha/tools/marc_modification_templates.pl">MARC modification templates</a></dt>
<dd>Manage templates for modifying MARC records during import</dd>
[% END %]
[% IF ( CAN_user_tools_stage_marc_import ) %]
<dt><a href="/cgi-bin/koha/tools/stage-marc-import.pl">Stage MARC records for import</a></dt>
<dd>Stage MARC records into the reservoir</dd>
[% END %]
[% IF ( CAN_user_tools_manage_staged_marc ) %]
<dt><a href="/cgi-bin/koha/tools/manage-marc-import.pl">Staged MARC record management</a></dt>
<dd>Managed staged MARC records, including completing and reversing imports</dd>
[% END %]
[% IF ( CAN_user_tools_upload_local_cover_images ) %]
<dt><a href="/cgi-bin/koha/tools/upload-cover-image.pl">Upload local cover image</a></dt>
<dd>Utility to upload scanned cover images for display in OPAC</dd>
[% END %]
</dl>
</div> <!-- /.col-sm-4... -->
</div> <!-- /.col-sm-6 -->
</div> <!-- /.row -->
</div> <!-- /.col-md-10 -->
</div> <!-- /.row -->
[% INCLUDE 'intranet-bottom.inc' %]