1206 lines
75 KiB
Plaintext
1206 lines
75 KiB
Plaintext
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE Koha %]
|
|
[% USE KohaDates %]
|
|
[% USE AdditionalContents %]
|
|
[% USE KohaPlugins %]
|
|
[% PROCESS 'i18n.inc' %]
|
|
[% PROCESS 'html_helpers.inc' %]
|
|
[% 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 ) %]
|
|
[% SET LoginEnabled = ( Koha.Preference('opacuserlogin') == 1 ) %]
|
|
[% IF ( Koha.Preference('TagsEnabled') ) %]
|
|
[% SET TagsShowEnabled = ( ( Koha.Preference('TagsEnabled') == 1 ) && ( Koha.Preference('TagsShowOnList') > 0 ) ) %]
|
|
[% SET TagsInputEnabled = LoginEnabled && TagsShowEnabled && ( Koha.Preference('TagsInputOnList') > 0 ) %]
|
|
[% END %]
|
|
[% SET CartEnabled = ( Koha.Preference('opacbookbag') == 1 ) %]
|
|
[% SET ListsEnabled = ( Koha.Preference('virtualshelves') == 1 ) && LoginEnabled %]
|
|
[% SET HoldsEnabled = ( Koha.Preference('OPACHoldRequests') == 1 ) && LoginEnabled %]
|
|
[% SET RecallsEnabled = ( Koha.Preference('UseRecalls') == 1 ) && LoginEnabled %]
|
|
[% SET ArticleRequestsEnabled = ( Koha.Preference('ArticleRequests') == 1 ) && LoginEnabled %]
|
|
[% SET MultiHolds = ( Koha.Preference('DisplayMultiPlaceHold') == 1 ) && HoldsEnabled %]
|
|
[% SET CoverImagePlugins = KohaPlugins.get_plugins_opac_cover_images %]
|
|
[% SET OPACLocalCoverImages = Koha.Preference('OPACLocalCoverImages') %]
|
|
[% SET OPACAmazonCoverImages = Koha.Preference('OPACAmazonCoverImages') %]
|
|
[% SET SyndeticsCoverImages = ( Koha.Preference('SyndeticsEnabled') && Koha.Preference('SyndeticsCoverImages') ) %]
|
|
[% SET GoogleJackets = Koha.Preference('GoogleJackets') %]
|
|
[% SET OpenLibraryCovers = Koha.Preference('OpenLibraryCovers') %]
|
|
[% SET OPACCoce = ( Koha.Preference('OPACCoce') && Koha.Preference('CoceProviders') ) %]
|
|
[% IF ( CoverImagePlugins || OPACLocalCoverImages || OPACAmazonCoverImages || SyndeticsCoverImages || GoogleJackets || OpenLibraryCovers || OPACCoce || OPACCustomCoverImages ) %]
|
|
[% SET CoverImages = 1 %]
|
|
[% SET OPACCustomCoverImages = ( Koha.Preference('OPACCustomCoverImages') && Koha.Preference('CustomCoverImagesURL') ) %]
|
|
[% SET OverDriveEnabled = Koha.Preference('OverDriveLibraryID') && Koha.Preference('OverDriveClientKey') && Koha.Preference('OverDriveClientSecret') %]
|
|
[% END %]
|
|
[% SET OverDriveEnabled = ( Koha.Preference( "OPACOverDrive" ) && Koha.Preference('OverDriveLibraryID') && Koha.Preference('OverDriveClientKey') && Koha.Preference('OverDriveClientSecret') ) %]
|
|
|
|
[% BLOCK delete_shelf %]
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="deleteshelf[% shelf.shelfnumber | html %]" class="d-inline">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<input type="hidden" name="op" value="cud-delete" />
|
|
<input type="hidden" name="referer" value="list" />
|
|
<input type="hidden" name="public" value="[% public | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<button
|
|
type="submit"
|
|
class="btn btn-link remove deleteshelf"
|
|
data-shelfnumber="[% shelf.shelfnumber | html %]"
|
|
data-shelfname="[% shelf.shelfname | html %]"
|
|
data-shared="[% shelf.is_shared | html %]"
|
|
data-count="[% contents_count | html %]"
|
|
>
|
|
<i class="fa fa-times" aria-hidden="true"></i>
|
|
[% IF ( context == "list" ) %]
|
|
Delete
|
|
[% ELSE %]
|
|
Delete list
|
|
[% END %]
|
|
</button>
|
|
</form>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title
|
|
>[% FILTER collapse %]
|
|
[% IF op == 'view' %]
|
|
[% tx("Contents of {list}", {list = shelf.shelfname}) | html %]
|
|
[% ELSE %]
|
|
[% t("Your lists") | html %]
|
|
[% END %]
|
|
› [% PROCESS 'library_name_title' %]
|
|
[% END %]</title
|
|
>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% BLOCK cssinclude %]
|
|
[% END %]
|
|
[% Asset.css("lib/Chocolat/css/chocolat.css") | $raw %]
|
|
</head>
|
|
[% IF ( loggedinusername ) %]
|
|
[% INCLUDE 'bodytag.inc' bodyid='opac-userlists' bodyclass='scrollto' %]
|
|
[% ELSE %]
|
|
[% INCLUDE 'bodytag.inc' bodyid='opac-lists' bodyclass='scrollto' %]
|
|
[% END %]
|
|
|
|
[% BLOCK list_permissions %]
|
|
<li>
|
|
<label for="allow_changes_from">Allow changes to contents from: </label>
|
|
<select name="allow_changes_from" id="allow_changes_from">
|
|
[% IF shelf.allow_change_from_owner %]<option value="0">Nobody</option>[% ELSE %]<option value="0" selected="selected">Nobody</option>[% END %]
|
|
|
|
[% IF shelf.allow_change_from_owner && (( !shelf.is_public && !shelf.is_shared ) || !shelf.allow_change_from_others ) %]
|
|
<option value="1" selected="selected">Owner only</option>
|
|
[% ELSE %]
|
|
<option value="1">Owner only</option>
|
|
[% END %]
|
|
|
|
[% IF permitteduser == 1 %][% IF shelf.allow_change_from_permitted_staff %]<option value="4" selected="selected">Permitted staff only</option>[% ELSE %]<option value="4">Permitted staff only</option>[% END %][% END %]
|
|
|
|
[% IF staffuser == 1 %][% IF shelf.allow_change_from_staff %]<option value="3" selected="selected">Staff only</option>[% ELSE %]<option value="3">Staff only</option>[% END %][% END %]
|
|
|
|
[% IF shelf.allow_change_from_others %]<option value="2" selected="selected">Anyone seeing this list</option>[% ELSE %]<option value="2">Anyone seeing this list</option>[% END %]
|
|
</select>
|
|
  <span id="permitted_staff_remark" style="display:none;color:red;">The "Permitted staff only" permission has no actual effect while this list is strictly private.</span>  
