5 [% INCLUDE 'doc-head-open.inc' %]
6 <title>Koha › [% IF op == 'view' %]Lists › Contents of [% shelf.shelfname | html %][% ELSE %]Lists[% END %][% IF op == 'add_form' %] › Create new list[% END %][% IF op == 'edit_form' %] › Edit list [% shelf.shelfname | html %][% END %]</title>
7 [% INCLUDE 'doc-head-close.inc' %]
8 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
9 [% INCLUDE 'datatables.inc' %]
10 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
13 <script type="text/javascript">
14 $( document ).ready(function() {
16 setTimeout('window.close()', 1);
22 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
23 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.fixFloat.js"></script>
25 <script type="text/javascript">
28 var MSG_NO_ITEM_SELECTED = _("Nothing is selected.");
29 var MSG_REMOVE_FROM_LIST = _("Are you sure you want to remove these items from the list?");
30 var MSG_CONFIRM_DELETE_LIST = _("Are you sure you want to remove this list?");
33 $(document).ready(function(){
34 [% IF category == PUBLIC %]
35 var type = [% PUBLIC %];
37 var type = [% PRIVATE %];
39 var dtListResults = $("#listresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
41 'sAjaxSource': "/cgi-bin/koha/svc/virtualshelves/search",
42 'fnServerData': function(sSource, aoData, fnCallback) {
48 'value': $("#searchshelfname_filter").val(),
51 'value': $("#searchowner_filter").val(),
54 'value': $("#searchsortby_filter").val(),
56 'name': 'template_path',
57 'value': 'virtualshelves/tables/shelves_results.tt',
64 'success': function(json){
70 { 'mDataProp': 'dt_type' },
71 { 'mDataProp': 'dt_shelfname' },
72 { 'mDataProp': 'dt_count' },
73 { 'mDataProp': 'dt_owner' },
74 { 'mDataProp': 'dt_sortby' },
75 { 'mDataProp': 'dt_created_on' },
76 { 'mDataProp': 'dt_modification_time' },
77 { 'mDataProp': 'dt_action', 'bSortable': false }
80 { "bVisible": false, "aTargets": [ 'NoVisible' ] }
83 'sPaginationType': 'full_numbers',
89 dtListResults.fnAddFilters("filter", 750);
91 var tabs = $("#tabs").tabs({
92 [% IF category == PUBLIC %]
97 activate: function(e, ui) {
98 var active = tabs.tabs("option", "active" );
100 type = [% PRIVATE %];
101 dtListResults.fnDraw();
102 } else if ( active == 1 ) {
104 dtListResults.fnDraw();
111 [% IF op == 'view' %]
112 $(document).ready(function(){
113 [% IF ( itemsloop ) %]$('#searchheader').fixFloat();[% END %]
114 $("span.clearall").html("<a id=\"CheckNone\" href=\"/cgi-bin/koha/shelves.pl\">"+_("Clear all")+"<\/a>");
115 $("span.checkall").html("<a id=\"CheckAll\" href=\"/cgi-bin/koha/shelves.pl\">"+_("Select all")+"<\/a>");
116 $("#CheckAll").click(function(){
117 $(".checkboxed").checkCheckboxes();
120 $("#CheckNone").click(function(){
121 $(".checkboxed").unCheckCheckboxes();
124 $(".placehold").on("click",function(e){
128 $(".addtocart").show();
129 var param1 = "| <label for=\"addto\">"+_("Add to:")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
130 [% IF ( intranetbookbag ) %]
131 param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>";
133 [% IF Koha.Preference('virtualshelves') %]
134 [% IF add_to_some_private_shelves.count %]
135 param1 += "<optgroup label=\""+_("Your lists:")+"\">";
136 [% SET number_of_private_shelves = 0 %]
137 [% FOREACH s IN add_to_some_private_shelves %]
138 [% IF shelfnumber != s.shelfnumber %]
139 param1 += "<option id=\"s[% s.shelfnumber %]\" value=\"addtolist\">[% s.shelfname |html %]<\/option>";
140 [% SET number_of_private_shelves = number_of_private_shelves + 1 %]
141 [% IF number_of_private_shelves == 10 %][% LAST %][% END %]
144 param1 += "<\/optgroup>";
146 [% IF add_to_some_public_shelves.count %]
147 param1 += "<optgroup label=\""+_("Public lists:")+"\">";
148 [% SET number_of_public_shelves = 0 %]
149 [% FOREACH s IN add_to_some_public_shelves %]
150 [% IF shelfnumber != s.shelfnumber %]
151 param1 += "<option id=\"s[% s.shelfnumber %]\" value=\"addtolist\">[% s.shelfname |html %]<\/option>";
152 [% SET number_of_public_shelves = number_of_public_shelves + 1 %]
153 [% IF number_of_public_shelves == 10 %][% LAST %][% END %]
156 param1 += "<\/optgroup>";
158 [% IF add_to_some_private_shelves.count > 10 or add_to_some_public_shelves.count > 10 %]
159 param1 += "<option value=\"morelists\">[ "+_("More lists")+" ]<\/option>";
161 param1 +="<option value=\"newlist\">"+_("[ New list ]")+"<\/option>"
163 param1 += "<\/select> <button id=\"cartsubmit\" type=\"submit\" class=\"btn btn-mini\">"+_("Save")+"</button>";
164 $("span.addto").html(param1);
165 $("#cartsubmit").on("click",function(e){
169 $("#addto").change(function(){
172 $(".addto").find("input:submit").click(function(e){
176 $("#selection_ops").show();
177 $(".merge-items").on("click",function(e){
181 $("#listform").on("submit",function(e){
184 $(".list-remove").on("click",function(e){
185 if($(".selection").filter(":checked").length > 0){
186 return confirm(MSG_REMOVE_FROM_LIST);
188 alert(MSG_NO_ITEM_SELECTED);
196 * This function checks if the adequate number of records are checked for merging
198 function MergeItems() {
199 var checkboxes = $("input:checkbox:checked");
200 var nbCheckbox = checkboxes.length;
201 if (nbCheckbox != 2) {
202 alert(_("Two records must be selected for merging."));
204 location.href='/cgi-bin/koha/cataloguing/merge.pl?biblionumber=' + checkboxes[0].value + '&biblionumber=' + checkboxes[1].value;
210 * This function checks all checkboxes if all are empty,
211 * or unchecks all if any already checked.
214 var checkboxes = document.getElementsByTagName('input');
215 var nbCheckbox = checkboxes.length;
216 var check = areAllChecked();
217 for(var i=0;i<nbCheckbox;i++){
218 if(checkboxes[i].getAttribute('type') == "checkbox" ){
219 checkboxes[i].checked = (check) ? 0 : 1;
224 * This function returns true if ALL checkboxes are checked
226 function areAllChecked(){
227 var checkboxes = document.getElementsByTagName('input');
228 var nbCheckbox = checkboxes.length;
229 for(var i=0;i<nbCheckbox;i++){
230 if(checkboxes[i].getAttribute('type') == "checkbox" ){
231 if(checkboxes[i].checked == 0){
239 function placeHold () {
240 var checkedItems = $(".selection:checked");
241 if ($(checkedItems).size() == 0) {
242 alert(MSG_NO_ITEM_SELECTED);
246 $(checkedItems).each(function() {
247 bibs += $(this).val() + "/";
249 $("#hold_form_biblios").val(bibs);
250 $("#hold_form").submit();
255 var checkboxes = $("#searchresults").find(":checkbox");
256 var vshelf = vShelfAdd(checkboxes);
257 if($("#addto").find("option:selected").attr("value") == "addtolist"){
258 var shelfnumber = $("#addto").find("option:selected").attr("id").replace("s","");
260 openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?shelfnumber='+shelfnumber+'&confirm=1&' + vshelf,'popup',500,500);
263 } else if($("#addto").find("option:selected").attr("value") == "newlist"){
265 openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?newshelf=1&' + vshelf,'popup',500,500);
268 } else if($("#addto").find("option:selected").attr("value") == "morelists"){
270 openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?' + vshelf,'popup',500,500);
274 if($("#addto").find("option:selected").attr("value") == "addtocart"){
275 addMultiple(checkboxes);
282 <body id="lists_shelves" class="lists">
283 [% INCLUDE 'header.inc' %]
284 [% INCLUDE 'cat-search.inc' %]
286 <div id="breadcrumbs">
287 <a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
288 [% IF op != 'list' %]
289 <a href="/cgi-bin/koha/virtualshelves/shelves.pl">Lists</a>
293 [% IF shelf AND shelf.category == PRIVATE %] ›
294 [% IF op == 'view' OR op == 'edit_form' %]
295 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PRIVATE %]">Your lists</a>
299 [% ELSIF shelf AND shelf.category == PUBLIC %] ›
300 [% IF op == 'view' %]
301 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PUBLIC %]">Public lists</a>
307 [% IF op == 'view' %]› Contents of <i>[% shelf.shelfname | html %]</i>[% END %][% IF op == 'add_form' %] › Create new list[% END %][% IF op == 'edit_form' %] › Edit list <i>[% shelf.shelfname | html %]</i>[% END %]</div>
309 <div id="doc3" class="yui-t2">
314 <div class="yui-g">[% INCLUDE 'virtualshelves-toolbar.inc' %]
317 [% FOR m IN messages %]
318 <div class="dialog [% m.type %]">
320 [% CASE 'error_on_update' %]
321 An error occurred when updating this list. Perhaps the value already exists.
322 [% CASE 'error_on_insert' %]
323 An error occurred when inserting this list. Perhaps the name already exists.
324 [% CASE 'error_on_delete' %]
325 An error occurred when deleting this list. Check the logs.
326 [% CASE 'error_on_add_biblio' %]
327 The item has not been added to the list. Please check it's not in this list yet.
328 [% CASE 'success_on_update' %]
329 List updated with success.
330 [% CASE 'success_on_insert' %]
331 List inserted with success.
332 [% CASE 'success_on_delete' %]
333 List deleted with success.
334 [% CASE 'success_on_add_biblio' %]
335 The item has been added to the list.
336 [% CASE 'success_on_remove_biblios' %]
337 The item has been removed from the list.
338 [% CASE 'does_not_exist' %]
339 This list does not exist.
340 [% CASE 'item_does_not_exist' %]
341 This item does not exist.
342 [% CASE 'unauthorized_on_view' %]
343 You do not have permission to view this list.
344 [% CASE 'unauthorized_on_update' %]
345 You do not have permission to update this list.
346 [% CASE 'unauthorized_on_delete' %]
347 You do not have permission to delete this list.
348 [% CASE 'unauthorized_on_add_biblio' %]
349 You do not have permission to add a biblio to this list.
350 [% CASE 'no_biblio_removed' %]
351 No biblio has been removed.
352 [% CASE 'Koha::Exceptions::Virtualshelves::DuplicateObject' %]
353 An error occurred when inserting this list. The name already [% shelfname %] exists.
354 [% CASE 'DBIx::Class::Exception' %]
362 [% IF op == 'view' %]
366 <h3>Contents of <i>[% shelf.shelfname | html %]</i></h3>
367 <div class="pages">[% pagination_bar %]</div>
368 <form action="/cgi-bin/koha/virtualshelves/shelves.pl" id="listform" method="post" class="checkboxed">
369 <input type="hidden" name="op" value="remove_biblios" />
370 <input type="hidden" name="referer" value="view" />
371 <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber %]" />
373 [% IF direction == 'asc' %]
374 [% SET new_direction = 'desc' %]
376 [% SET direction = 'desc' %]
377 [% SET new_direction = 'asc' %]
380 <div id="searchheader" class="noprint">
382 <div id="selection_ops"><span class="checkall"></span> |
383 <span class="clearall"></span>
385 <span class="addto">| </span>
387 [% IF CAN_user_reserveforothers && Koha.Preference('DisplayMultiPlaceHold') %]
388 <div class="btn-group"><button class="btn btn-mini placehold"><i class="fa fa-sticky-note-o"></i> Place hold</button></div>
390 [% IF can_remove_biblios %]
391 <div class="btn-group"><button type="submit" class="btn btn-mini list-remove"><i class="fa fa-times-circle"></i> Remove selected</button></div>
393 [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<div class="btn-group"><button type="submit" class="btn btn-mini merge-items"><i class="fa fa-compress"></i> Merge selected</button></div>[% END %]
398 <table id="searchresults">
400 [% IF ( itemsloop ) %]<th class="checkall"> </th>[% END %]
402 [% UNLESS ( item_level_itypes ) %]<th>Item type</th>[% END %]
404 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber %]&sortfield=title&direction=[% IF sortfield != 'title' %]asc[% ELSE %][% new_direction %][% END %]">Title</a>
405 [% IF sortfield == 'title' %]
406 <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
408 <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
412 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber %]&sortfield=author&direction=[% IF sortfield != 'author' %]asc[% ELSE %][% new_direction %][% END %]">Author</a>
413 [% IF sortfield == 'author' %]
414 <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
416 <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
421 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber %]&sortfield=itemcallnumber&direction=[% IF sortfield != 'itemcallnumber' %]asc[% ELSE %][% new_direction %][% END %]">Call number</a>
422 [% IF sortfield == 'itemcallnumber' %]
423 <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
425 <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
429 [% FOREACH itemsloo IN itemsloop %]
430 [% UNLESS ( loop.odd ) %]
431 <tr class="highlight">
437 <input type="checkbox" class="selection" value="[% itemsloo.biblionumber %]" name="biblionumber" />
440 [% UNLESS ( item_level_itypes ) %]<td>
441 [% UNLESS ( noItemTypeImages || !itemsloo.imageurl ) %]<img src="[% itemsloo.imageurl %]" alt="[% itemsloo.description %]" title="[% itemsloo.description %]" />[% END %][% itemsloo.description %]
444 [% IF ( itemsloo.XSLTBloc ) %]
445 [% itemsloo.XSLTBloc %]
447 [% INCLUDE 'biblio-default-view.inc' biblionumber = itemsloo.biblionumber %]
448 [% itemsloo.title |html %][% FOREACH subtitl IN itemsloo.subtitle %] [% subtitl.subfield %][% END %]</a>
451 [% IF ( itemsloo.notforloan ) %]
452 <span class="noholdstext">No holds allowed</span>
454 [% IF ( itemsloo.ITEM_RESULTS.size ) %]
455 <a id="reserve_[% itemsloo.biblionumber %]" href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% itemsloo.biblionumber %]">Holds</a>
456 [% IF ( holdfor ) %] <span class="holdforlink">| <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% itemsloo.biblionumber %]&findborrower=[% holdfor_cardnumber %]">Place hold for [% holdfor_firstname %] [% holdfor_surname %] ([% holdfor_cardnumber %])</a></span>[% END %]
458 <span class="noholdstext">No holds allowed</span>
461 [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]
462 | <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% itemsloo.biblionumber %]">Edit record</a>
464 [% IF ( CAN_user_editcatalogue_edit_items ) %]
465 | <a href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% itemsloo.biblionumber %]">Edit items</a>
469 <td>[% itemsloo.author %]</td>
470 <td>[% itemsloo.dateadded | $KohaDates%]</td>
473 [% FOREACH result IN itemsloo.ITEM_RESULTS %]
474 <li>[% result.holdingbranch %] [% IF ( result.location_intranet ) %] ([% result.location_intranet %]) [% END %]
475 [% IF ( result.itemcallnumber ) %]
476 [<a href="/cgi-bin/koha/catalogue/search.pl?idx=callnum&q=%22[% result.itemcallnumber |uri %]%22">[% result.itemcallnumber %]</a>]
483 [% END %]<!-- /itemsloop -->
485 <div class="pages">[% pagination_bar %]</div>
492 [% IF can_add_biblios %]
494 <form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post">
495 <fieldset class="brief noprint">
496 <legend>Add an item to <i>[% shelfname | html %]</i></legend>
499 <label for="barcode">Barcode:</label>
500 <input name="barcode" type="text" id="barcode" size="14" />
501 <input type="hidden" name="op" value="add_biblio" />
502 <input type="hidden" name="referer" value="view" />
503 <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber %]" />
504 <input type="submit" value="Add" />
512 [% IF op == 'add_form' OR op == 'edit_form' %]
514 <div class="yui-u first">
515 <form method="post" action="/cgi-bin/koha/virtualshelves/shelves.pl" class="validated">
516 <fieldset class="rows">
518 [% IF op == 'add_form' %]
519 <legend>Create a new list</legend>
520 <input type="hidden" name="op" value="add" />
522 <legend>Edit list <i>[% shelf.shelfname | html %]</i></legend>
523 <input type="hidden" name="op" value="edit" />
525 <input type="hidden" name="referer" value="[% referer %]" />
526 <input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber %]" />
529 <label for="shelfname" class="required">Name: </label><input type="text" id="shelfname" name="shelfname" size="25" value="[% shelf.shelfname |html %]" required="required" class="required" />
530 <span class="required">Required</span>
533 <span class="label">Owner: </span>
534 [% IF op == 'add_form' %]
535 <input type="hidden" name="owner" id="owner" value="[% loggedinusernumber %]" />[% loggedinusername %]</li>
538 <input type="hidden" id="owner" name="owner" value="[% owner.borrowernumber %]" />[% owner.firstname _ ' ' _ owner.surname %]
540 <input type="hidden" id="owner" name="owner" value="[% loggedinusernumber %]" />[% loggedinusername %]
544 <li><label for="sortfield" >Sort this list by: </label>
545 <select name="sortfield">
546 [% IF shelf.sortfield == "title" %]<option value="title" selected="selected">Title</option>[% ELSE %]<option value="title">Title</option>[% END %]
547 [% IF shelf.sortfield == "author" %]<option value="author" selected="selected">Author</option>[% ELSE %]<option value="author">Author</option>[% END %]
548 [% IF shelf.sortfield == "copyrightdate" %]<option value="copyrightdate" selected="selected">Copyrightdate</option>[% ELSE %]<option value="copyrightdate">Copyrightdate</option>[% END %]
549 [% IF shelf.sortfield == "itemcallnumber" %]<option value="itemcallnumber" selected="selected">Call number</option>[% ELSE %]<option value="itemcallnumber">Call number</option>[% END %]
551 <li><label for="category">Category: </label>
552 <select id="category" name="category">
553 [% IF shelf.category == PRIVATE %]
554 <option value="1" selected="selected">Private</option>
556 <option value="1">Private</option>
558 [% IF shelf.category == PUBLIC %]
559 <option value="2" selected="selected">Public</option>
561 <option value="2">Public</option>
565 [% FOR permission IN ['allow_add', 'allow_delete_own', 'allow_delete_other'] %]
568 <label for="permissions">Permissions: </label>
570 <label> </label>
572 <select name="[% permission %]" id="[% permission %]">
573 [% IF shelf.$permission %]<option value="0">Do not allow</option>[% ELSE %]<option value="0" selected="selected">Do not allow</option>[% END %]
574 [% IF shelf.$permission %]<option value="1" selected="selected">Allow</option>[% ELSE %]<option value="1">Allow</option>[% END %]
576 [% SWITCH permission %]
577 [% CASE 'allow_add' %] <span>anyone else to add entries.</span>
578 [% CASE 'allow_delete_own' %] <span>anyone to remove his own contributed entries.</span>
579 [% CASE 'allow_delete_other' %] <span>anyone to remove other contributed entries.</span>
586 <fieldset class="action">
587 <input type="submit" value="Save" class="submit" />
588 [% IF referer == 'view' %]
589 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=view&shelfnumber=[% shelf.shelfnumber %]" class="cancel">Cancel</a>
591 [% IF category == PUBLIC %]
592 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PUBLIC %]" class="cancel">Cancel</a>
594 <a href="/cgi-bin/koha/virtualshelves/shelves.pl?op=list&category=[% PRIVATE %]" class="cancel">Cancel</a>
601 <div class="help"><ul>
602 <li><b>Private list:</b> Is managed by you and can be seen only by you.</li>
603 <li><b>Public list:</b> Can be seen by everybody, but managed only by you.</li>
604 <li>The owner of a list is always allowed to add entries, but needs permission to remove.</li>
611 [% IF op == 'list' %]
613 <div id="tabs" class="toptabs">
615 <li id="privateshelves_tab" class="active"><a href="#tab_content">Your lists</a></li>
616 <li id="publicshelves_tab" class="active"><a href="#tab_content">Public lists</a></li>
619 <div id="tab_content">
620 <table id="listresultst">
623 <th class="NoVisible">Type</th>
628 <th>Creation date</th>
629 <th>Modification date</th>
632 <tr class="filters_row">
634 <th><input class="filter text_filter" id="searchshelfname_filter" placeholder="List name"></th>
636 <th><input class="filter text_filter" id="searchowner_filter" placeholder="Owner"></th>
638 <select class="filter text_filter" id="searchsortby_filter">
639 <option value=""></option>
640 <option value="title">Title</option>
641 <option value="author">Author</option>
642 <option value="copyrightdate">Copyrightdate</option>
643 <option value="itemcallnumber">Call number</option>
657 <form id="hold_form" method="get" action="/cgi-bin/koha/reserve/request.pl">
658 <!-- Value will be set here by placeHold() -->
659 <input id="hold_form_biblios" type="hidden" name="biblionumbers" value="" />
660 <input type="hidden" name="multi_hold" value="1"/>
666 [% IF ( allowaddingitem ) %]
668 <form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post">
669 <fieldset class="brief">
670 <legend>Add an item</legend>
673 <label for="addbarcode">Barcode:</label>
674 <input name="addbarcode" type="text" id="addbarcode" class="focus" />
675 <input type="hidden" name="viewshelf" value="[% shelfnumber %]" />
676 <input type="hidden" name="modifyshelfcontents" value="1" />
679 <fieldset class="action">
680 <input type="submit" value="Add" />
685 [% END %]<!-- /allowaddingitem -->
688 [% INCLUDE 'intranet-bottom.inc' %]