|
|
<span id="staff_remark" style="display:none;color:red;">The "Staff only" permission has no actual effect while this list is strictly private.</span>  
|
|
<span id="anyone_remark" style="display:none;color:red;">The "Anyone" permission has no actual effect while this list is strictly private.</span>
|
|
</li>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'masthead.inc' %]
|
|
<main class="main">
|
|
[% WRAPPER breadcrumbs %]
|
|
[% IF ( loggedinusername ) %]
|
|
[% WRAPPER breadcrumb_item %]
|
|
<a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' patron = logged_in_user %]</a>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF op != 'list' %]
|
|
[% WRAPPER breadcrumb_item %]
|
|
<a href="/cgi-bin/koha/opac-shelves.pl">Lists</a>
|
|
[% END %]
|
|
[% ELSE %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Lists</span>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF shelf and shelf.is_private %]
|
|
[% IF op == 'view' OR op == 'edit_form' %]
|
|
[% WRAPPER breadcrumb_item %]
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0">Your lists</a>
|
|
[% END %]
|
|
[% ELSE %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Your lists</span>
|
|
[% END %]
|
|
[% END %]
|
|
[% ELSIF shelf AND shelf.is_public %]
|
|
[% IF op == 'view' %]
|
|
[% WRAPPER breadcrumb_item %]
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=1">Public lists</a>
|
|
[% END %]
|
|
[% ELSE %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Public lists</span>
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF op == 'view' %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Contents of <em>[% shelf.shelfname | html %]</em></span>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF op == 'add_form' %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Create new list</span>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF op == 'edit_form' %]
|
|
[% WRAPPER breadcrumb_item bc_active= 1 %]
|
|
<span>Edit list <em>[% shelf.shelfname | html %]</em></span>
|
|
[% END %]
|
|
[% END %]
|
|
[% END #/ WRAPPER breadcrumbs %]
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
[% SET column_class = "col order-first order-md-first order-lg-2" %]
|
|
[% IF ( OpacNav || OpacNavBottom || loggedinusername ) %]
|
|
[% column_class = "col-md-12 col-lg-10 order-1" %]
|
|
<div class="col col-lg-2 order-2 order-lg-1">
|
|
<div id="navigation"> [% INCLUDE 'navigation.inc' IsPatronPage=1 %] </div>
|
|
</div>
|
|
[% END %]
|
|
|
|
<div class="[% column_class | html %]">
|
|
<div id="usershelves" class="maincontent">
|
|
[% FOR m IN messages %]
|
|
[% SET alert_class = "alert alert-success" %]
|
|
[% SWITCH m.type %]
|
|
[% CASE 'message' %]
|
|
[% alert_class = "alert alert-success" %]
|
|
[% CASE 'error' %]
|
|
[% alert_class = "alert alert-danger" %]
|
|
[% END %]
|
|
<div class="[% alert_class | html %]" role="alert">
|
|
[% SWITCH m.code %]
|
|
[% CASE 'error_on_update' %]
|
|
<span>An error occurred when updating this list.</span>
|
|
[% CASE 'error_on_insert' %]
|
|
<span>An error occurred when creating this list.</span>
|
|
[% CASE 'error_on_delete' %]
|
|
<span>An error occurred when deleting this list.</span>
|
|
[% CASE 'error_on_add_biblio' %]
|
|
<span>The item has not been added to the list. Please check it's not already in the list.</span>
|
|
[% CASE 'error_on_remove_share' %]
|
|
<span>The share has not been removed.</span>
|
|
[% CASE 'no_email_found' %]
|
|
<span>No email found for the patrons that accepted the share</span>
|
|
[% CASE 'success_on_update' %]
|
|
<span>List updated.</span>
|
|
[% CASE 'success_on_insert' %]
|
|
<span>List created.</span>
|
|
[% CASE 'success_on_delete' %]
|
|
<span>List deleted.</span>
|
|
[% CASE 'success_on_add_biblio' %]
|
|
<span>The item has been added to the list.</span>
|
|
[% CASE 'success_on_remove_biblios' %]
|
|
<span>The item has been removed from the list.</span>
|
|
[% CASE 'success_on_remove_share' %]
|
|
<span>The share has been removed.</span>
|
|
[% CASE 'does_not_exist' %]
|
|
<span>This list does not exist.</span>
|
|
[% CASE 'item_does_not_exist' %]
|
|
<span>This item does not exist.</span>
|
|
[% CASE 'unauthorized_on_view' %]
|
|
<span>You do not have permission to view this list.</span>
|
|
[% CASE 'unauthorized_on_insert' %]
|
|
<span>You do not have permission to create a new list.</span>
|
|
[% CASE 'unauthorized_on_update' %]
|
|
<span>You do not have permission to update this list.</span>
|
|
[% CASE 'unauthorized_on_delete' %]
|
|
<span>You do not have permission to delete this list.</span>
|
|
[% CASE 'unauthorized_on_add_biblio' %]
|
|
<span>You do not have permission to add a record to this list.</span>
|
|
[% CASE 'unauthorized_transfer' %]
|
|
<span>Transfer not allowed: You or the selected user do not have the required permissions.</span>
|
|
[% CASE 'no_biblio_removed' %]
|
|
<span>No record was removed.</span>
|
|
[% CASE 'new_owner_not_found' %]
|
|
<span>The new owner could not be found anymore.</span>
|
|
[% CASE 'new_owner_has_no_share' %]
|
|
<span>The new owner has no share for this list.</span>
|
|
[% CASE 'Koha::Exceptions::Virtualshelf::DuplicateObject' %]
|
|
<span>An error occurred when creating the list. The name [% shelfname | html %] already exists.</span>
|
|
[% CASE 'Koha::Exceptions::Object::FKConstraint' %]
|
|
<span>Database constraint error: [% m.msg | html %]</span>
|
|
[% CASE 'Koha::Exceptions::Object::DuplicateID' %]
|
|
<span>Duplicate entry error: [% m.msg | html %]</span>
|
|
[% CASE 'Koha::Exceptions::Object::BadValue' %]
|
|
<span>Invalid data error: [% m.msg | html %]</span>
|
|
[% CASE %]
|
|
[% m.code | html %]
|
|
[% m.msg | html %]
|
|
[% END %]
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF shelf AND op == 'view' %]
|
|
<h1>
|
|
[% shelf.shelfname | html %]
|
|
[% IF ( public ) %]
|
|
<a href="[% OPACBaseURL | url %]/cgi-bin/koha/opac-shelves.pl?rss=1&op=view&shelfnumber=[% shelf.shelfnumber | uri %]" class="rss-list-link noprint" aria-label="Subscribe to this list">
|
|
<i class="fa fa-fw fa-rss rsssearchicon" aria-hidden="true" title="Subscribe to this list"></i>
|
|
</a>
|
|
[% END %]
|
|
</h1>
|
|
|
|
[% IF ( itemsloop ) %]
|
|
[% IF ( contents_count ) %]<p>This list contains [% contents_count | html %] titles</p>[% END %]
|
|
<div id="floating" class="sticky">
|
|
<div id="toolbar" class="toolbar clearfix">
|
|
<div class="list-actions">
|
|
<a class="btn btn-link newshelf" href="/cgi-bin/koha/opac-shelves.pl?op=add_form"><i class="fa fa-fw fa-plus" aria-hidden="true"></i> New list</a> <span class="sep">|</span>
|
|
|
|
<div id="download-list" class="btn-group dropdown">
|
|
<a
|
|
id="format"
|
|
class="btn btn-link dropdown-toggle"
|
|
aria-haspopup="menu"
|
|
aria-label="Select format and download list"
|
|
data-bs-toggle="dropdown"
|
|
href="/cgi-bin/koha/opac-downloadshelf.pl?shelfnumber=[% shelf.shelfnumber | html %]"
|
|
><i class="fa fa-fw fa-download" aria-hidden="true"></i> Download <b class="caret"></b
|
|
></a>
|
|
<div class="dropdown-menu pull-left" role="menu" aria-labelledby="format">
|
|
<a role="menuitem" class="dropdown-item download-list" data-format="bibtex" href="#">BibTeX</a>
|
|
[% IF Koha.Preference('OPACISBD') %]<a role="menuitem" class="dropdown-item download-list" data-format="isbd" href="#">ISBD</a>[% END %]
|
|
<a role="menuitem" class="dropdown-item download-list" data-format="iso2709" href="#">MARC</a>
|
|
<a role="menuitem" class="dropdown-item download-list" data-format="ris" href="#">RIS (Zotero, EndNote, others)</a>
|
|
[% FOREACH csv_profile IN csv_profiles %]
|
|
<a role="menuitem" class="dropdown-item download-list" data-format="[% csv_profile.export_format_id | html %]" href="#">CSV - [% csv_profile.profile | html %]</a>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
|
|
[% IF ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( ! Koha.Preference('OPACDisableSendList') ) %]
|
|
<span class="sendlist"
|
|
><a href="/cgi-bin/koha/opac-sendshelf.pl?shelfid=[% shelf.shelfnumber | uri %]" class="btn btn-link send"><i class="fa fa-fw fa-envelope" aria-hidden="true"></i> Send list</a></span
|
|
>
|
|
[% END %]
|
|
|
|
<a
|
|
class="btn btn-link print-small"
|
|
target="_blank"
|
|
href="/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber | html %]&sortfield=[% sortfield | html %]&direction=[% direction | uri %]&print=1"
|
|
><i class="fa fa-fw fa-print" aria-hidden="true"></i> Print list</a
|
|
>
|
|
|
|
[% IF can_manage_shelf %]
|
|
<span class="sep">|</span>
|
|
<form method="get" action="/cgi-bin/koha/opac-shelves.pl" class="d-inline">
|
|
<input type="hidden" name="op" value="edit_form" />
|
|
<input type="hidden" name="referer" value="view" />
|
|
<input type="hidden" name="public" value="[% shelf.public | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<button type="submit" class="btn btn-link editshelf"><i class="fa-fw fa-solid fa-pencil" aria-hidden="true"></i> Edit list</button>
|
|
</form>
|
|
|
|
[% PROCESS delete_shelf context = "details" %]
|
|
|
|
[% IF !public && Koha.Preference('OpacAllowSharingPrivateLists') %]
|
|
<a href="/cgi-bin/koha/opac-shareshelf.pl?op=show&shelfnumber=[% shelf.shelfnumber | uri %]" class="btn btn-link sharelist"><i class="fa fa-fw fa-share" aria-hidden="true"></i> Share list</a>
|
|
[% END %]
|
|
[% ELSIF !public # not manageshelf and private means shared %]
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="unshare[% shelf.shelfnumber | html %]" class="d-inline">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<input type="hidden" name="op" value="cud-remove_share" />
|
|
<input type="hidden" name="referer" value="list" />
|
|
<input type="hidden" name="public" value="[% public | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<button type="submit" class="btn btn-link remove remove_share" data-shelfname="[% shelf.shelfname | html %]" data-shelfnumber="[% shelf.shelfnumber | html %]">
|
|
<i class="fa fa-times" aria-hidden="true"></i> Remove share
|
|
</button>
|
|
</form>
|
|
[% END # /IF can_manage_shelf %]
|
|
</div>
|
|
<!-- /.list-actions -->
|
|
|
|
<form method="get" action="/cgi-bin/koha/opac-shelves.pl" id="sorting-form" class="d-inline sort_by">
|
|
<input type="hidden" name="op" value="view" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
|
|
<label for="sortfield">Sort by: </label>
|
|
<select name="sortfield" id="sortfield" class="resort">
|
|
<option value="">Default sorting</option>
|
|
<optgroup label="Author">
|
|
[% IF sortfield == 'author' && direction == 'asc' %]
|
|
<option value="author" data-direction="asc" selected="selected">Author (A-Z)</option>
|
|
[% ELSE %]
|
|
<option value="author" data-direction="asc">Author (A-Z)</option>
|
|
[% END %]
|
|
[% IF sortfield == 'author' && direction == 'desc' %]
|
|
<option value="author" data-direction="desc" selected="selected">Author (Z-A)</option>
|
|
[% ELSE %]
|
|
<option value="author" data-direction="desc">Author (Z-A)</option>
|
|
[% END %]
|
|
</optgroup>
|
|
<optgroup label="Title">
|
|
[% IF sortfield == 'title' && direction == 'asc' %]
|
|
<option value="title" data-direction="asc" selected="selected">Title (A-Z)</option>
|
|
[% ELSE %]
|
|
<option value="title" data-direction="asc">Title (A-Z)</option>
|
|
[% END %]
|
|
[% IF sortfield == 'title' && direction == 'desc' %]
|
|
<option value="title" data-direction="desc" selected="selected">Title (Z-A)</option>
|
|
[% ELSE %]
|
|
<option value="title" data-direction="desc">Title (Z-A)</option>
|
|
[% END %]
|
|
</optgroup>
|
|
<optgroup label="Call number">
|
|
[% IF sortfield == 'itemcallnumber' && direction == 'asc' %]
|
|
<option value="itemcallnumber" data-direction="asc" selected="selected">Call number (A-Z)</option>
|
|
[% ELSE %]
|
|
<option value="itemcallnumber" data-direction="asc">Call number (A-Z)</option>
|
|
[% END %]
|
|
[% IF sortfield == 'itemcallnumber' && direction == 'desc' %]
|
|
<option value="itemcallnumber" data-direction="desc" selected="selected">Call number (Z-A)</option>
|
|
[% ELSE %]
|
|
<option value="itemcallnumber" data-direction="desc">Call number (Z-A)</option>
|
|
[% END %]
|
|
</optgroup>
|
|
<optgroup label="Copyright date">
|
|
[% IF sortfield == 'copyrightdate' && direction == 'asc' %]
|
|
<option value="copyrightdate" data-direction="desc" selected="selected">Copyright date (newest to oldest)</option>
|
|
[% ELSE %]
|
|
<option value="copyrightdate" data-direction="desc">Copyright date (newest to oldest)</option>
|
|
[% END %]
|
|
[% IF sortfield == 'copyrightdate' && direction == 'desc' %]
|
|
<option value="copyrightdate" data-direction="asc" selected="selected">Copyright date (oldest to newest)</option>
|
|
[% ELSE %]
|
|
<option value="copyrightdate" data-direction="asc">Copyright date (oldest to newest)</option>
|
|
[% END %]
|
|
</optgroup>
|
|
<optgroup label="Date added">
|
|
[% IF sortfield == "dateadded" && direction == 'asc' %]
|
|
<option value="dateadded" data-direction="desc" selected="selected">Date added (newest to oldest)</option>
|
|
[% ELSE %]
|
|
<option value="dateadded" data-direction="desc">Date added (newest to oldest)</option>
|
|
[% END %]
|
|
[% IF sortfield == "dateadded" && direction == 'desc' %]
|
|
<option value="dateadded" data-direction="asc" selected="selected">Date added (oldest to newest)</option>
|
|
[% ELSE %]
|
|
<option value="dateadded" data-direction="asc">Date added (oldest to newest)</option>
|
|
[% END %]
|
|
</optgroup>
|
|
</select>
|
|
|
|
<input type="submit" class="btn btn-primary btn-sm" id="sort-submit" value="Resort list" />
|
|
</form>
|
|
<!-- /#sorting-form -->
|
|
</div>
|
|
<!-- / #toolbar -->
|
|
[% INCLUDE 'result-batch-controls.inc' %]
|
|
</div>
|
|
<!-- /#floating -->
|
|
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="myform" name="bookbag_form">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
[% IF can_manage_shelf %]
|
|
<input type="hidden" name="op" value="cud-remove_biblios" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
[% END %]
|
|
<div class="searchresults">
|
|
<table id="listcontents" class="table">
|
|
<tbody>
|
|
[% FOREACH itemsloo IN itemsloop %]
|
|
<tr>
|
|
[% IF ( itemsloo.title ) %]
|
|
[% check_title = itemsloo.title %]
|
|
[% ELSE %]
|
|
[% check_title = itemsloo.biblionumber %]
|
|
[% END %]
|
|
<td class="select selectcol"
|
|
><input type="checkbox" class="cb" name="biblionumber" value="[% itemsloo.biblionumber | html %]" data-title="[% itemsloo.title | html %]" aria-label="[% check_title | html %]"
|
|
/></td>
|
|
[% UNLESS ( item_level_itypes ) %]
|
|
<td>
|
|
[% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %]
|
|
<img class="itemtype-image" src="[% itemsloo.imageurl | html %]" alt="" />
|
|
[% END %]
|
|
<span class="itypetext">[% itemsloo.description | html %]</span>
|
|
</td>
|
|
[% END %]
|
|
<td>
|
|
<div class="coverimages"> [% INCLUDE 'cover-images.inc' SEARCH_RESULT=itemsloo %] </div>
|
|
|
|
[% itemsloo.XSLTBloc | $raw %]
|
|
|
|
[% IF itemsloo.shelves.count %]
|
|
<div class="results_summary shelves">
|
|
<span class="label">Lists:</span>
|
|
<ul>
|
|
[% FOREACH item_shelf IN itemsloo.shelves %]
|
|
<li>
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=[% item_shelf.shelfnumber | uri %]">[% item_shelf.shelfname | html %]</a>
|
|
[%~ UNLESS loop.last %],[% ELSE %].[% END ~%]
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( TagsShowEnabled && itemsloo.TagLoop.size ) %]
|
|
<div class="results_summary tags">
|
|
<span class="label">Tags:</span>
|
|
<ul>
|
|
[% FOREACH TagLoo IN itemsloo.TagLoop %]
|
|
<li
|
|
><a href="/cgi-bin/koha/opac-search.pl?tag=[% TagLoo.term | uri %]&q=[% TagLoo.term | uri %]">[% TagLoo.term | html %]</a>
|
|
<span class="weight">([% TagLoo.weight_total | html %])</span></li
|
|
>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'title-actions-menu.inc' items=itemsloo %]
|
|
|
|
[% INCLUDE "openlibrary-readapi.inc" bib = itemsloo %]
|
|
<!-- COinS / Openurl -->
|
|
<span class="Z3988" title="[% itemsloo.coins | html %]"></span>
|
|
</td>
|
|
</tr>
|
|
[% END # / FOREACH itemsloop %]
|
|
</tbody>
|
|
</table>
|
|
<!-- / #listcontents --> </div
|
|
><!-- / .searchresults -->
|
|
|
|
[% IF ( pagination_bar ) %]
|
|
<div class="pages">[% pagination_bar | $raw %]</div>
|
|
[% END %]
|
|
|
|
[% IF can_remove_biblios %]
|
|
<input type="hidden" name="op" value="cud-remove_biblios" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<input type="hidden" name="modifyshelfcontents" value="1" />
|
|
<input type="submit" value="Remove selected items" id="remove-selected" class="btn btn-danger removeitems" />
|
|
[% END %]
|
|
</form>
|
|
<!-- /myform -->
|
|
[% IF can_manage_shelf %]
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="post" id="shelf_delete_title">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<input type="hidden" name="op" value="cud-remove_biblios" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<input type="hidden" name="biblionumber" id="shelf_delete_biblionumber" value="" />
|
|
<input type="hidden" name="modifyshelfcontents" value="1" />
|
|
</form>
|
|
[% END %]
|
|
<form id="hold_form" name="hold_form" method="get" action="/cgi-bin/koha/opac-reserve.pl">
|
|
<!-- The value will be set by holdBiblioNums() in basket.js -->
|
|
<input id="hold_form_biblios" type="hidden" name="biblionumbers" value="" />
|
|
</form>
|
|
[% ELSE %]
|
|
<div id="toolbar" class="toolbar clearfix">
|
|
<div class="list-actions">
|
|
<a class="btn btn-link newshelf" href="/cgi-bin/koha/opac-shelves.pl?op=add_form"><i class="fa fa-fw fa-plus" aria-hidden="true"></i> New list</a>
|
|
[% IF can_manage_shelf %]
|
|
<span class="sep">|</span>
|
|
<form method="get" action="/cgi-bin/koha/opac-shelves.pl" class="d-inline">
|
|
<input type="hidden" name="op" value="edit_form" />
|
|
<input type="hidden" name="referer" value="view" />
|
|
<input type="hidden" name="public" value="[% shelf.public | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<button type="submit" class="btn btn-link editshelf"><i class="fa-fw fa-solid fa-pencil" aria-hidden="true"></i> Edit list</button>
|
|
</form>
|
|
|
|
[% PROCESS delete_shelf context = "details" %]
|
|
[% END %]
|
|
</div>
|
|
<!-- / .list-actions -->
|
|
</div>
|
|
<!-- / #toolbar -->
|
|
|
|
<div class="alert alert-info">
|
|
<span>This list is empty.</span>
|
|
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
|
<span>You can add to your lists from the results of any <a href="opac-main.pl">search</a>.</span>
|
|
[% END %]
|
|
</div>
|
|
[% END # / IF itemsloop %]
|
|
[% END # /IF shelf AND op == 'view' %]
|
|
|
|
[% IF op == 'add_form' OR op == 'edit_form' %]
|
|
<form method="post" action="/cgi-bin/koha/opac-shelves.pl">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<fieldset class="rows">
|
|
[% IF op == 'add_form' %]
|
|
<div id="addshelf">
|
|
<legend><h1>Create a new list</h1></legend>
|
|
<input type="hidden" name="op" value="cud-add" />
|
|
</div>
|
|
[% ELSE %]
|
|
<legend
|
|
><h1>Editing <em>[% shelf.shelfname | html %]</em></h1></legend
|
|
>
|
|
<input type="hidden" name="op" value="cud-edit" />
|
|
<input type="hidden" name="referer" value="[% referer | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
[% END %]
|
|
<input type="hidden" name="owner" id="owner" value="[% loggedinusernumber | html %]" />
|
|
<ol>
|
|
<li>
|
|
<label class="required" for="shelfname">List name: </label>
|
|
<input type="text" id="shelfname" name="shelfname" maxlength="255" value="[% shelf.shelfname | html %]" required="required" class="focus required" />
|
|
<span class="required">Required</span></li
|
|
>
|
|
<li>
|
|
<label for="sortfield">Sort this list by: </label>
|
|
<select name="sortfield" id="sortfield">
|
|
[% IF shelf.sortfield == "title" %]
|
|
<option value="title" selected="selected">Title</option>
|
|
[% ELSE %]
|
|
<option value="title">Title</option>
|
|
[% END %]
|
|
[% IF shelf.sortfield == "author" %]
|
|
<option value="author" selected="selected">Author</option>
|
|
[% ELSE %]
|
|
<option value="author">Author</option>
|
|
[% END %]
|
|
[% IF shelf.sortfield == "copyrightdate" %]
|
|
<option value="copyrightdate" selected="selected">Year</option>
|
|
[% ELSE %]
|
|
<option value="copyrightdate">Year</option>
|
|
[% END %]
|
|
[% IF shelf.sortfield == "itemcallnumber" %]
|
|
<option value="itemcallnumber" selected="selected">Call number</option>
|
|
[% ELSE %]
|
|
<option value="itemcallnumber">Call number</option>
|
|
[% END %]
|
|
[% IF shelf.sortfield == "dateadded" %]
|
|
<option value="dateadded" selected="selected">Date added</option>
|
|
[% ELSE %]
|
|
<option value="dateadded">Date added</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
[% IF Koha.Preference('OpacAllowPublicListCreation') OR public == 1 %]
|
|
<li>
|
|
<label for="public">Category:</label>
|
|
<select name="public" id="public">
|
|
[% IF shelf.is_private %]
|
|
<option value="0" selected="selected">Private</option>
|
|
[% ELSE %]
|
|
<option value="0">Private</option>
|
|
[% END %]
|
|
[% IF shelf.is_public %]
|
|
<option value="1" selected="selected">Public</option>
|
|
[% ELSE %]
|
|
<option value="1">Public</option>
|
|
[% END %]
|
|
</select>
|
|
[% IF shelf.is_public AND NOT Koha.Preference('OpacAllowPublicListCreation') %]
|
|
<span class="hint alert alert-info"
|
|
>The library has disabled the ability for patrons to create new public lists. If you make your list private, you will not be able to make it public again.</span
|
|
>
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
[% INCLUDE list_permissions %]
|
|
</ol>
|
|
[% UNLESS Koha.Preference('OpacAllowPublicListCreation') OR public == 1 %]
|
|
<input type="hidden" name="public" value="0" />
|
|
[% END %]
|
|
</fieldset>
|
|
<!-- /.rows -->
|
|
|
|
<fieldset class="action">
|
|
<input type="submit" value="Save" class="btn btn-primary" />
|
|
[% IF referer == 'view' %]
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber | uri %]" class="cancel">Cancel</a>
|
|
[% ELSE %]
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=list" class="cancel">Cancel</a>
|
|
[% END %]
|
|
</fieldset>
|
|
</form>
|
|
[% ELSIF op == 'transfer' %]
|
|
<h1>Transfer ownership of shared list '[% shelf.shelfname | html %]'</h1>
|
|
<br />
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" id="transferform" method="post">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<fieldset>
|
|
<input type="hidden" name="op" value="cud-transfer" />
|
|
<input type="hidden" name="public" value="0" />
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<div>
|
|
<label for="find_patron">New owner: </label>
|
|
<select name="new_owner" id="new_owner">
|
|
[% FOREACH sharee IN shared_users %]
|
|
<option value="[% sharee.borrowernumber | html %]" selected="">[% sharee.email | html %]</option>
|
|
[% END %]
|
|
</select>
|
|
</div>
|
|
<br />
|
|
<fieldset class="action">
|
|
<input type="submit" value="Transfer" class="submit" />
|
|
<a href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0" class="cancel">Cancel</a>
|
|
</fieldset>
|
|
</fieldset>
|
|
</form>
|
|
[% ELSIF op == 'list' %]
|
|
<h1>Lists</h1>
|
|
<div class="toptabs">
|
|
<ul class="nav nav-tabs" id="list-tabs" role="tablist">
|
|
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
|
<li id="privateshelves_tab" class="nav-item" role="presentation">
|
|
<a
|
|
class="[% !public ? 'nav-link active' : 'nav-link' %]"
|
|
id="your_lists"
|
|
href="/cgi-bin/koha/opac-shelves.pl?op=list&public=0"
|
|
data-tabname="your_lists"
|
|
aria-controls="privateshelves"
|
|
role="tab"
|
|
aria-selected="[% !public ? 'true' : 'false' | html %]"
|
|
>Your lists</a
|
|
>
|
|
</li>
|
|
<li id="publicshelves_tab" class="nav-item" role="presentation">
|
|
<a
|
|
class="[% public ? 'nav-link active' : 'nav-link' %]"
|
|
id="public_lists"
|
|
href="/cgi-bin/koha/opac-shelves.pl?op=list&public=1"
|
|
data-tabname="public_lists"
|
|
aria-controls="publicshelves"
|
|
role="tab"
|
|
aria-selected="[% public ? 'true' : 'false' | html %]"
|
|
>Public lists</a
|
|
>
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
[% IF !public %]
|
|
<div id="privateshelves" class="tab-pane active" role="tabpanel" aria-labelledby="your_lists"> </div>
|
|
[% ELSE %]
|
|
<div id="publicshelves" class="tab-pane active" role="tabpanel" aria-labelledby="public_lists"> </div>
|
|
[% END %]
|
|
|
|
[% SET show_new_list = 0 %]
|
|
[% IF !public || Koha.Preference('OpacAllowPublicListCreation') %]
|
|
[% IF loggedinusername %]
|
|
[% show_new_list = 1 %]
|
|
[% ELSE %]
|
|
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
|
<div class="alert alert-info"><a href="/cgi-bin/koha/opac-shelves.pl?op=add_form">Log in to create a new list</a></div>
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF shelves.count %]
|
|
<div id="toolbar" class="toolbar">
|
|
[% IF ( show_new_list ) %]
|
|
<a class="btn btn-link newshelf" href="/cgi-bin/koha/opac-shelves.pl?op=add_form"><i class="fa fa-plus" aria-hidden="true"></i> New list</a> <span class="sep">|</span>
|
|
[% END %]
|
|
<div class="btn-group dropdown">
|
|
<button type="button" class="btn btn-link dropdown-toggle" data-bs-toggle="dropdown" id="sortmenu" aria-haspopup="true" aria-expanded="false"
|
|
><i class="fa fa-sort" aria-hidden="true"></i> Sort</button
|
|
>
|
|
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="sortmenu">
|
|
<a class="dropdown-item" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=[% public | html %]&sortfield=">Default sorting</a>
|
|
<span class="dropdown-header">List name</span>
|
|
<a class="dropdown-item" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=[% public | html %]&sortfield=shelfname&direction=asc">List name (A-Z)</a>
|
|
<a class="dropdown-item" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=[% public | html %]&sortfield=shelfname&direction=desc">List name (Z-A)</a>
|
|
<span class="dropdown-header">Modification date</span>
|
|
<a class="dropdown-item" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=[% public | html %]&sortfield=lastmodified&direction=desc">Modification date (newest to oldest)</a>
|
|
<a class="dropdown-item" href="/cgi-bin/koha/opac-shelves.pl?op=list&public=[% public | html %]&sortfield=lastmodified&direction=asc">Modification date (oldest to newest)</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<table class="table">
|
|
[% IF !public %]
|
|
<caption class="visually-hidden">Your lists</caption>
|
|
[% ELSIF public %]
|
|
<caption class="visually-hidden">Public lists</caption>
|
|
[% END %]
|
|
<thead>
|
|
<tr>
|
|
<th>List name</th>
|
|
<th>Contents</th>
|
|
<th>Type</th>
|
|
<th>Modification date</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH entry IN shelves_list %]
|
|
[% SET s = entry.shelf %]
|
|
<tr>
|
|
<td><a href="/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=[% s.shelfnumber | uri %]">[% s.shelfname | html %]</a></td>
|
|
<td
|
|
>[% IF entry.contents_count %]
|
|
[% entry.contents_count | html %]
|
|
[% IF entry.contents_count == 1 %]<span>item</span>[% ELSE %]<span>items</span>[% END %]
|
|
[% ELSE %]
|
|
<span>Empty</span>
|
|
[% END %]</td
|
|
>
|
|
<td>
|
|
[% IF s.is_private %]
|
|
[% IF s.is_shared %]<span>Shared</span>[% ELSE %]<span>Private</span>[% END %]
|
|
[% ELSE %]
|
|
<span>Public</span>
|
|
[% END %]
|
|
</td>
|
|
<td>[% s.lastmodified | $KohaDates %]</td>
|
|
<td class="d-print-none">
|
|
[% IF s.can_be_managed( loggedinusernumber ) %]
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="get" class="d-inline">
|
|
<input type="hidden" name="shelfnumber" value="[% s.shelfnumber | html %]" />
|
|
<input type="hidden" name="public" value="[% s.public | html %]" />
|
|
<input type="hidden" name="op" value="edit_form" />
|
|
<input type="hidden" name="referer" value="list" />
|
|
<button type="submit" class="btn btn-link editshelf"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</button>
|
|
</form>
|
|
[% END %]
|
|
[% IF s.can_be_deleted( loggedinusernumber ) %]
|
|
[% PROCESS delete_shelf shelf = s context = "list" contents_count = entry.contents_count %]
|
|
[% END %]
|
|
[% IF s.is_private AND s.can_be_managed( loggedinusernumber ) AND Koha.Preference('OpacAllowSharingPrivateLists') %]
|
|
<a href="/cgi-bin/koha/opac-shareshelf.pl?op=show&shelfnumber=[% s.shelfnumber | uri %]" class="sharelist btn btn-link"><i class="fa fa-share" aria-hidden="true"></i> Share</a>
|
|
[% END %]
|
|
[% IF s.is_shared AND s.can_be_managed( loggedinusernumber ) %]
|
|
<form action="/cgi-bin/koha/opac-shelves.pl" method="get" class="d-inline">
|
|
<input type="hidden" name="shelfnumber" value="[% s.shelfnumber | html %]" />
|
|
<input type="hidden" name="public" value="0" />
|
|
<input type="hidden" name="op" value="cud-transfer" />
|
|
<input type="hidden" name="referer" value="list" />
|
|
<button type="submit" class="btn btn-link transfershelf"> Transfer</button>
|
|
</form>
|
|
[% END %]
|
|
[% IF s.is_shared_with( loggedinusernumber ) %]
|
|
<form action="opac-shelves.pl" method="post" id="unshare[% s.shelfnumber | html %]" class="d-inline">
|
|
[% INCLUDE 'csrf-token.inc' %]
|
|
<input type="hidden" name="op" value="cud-remove_share" />
|
|
<input type="hidden" name="referer" value="list" />
|
|
<input type="hidden" name="public" value="[% public | html %]" />
|
|
<input type="hidden" name="shelfnumber" value="[% s.shelfnumber | html %]" />
|
|
<button type="submit" class="btn btn-link remove remove_share" data-shelfname="[% s.shelfname | html %]" data-shelfnumber="[% s.shelfnumber | html %]"
|
|
><i class="fa fa-remove" aria-hidden="true"></i> Remove share</button
|
|
>
|
|
</form>
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
<!-- /.table -->
|
|
<div class="pages" id="pagination_bottom"> [% pagination_bar | $raw %] </div>
|
|
[% ELSE %]
|
|
[% IF public %]
|
|
<p>No public lists.</p>
|
|
[% ELSIF loggedinusernumber %]
|
|
<p>No private lists.</p>
|
|
[% END %]
|
|
[% END # /IF shelves.count %]
|
|
</div>
|
|
<!-- /.tab-content -->
|
|
</div>
|
|
<!-- /.toptabs -->
|
|
[% ELSIF NOT loggedinusernumber %]
|
|
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
|
<div class="alert alert-info"><a href="/cgi-bin/koha/opac-shelves.pl?op=add_form">Log in to create a new list</a></div>
|
|
[% END %]
|
|
[% END # IF op == 'add_form' OR op == 'edit_form' %]
|
|
</div>
|
|
<!-- / #usershelves -->
|
|
</div>
|
|
<!-- / .col-lg-10/12 -->
|
|
</div>
|
|
<!-- / .row -->
|
|
</div>
|
|
<!-- / .container-fluid -->
|
|
</main>
|
|
<!-- / .main -->
|
|
|
|
<form method="get" id="download_list" action="/cgi-bin/koha/opac-downloadshelf.pl">
|
|
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber | html %]" />
|
|
<input type="hidden" name="format" id="download_format" value="" />
|
|
</form>
|
|
|
|
[% INCLUDE 'opac-bottom.inc' %]
|
|
[% BLOCK jsinclude %]
|
|
[% Asset.js("lib/Chocolat/js/chocolat.js") | $raw %]
|
|
[% CoverImagePlugins | $raw %]
|
|
[% IF OpenLibraryCovers || OpenLibrarySearch %]
|
|
[% Asset.js("js/openlibrary.js") | $raw %]
|
|
[% END %]
|
|
<script nonce="[% Koha.CSPNonce | $raw %]" data-tt-allowed="true">
|
|
const loggedinusername = [% ( loggedinusername ) ? 1 : 0 | html %];
|
|
const opacbookbag = [% ( opacbookbag ) ? 1 : 0 | html %];
|
|
const virtualshelves = [% ( virtualshelves ) ? 1 : 0 | html %];
|
|
const is_shelf_shared = [% shelf.is_shared ? 1 : 0 | html %];
|
|
const default_public = "[% public | html %]";
|
|
|
|
Koha.addPrefs({
|
|
GoogleJackets: [% Koha.Preference("GoogleJackets") ? 1 : 0 | html %],
|
|
OpenLibraryCovers: [% Koha.Preference("OpenLibraryCovers") ? 1 : 0 | html %],
|
|
OPACLocalCoverImages: [% Koha.Preference("OPACLocalCoverImages") ? 1 : 0 | html %],
|
|
OpacCoce: [% Koha.Preference('OpacCoce') ? 1 : 0 | html %],
|
|
CoceHost: "[% Koha.Preference('CoceHost') | html %]",
|
|
CoceProviders: "[% Koha.Preference('CoceProviders') | html %]",
|
|
OverDriveLibraryID: "[% Koha.Preference("OverDriveLibraryID") | html %]",
|
|
OpenLibrarySearch: [% Koha.Preference("OpenLibrarySearch") ? 1 : 0 | html %],
|
|
});
|
|
|
|
const TagsInputEnabled = [% TagsInputEnabled ? 1 : 0 | html %];
|
|
const can_remove_biblios = [% can_remove_biblios ? 1 : 0 | html %];
|
|
var should_print = [% print ? 1 : 0 | html %];
|
|
const has_items = [% itemsloop ? 1 : 0 | html %]
|
|
</script>
|
|
[% Asset.js("js/results-list.js") | $raw %]
|
|
[% Asset.js("js/cover_images.js") | $raw %]
|
|
<script nonce="[% Koha.CSPNonce | $raw %]">
|
|
let counter_wait = 0;
|
|
function wait_for_images(cb) {
|
|
var loaded = 1;
|
|
counter_wait++;
|
|
|
|
if (Koha.prefs.GoogleJackets) {
|
|
if (loaded) {
|
|
loaded = KOHA.Google.done;
|
|
}
|
|
}
|
|
|
|
if (Koha.prefs.OpenLibraryCovers) {
|
|
if (loaded) {
|
|
loaded = KOHA.OpenLibrary.done;
|
|
}
|
|
}
|
|
|
|
if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders) {
|
|
if (loaded) {
|
|
loaded = KOHA.coce.done;
|
|
}
|
|
}
|
|
|
|
if (!loaded && counter_wait < 50) {
|
|
// Do not wait more than 5 seconds
|
|
window.setTimeout(function () {
|
|
wait_for_images(cb);
|
|
}, 100);
|
|
} else {
|
|
if (counter_wait >= 50) {
|
|
}
|
|
cb();
|
|
}
|
|
}
|
|
|
|
$(window).load(function () {
|
|
wait_for_images(verify_cover_images);
|
|
});
|
|
|
|
if (TagsInputEnabled && loggedinusername) {
|
|
function tagSelected() {
|
|
var checkedBoxes = $("input:checkbox:checked");
|
|
if ($(checkedBoxes).size()) {
|
|
$("#tagsel_tag").hide();
|
|
$(".tag_hides").hide();
|
|
$("#tagsel_form").show();
|
|
} else {
|
|
alert(_("No item was selected"));
|
|
}
|
|
}
|
|
|
|
function tagCanceled() {
|
|
$("#tagsel_form").hide();
|
|
$("#tagsel_tag").show();
|
|
$(".tag_hides").show();
|
|
$("#tagsel_new").val("");
|
|
$(".tagstatus").empty().hide();
|
|
}
|
|
|
|
function tagAdded() {
|
|
var checkedBoxes = $("input:checkbox:checked");
|
|
if (!$(checkedBoxes).size()) {
|
|
alert(_("No item was selected"));
|
|
return false;
|
|
}
|
|
|
|
var tag = $("#tagsel_new").val();
|
|
if (!tag || tag == "") {
|
|
alert(_("No tag was specified."));
|
|
return false;
|
|
}
|
|
|
|
var bibs = [];
|
|
for (var i = 0; i < $(checkedBoxes).size(); i++) {
|
|
var box = $(checkedBoxes).get(i);
|
|
bibs[i] = $(box).val();
|
|
}
|
|
|
|
KOHA.Tags.add_multitags_button(bibs, tag);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
$(function () {
|
|
$("a.print").show();
|
|
|
|
if (TagsInputEnabled && loggedinusername) {
|
|
var tagAdd = $(".tag_add");
|
|
tagAdd.removeClass("hidden");
|
|
$("#tagsel_tag").click(function () {
|
|
tagSelected();
|
|
return false;
|
|
});
|
|
$("#tagsel_cancel").click(function () {
|
|
tagCanceled();
|
|
return false;
|
|
});
|
|
$("#tagsel_button").click(function () {
|
|
tagAdded();
|
|
return false;
|
|
});
|
|
|
|
tagAdd.click(function () {
|
|
var thisid = $(this).attr("id");
|
|
thisid = thisid.replace("tag_add", "");
|
|
$(this).hide();
|
|
$("#tagform" + thisid).show();
|
|
$("#newtag" + thisid).focus();
|
|
$("#newtag" + thisid + "_status")
|
|
.empty()
|
|
.hide();
|
|
return false;
|
|
});
|
|
$(".cancel_tag_add").click(function () {
|
|
var thisid = $(this).attr("id");
|
|
thisid = thisid.replace("cancel", "");
|
|
$("#tagform" + thisid).hide();
|
|
$("#tag_add" + thisid).show();
|
|
$("#newtag" + thisid).val("");
|
|
$("#newtag" + thisid + "_status")
|
|
.empty()
|
|
.hide();
|
|
return false;
|
|
});
|
|
$(".tagbutton").click(function () {
|
|
var thisid = $(this).attr("title");
|
|
var tag = $("#newtag" + thisid).val();
|
|
if (!tag || tag == "") {
|
|
alert(_("No tag was specified."));
|
|
return false;
|
|
}
|
|
KOHA.Tags.add_tag_button(thisid, tag);
|
|
return false;
|
|
});
|
|
}
|
|
|
|
if (loggedinusername && can_remove_biblios) {
|
|
$("body").on("click", ".removeitems", function (e) {
|
|
e.preventDefault();
|
|
var title;
|
|
var yes_label;
|
|
var no_label;
|
|
var message = "";
|
|
var biblionumber;
|
|
/* Single "Remove from list" link has a biblionumber data-attribute */
|
|
if ($(this).data("biblionumber")) {
|
|
/* Use the checkbox with that value to preview the title in the confirmation */
|
|
var selected_titles = $(".cb[value='" + $(this).data("biblionumber") + "'");
|
|
biblionumber = $(this).data("biblionumber");
|
|
} else {
|
|
var selected_titles = $(".cb:checked");
|
|
}
|
|
if (selected_titles.size() < 1) {
|
|
alert(_("No item was selected"));
|
|
} else {
|
|
if (selected_titles.size() > 1) {
|
|
message = $("<ul></ul>");
|
|
title = _("Are you sure you want to remove these items from the list?");
|
|
yes_label = _("Yes, remove from list");
|
|
no_label = _("No, do not remove from list");
|
|
selected_titles.each(function () {
|
|
message.append("<li>" + $(this).data("title") + "</li>");
|
|
});
|
|
} else {
|
|
title = _("Are you sure you want to remove this item from the list?");
|
|
yes_label = _("Yes, remove from list");
|
|
no_label = _("No, do not remove from list");
|
|
selected_titles.each(function () {
|
|
message += $(this).data("title");
|
|
});
|
|
}
|
|
confirmModal(message, title, yes_label, no_label, function (result) {
|
|
if (result) {
|
|
if (biblionumber) {
|
|
$("#shelf_delete_biblionumber").val(biblionumber);
|
|
$("#shelf_delete_title").submit();
|
|
} else {
|
|
$("#myform").submit();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
if (Koha.prefs.OpenLibraryCovers) {
|
|
KOHA.OpenLibrary.GetCoverFromIsbn();
|
|
}
|
|
if (Koha.prefs.OPACLocalCoverImages) {
|
|
KOHA.LocalCover.GetCoverFromBibnumber(false);
|
|
}
|
|
if (Koha.prefs.GoogleJackets) {
|
|
KOHA.Google.GetCoverFromIsbn();
|
|
}
|
|
if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders) {
|
|
KOHA.coce.getURL(Koha.prefs.CoceHost, Koha.prefs.CoceProviders);
|
|
}
|
|
|
|
if (should_print) {
|
|
window.print();
|
|
window.onafterprint = function () {
|
|
window.close();
|
|
};
|
|
setTimeout("window.close()", 1000); // Hack for Chrome < 63
|
|
}
|
|
|
|
AdjustRemark();
|
|
|
|
if (has_items) {
|
|
sortMenu($("#sorting-form"));
|
|
|
|
$("#sortfield").on("change", function () {
|
|
$("#sorting-form").submit();
|
|
});
|
|
}
|
|
|
|
$(".deleteshelf").on("click", function (e) {
|
|
e.preventDefault();
|
|
var shelf_name = $(this).data("shelfname");
|
|
var shelf_number = $(this).data("shelfnumber");
|
|
var is_shared = $(this).data("shared");
|
|
var count = $(this).data("count");
|
|
var message = "<p><em>" + escape_str(shelf_name) + "</em></p>";
|
|
if (count) {
|
|
message += "<p>" + _("Items on this list:") + " <strong>" + escape_str(count) + "</strong></p>";
|
|
}
|
|
if (is_shared) {
|
|
message += "<p>" + _("This list is shared. Other users will lose access to it.") + "</p>";
|
|
}
|
|
confirmModal(message, _("Are you sure you want to delete this list?"), _("Yes, delete"), _("No, do not delete"), function (result) {
|
|
if (result) {
|
|
$("#deleteshelf" + shelf_number).submit();
|
|
}
|
|
});
|
|
});
|
|
|
|
$(".remove_share").on("click", function (e) {
|
|
e.preventDefault();
|
|
var shelf_name = $(this).data("shelfname");
|
|
var shelf_number = $(this).data("shelfnumber");
|
|
confirmModal(escape_str(shelf_name), _("Are you sure you want to remove sharing? You will no longer have access to the list."), _("Yes, remove sharing"), _("No, do not remove sharing"), function (result) {
|
|
if (result) {
|
|
$("#unshare" + shelf_number).submit();
|
|
}
|
|
});
|
|
});
|
|
|
|
$(".download-list").on("click", function (e) {
|
|
e.preventDefault();
|
|
var format = $(this).data("format");
|
|
$("#download_format").val(format);
|
|
$("#download_list").submit();
|
|
});
|
|
|
|
$("#allow_changes_from, #public").on("change", function () {
|
|
AdjustRemark();
|
|
});
|
|
|
|
$(".send").on("click", function (e) {
|
|
e.preventDefault();
|
|
let link = this.href;
|
|
Dopop(link);
|
|
});
|
|
}); // document.ready
|
|
|
|
function sortMenu(sorting_form) {
|
|
var shelfnumber = sorting_form.find("input[name='shelfnumber']").val();
|
|
var sort_link = "/cgi-bin/koha/opac-shelves.pl?op=view&shelfnumber=" + shelfnumber + "&sortfield=";
|
|
var menu =
|
|
'<div class="btn-group dropdown"><button type="button" class="btn btn-link dropdown-toggle" data-bs-toggle="dropdown" id="sortmenu" aria-haspopup="true" aria-expanded="false"><i class="fa fa-sort" aria-hidden="true"></i> ' +
|
|
_("Sort") +
|
|
'</span></button><div class="dropdown-menu dropdown-menu-end" aria-labelledby="sortmenu">';
|
|
$("#sortfield")
|
|
.children()
|
|
.each(function () {
|
|
if ($(this)[0].tagName.toUpperCase() == "OPTION") {
|
|
menu += '<a class="dropdown-item" href="' + sort_link + $(this).val() + '">' + $(this).text() + "</a>";
|
|
} else if ($(this)[0].tagName.toUpperCase() == "OPTGROUP") {
|
|
menu += '<span class="dropdown-header">' + $(this).attr("label") + "</span>";
|
|
$(this)
|
|
.children()
|
|
.each(function () {
|
|
if ($(this)[0].tagName.toUpperCase() == "OPTION") {
|
|
menu += '<a class="dropdown-item" href="' + sort_link + $(this).val() + "&direction=" + $(this).data("direction") + '">' + $(this).text() + "</a>";
|
|
}
|
|
});
|
|
}
|
|
});
|
|
menu += "</div>";
|
|
$(".list-actions").append(menu);
|
|
sorting_form.remove();
|
|
}
|
|
|
|
function AdjustRemark() {
|
|
var public;
|
|
if ($("#public").length > 0) {
|
|
public = $("#public").val();
|
|
} else {
|
|
public = default_public;
|
|
}
|
|
var perms = $("#allow_changes_from").val();
|
|
|
|
if (perms < 2) {
|
|
$("#anyone_remark").hide();
|
|
$("#staff_remark").hide();
|
|
$("#permitted_staff_remark").hide();
|
|
} else if (public == 0) {
|
|
// If we move to Private (without shares), show Anyone remark
|
|
// Note: the number of shares is not tested real-time
|
|
if (!is_shelf_shared) {
|
|
if (perms == 2) {
|
|
$("#anyone_remark").show();
|
|
$("#staff_remark").hide();
|
|
$("#permitted_staff_remark").hide();
|
|
} else if (perms == 3) {
|
|
$("#anyone_remark").hide();
|
|
$("#staff_remark").show();
|
|
$("#permitted_staff_remark").hide();
|
|
} else if (perms == 4) {
|
|
$("#anyone_remark").hide();
|
|
$("#staff_remark").hide();
|
|
$("#permitted_staff_remark").show();
|
|
}
|
|
} else {
|
|
$("#anyone_remark").hide();
|
|
$("#staff_remark").hide();
|
|
$("#permitted_staff_remark").hide();
|
|
}
|
|
} else {
|
|
// public==1
|
|
$("#anyone_remark").hide();
|
|
$("#staff_remark").hide();
|
|
$("#permitted_staff_remark").hide();
|
|
}
|
|
}
|
|
</script>
|
|
[% END %]
|