1 [% PROCESS "opac/parts/header.tt2";
2 PROCESS "opac/parts/misc_util.tt2";
3 WRAPPER "opac/parts/myopac/base.tt2";
5 limit = ctx.bookbags_limit;
6 offset = ctx.bookbags_offset;
7 item_page = ctx.bookbags_item_page;
8 move_cart_by_default = CGI.param('move_cart_by_default') || 0;
10 "Sharing a list means that the contents " _
11 "of the list will be visible to others. " _
12 "To see the public view of a shared list, " _
13 "click on the HTML View link in the Saved Lists section.");
17 <div id='myopac_bookbag_div container'>
19 <!-- new list creation -->
21 <button class="btn btn-sm btn-opac my-2" data-toggle="collapse" data-target="#create_form" aria-expanded="false" aria-controls="create_form">[% l('Create New List') %]</button>
23 <div id="create_form" [% IF ctx.add_rec || move_cart_by_default || !ctx.bookbags.size %] class="collapse show my-3"[% ELSE %] class="row collapse my-3"[% END %]>
24 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
25 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
26 <input type="hidden" name="action" value="create" class="form-control" />
28 <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" class="form-control" />
30 [% IF ctx.where_from %]
31 <input type="hidden" name="where_from" value="[% ctx.where_from %]" class="form-control" />
33 <div class="form-group">
34 <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
35 <input id="list_create_name" type="text" name="name" class="form-control" autofocus>
37 <div class="form-group">
38 <label for="list_description">[% l("List description (optional):") %]</label>
39 <textarea name="description" id="list_description" class="form-control"></textarea>
41 <div class="form-group">
42 <label for="list_create_shared">[% l('Share this list?') %]</label>
43 <select class="d-inline-block form-control mini-control" name="shared" id="list_create_shared">
44 <option value="0">[% l('No') %]
45 <option value="1">[% l('Yes') %]
47 <a href="#" title="[% l('Allows the list to be shared through a link or RSS.') %]" data-toggle="tooltip">
48 <i class="fas fa-question-circle" aria-hidden="true"></i>
51 [% IF ctx.mylist.size %]
52 <div class="form-group">
53 <label for="list_move_cart">[% l('Move contents of basket to this list?') %]</label>
54 <select class="d-inline-block form-control mini-control" name="move_cart" id="list_move_cart">
55 <option value="0">[% l('No') %]
56 <option value="1" [% IF move_cart_by_default %]selected="selected"[% END%]>[% l('Yes') %]
60 <button type="submit" class="btn btn-confirm"><i class="fas fa-plus-square" aria-hidden="true"></i> [% l('Save New List') %]</button>
61 <button type="reset" class="btn btn-deny" ><i class="fas fa-ban" aria-hidden="true"></i> [% l('Cancel') %]</button>
66 [% IF (CGI.param('from_basket') && ctx.mylist.size) %]
67 <h3>[% l("... from basket") %]</h3>
68 [% INCLUDE "opac/parts/anon_list.tt2" %]
70 [% INCLUDE "opac/parts/anon_list.tt2" %]
73 <div class="row border-top pt-4">
74 <h3>[% l('Saved Lists') %]</h3>
77 [% IF !ctx.bookbags.size %]
78 <div class="container pb-2 mt-2 pt-2">
79 <h4>[% l("You don't have any lists yet") %]</h4>
80 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {}) %]'>[% l('Create a list with the form above') %]</a>
83 [% IF limit < ctx.bookbag_count; %]
84 <span class='float-left' style='padding-left: 10px;'>
86 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
87 offset => (offset - limit)
88 }) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>
90 [%- IF (offset - (limit * 3)) >= 0 -%]
91 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
92 offset => (offset - (limit * 3))
93 }) %]'>[% ((offset - (limit * 3)) / limit) + 1 %]</a>
95 [%- IF (offset - (limit * 2)) >= 0 -%]
96 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
97 offset => (offset - (limit * 2))
98 }) %]'>[% ((offset - (limit * 2)) / limit) + 1 %]</a>
100 [%- IF (offset - limit) >= 0 -%]
101 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
102 offset => (offset - limit)
103 }) %]'>[% ((offset - limit) / limit) + 1 %]</a>
105 <span class="bookbag-paginator-selected" >[% (offset / limit) + 1 %]</span>
106 [%- IF (offset + limit) < ctx.bookbag_count -%]
107 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
108 offset => (offset + limit)
109 }) %]'>[% ((offset + limit) / limit) + 1 %]</a>
111 [%- IF (offset + (limit * 2)) < ctx.bookbag_count -%]
112 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
113 offset => (offset + (limit * 2))
114 }) %]'>[% ((offset + (limit * 2)) / limit) + 1 %]</a>
116 [%- IF (offset + (limit * 3)) < ctx.bookbag_count -%]
117 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
118 offset => (offset + (limit * 3))
119 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
121 [%- IF (ctx.bookbag_count - offset) > limit; -%]
122 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
123 offset => (offset + limit)
124 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">►</span></a>
130 <div id='acct_lists_prime'>
131 [% FOR bbag IN ctx.bookbags %]
132 <div class="container border-bottom pb-2">
133 <div class="row mt-2">
134 [% baseurl = ctx.opac_root _ '/myopac/lists';
135 IF bbag.id != CGI.param("bbid");
136 url = mkurl(baseurl,{bbid => bbag.id, item_page => 1},['edit_notes','sort']);
137 ltitle = l("Show items in list");
139 url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
140 ltitle = l("Hide items in list");
142 <h4 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a>[% IF bbag.pub == 't'; %]
143 <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]' aria-label="[% l('RSS Feed') %]">
144 <i class="fas fa-rss-square" aria-hidden="true"></i></a>
147 <div class="row bookbag-description">
148 [% bbag.description | html %]
153 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
154 <div class="bookbag-controls">
155 <input type="hidden" name="action" value="add_rec" />
156 <input type="hidden" name="list" value="[% bbag.id %]" />
157 <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" />
158 [% IF ctx.where_from %]
159 <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
161 <button class="fixed btn btn-success btn-sm m-1" type="submit" ><i class="fas fa-plus-square" aria-hidden="true"></i> [% l('Add to this list') %]</button>
166 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
167 <div class="bookbag-share">
168 <input type="hidden" name="list" value="[% bbag.id %]" />
169 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
170 [% IF bbag.pub != 't' %]
171 <input type="hidden" name="action" value="show" />
172 <button class="fixed btn btn-action btn-sm m-1" type="submit" ><i class="fas fa-share-square" aria-hidden="true"></i> [% l('Share') %]</button>
174 <input type="hidden" name="action" value="hide" />
175 <button class="fixed btn btn-secondary btn-sm m-1" type="submit"><i class="fas fa-eye-slash" aria-hidden="true"></i> [% l('Hide') %]</button>
180 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
181 <div class="bookbag-controls">
182 <input type="hidden" name="list" value="[% bbag.id %]" />
183 <input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
184 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
185 <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-file-download" aria-hidden="true"></i> [% l('Download CSV') %]</button>
189 [% setting = 'opac.default_list'; %]
190 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
191 <div class="bookbag-controls">
192 <input type="hidden" name="list" value="[% bbag.id %]" />
193 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
194 [% IF ctx.user_setting_map.$setting == bbag.id %]
195 <input type="hidden" name="action" value="remove_default" />
196 <button type="submit" class="btn btn-deny btn-sm m-1"><i class="fas fa-minus-circle" aria-hidden="true"></i> [% l('Remove Default List') %]</button>
198 <input type="hidden" name="action" value="make_default" />
199 <button type="submit" class="btn btn-action btn-sm m-1"><i class="fas fa-th-list" aria-hidden="true"></i> [% l('Make Default List') %]</button>
204 <div class="bookbag-controls">
205 <button class="btn btn-action btn-sm m-1" data-toggle="collapse" data-target="#bbag-edit-div-[% bbag.id %]"><i class="fa fa-edit" aria-hidden="true"></i> [% l('Edit List') %]</button>
208 [% IF bbag.pub == 't'; %]
209 <div class="bookbag-controls">
210 <a class="btn btn-sm btn-opac m-1" href='[%-
212 ctx.opac_root _ '/results',
213 {page => '0', bookbag => bbag.id, depth => 0, locg => ctx.search_ou},
216 -%]'><i class="fas fa-glasses" aria-hidden="true"></i> [% l('View in Catalog') %]</a>
222 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
223 <div class="bookbag-controls float-right">
224 <input type="hidden" name="list" value="[% bbag.id %]" />
225 <input type="hidden" name="action" value="delete" />
226 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
227 <button type="submit" class="btn btn-deny btn-sm m-1"><i class="fas fa-trash-alt" aria-hidden="true"></i> [% l('Delete List') %]</button>
234 <div id="bbag-edit-div-[% bbag.id %]" class="row collapse">
235 <div class="col-12 mt-3 p-2 bg-light">
236 <h5>[% l('Edit List Description') %]</h5>
238 <div class="form-group">
239 <label for="bbag-edit-name">[% l('Name:') %]</label>
240 <input class="form-control" name="name" type="text" value="[% bbag.name | html %]" id="bbag-edit-name" />
242 <div class="form-group">
243 <label for="bbag-edit-description">[% l('Description:') %]</label>
244 <textarea name="description" class="form-control"
245 id="bbag-edit-description">[% bbag.description | html %]
248 <input type="hidden" name="bbid" value="[% bbag.id %]" />
249 <input type="hidden" name="action" value="editmeta" />
250 <input type="hidden" name="limit" value="[% limit %]" />
251 <input type="hidden" name="offset" value="[% offset %]" />
252 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
253 <input type="submit" class="btn btn-action btn-sm" value="[% l('Save') %]" />
258 [% IF CGI.param("bbid") == bbag.id %]
261 <h5 class="text-center my-2">List Items</h5>
262 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" >
263 <input type="hidden" name="list" value="[% bbag.id %]" />
264 <input type="hidden" name="sort" value="[% CGI.param('sort') | uri %]" />
266 [% IF bbag.items.size %]
268 <button name="action" class="btn btn-action btn-sm" type="submit" value="place_hold" id="place_hold">[% l('Place hold') %]</button>
269 <button name="action" class="btn btn-action btn-sm" type="submit" value="print">[% l('Print title details') %]</button>
270 <button name="action" class="btn btn-action btn-sm" type="submit" value="email">[% l('Email title details') %]</button>
271 <button name="action" class="btn btn-action btn-sm" type="submit" value="del_item">[% l('Remove from list') %]</button>
276 <div class="d-block d-md-none">
279 <input id="check_all_list_items" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input');
280 for (i = 0; i < inputs.length; i++) {
281 if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
282 inputs[i].checked = this.checked;}"/>
284 <label for="check_all_list_items">[% l('Check/Uncheck All') %]</label>
286 <table class="table table-hover miniTable w-100 bookbagTable">
289 <th class="list_checkbox">
290 <input type="checkbox"
291 onclick="var inputs=document.getElementsByTagName('input');
292 for (i = 0; i < inputs.length; i++) {
293 if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
294 inputs[i].checked = this.checked;}"/>
297 <th class="list_entry">
300 <th class="list_entry">
301 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=> (CGI.param('sort') == 'titlesort' ? 'titlesort.descending' : 'titlesort')}) %]">[% l('Title') %]</a>
303 <th class="list_entry">
304 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'authorsort' ? 'authorsort.descending' : 'authorsort')}) %]">[% l('Author(s)') %]</a>
306 <th class='list_entry'>
307 [% l('Local Call Number') %]
309 <th class="list_entry">
310 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'pubdate' ? 'pubdate.descending' : 'pubdate')}) %]">[% l('Publication Date') %]</a>
312 <th class="list_entry">
315 <th class="list_entry">
317 [% IF CGI.param("edit_notes") != bbag.id %]
318 | <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {edit_notes=> bbag.id}) %]">[% l('Edit') %]</a>
324 [% UNLESS bbag.items.size %]
325 <tr><td colspan="6" class="list_is_empty">
326 [% l("This list contains no items.") %]
329 [% FOR item IN bbag.items;
330 rec_id = item.target_biblio_record_entry.id;
331 attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id};
332 PROCESS get_marc_attrs args=attrs %]
333 <tr class="bookbag-item-row">
334 <td class="list_checkbox">
335 <input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/>
338 row_isbnissn = attrs.issns.0;
340 row_isbnissn = attrs.isbns.0;
345 row_title = attrs.title;
348 <td class="list_entry" data-label="[% l('Title') %]">
349 <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec_id, {}, ['edit_notes', 'bbid']) %]">[% attrs.title | html %]</a>
351 <td class="list_entry" data-label="[% l('Author(s)') %]">
353 authorquery = attrs.author | replace('[,\.:;]', '');
354 mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page', 'bbid', 'edit_notes'])
355 -%]">[% attrs.author | html %]</a>
357 <td class="list_entry" data-label="[% l('Local Call Number') %]">
359 copy = attrs.holdings.0;
361 # only show a relevant call number
362 copy_org = ctx.get_aou_by_shortname(copy.owner);
363 FOR ctx_org IN [ctx.pref_ou, ctx.search_ou, ctx.home_ou, ctx.physical_loc];
365 ctx_org = ctx.get_aou(ctx_org);
366 IF ctx.org_within_scope(ctx_org, copy_org, ctx_org.ou_type.depth);
367 l('[_1] ([_2])', copy.label, copy_org.name) | html;
374 <td class="list_entry" data-label="[% l('Publication Date') %]">
375 [% attrs.pubdate | html %]
377 <td class="list_entry" data-label="[% l('Format') %]">
378 [% attrs.format_label | html %]
380 [% IF CGI.param("edit_notes") == bbag.id %]
381 <td class="list_entry" data-label="[% l('Notes') %]">
382 [% FOR note IN item.notes %]
383 <input type="text" name="note-[% note.id %]" value="[% note.note | html %]" />
385 <input type="text" name="item-[% item.id %]" />
388 <td class="list_entry" data-label="[% l('Notes') %]">
389 [% FOR note IN item.notes %]
390 <div>[% note.note | html %]</div>
396 [% IF CGI.param("edit_notes") == bbag.id %]
397 <tr class="mobile_hide">
398 <td colspan="7"><!-- All space left of notes column --></td>
399 <td class="save-notes">
400 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
401 <input type="hidden" name="bbid" value="[% CGI.param('bbid') | html %]" />
402 <button type="submit" class="btn btn-confirm" name="save_notes" value="[% l('Save Notes') %]" ><i class="fas fa-save" aria-hidden="true"></i> [% l('Save Notes') %]</button>
413 [% IF ctx.bb_page_count > 1; %]
414 <div class="header_middle" style="padding-top:7px;">
415 <div class="bbag-navigate-list">[% l('Navigate Selected List ') %]</div>
416 <div class="bbag-navigate-list-pages">
417 [%- IF item_page > 1 -%]
418 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
419 item_page => item_page - 1
420 }) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>
423 [%- IF (item_page - 3) >= 1 -%]
424 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
425 item_page => item_page - 3
426 }) %]'>[% item_page - 3 %]</a>
428 [%- IF (item_page - 2) >= 1 -%]
429 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
430 item_page => item_page - 2
431 }) %]'>[% item_page - 2 %]</a>
433 [%- IF (item_page - 1) >= 1 -%]
434 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
435 item_page => item_page - 1
436 }) %]'>[% item_page - 1%]</a>
438 <span class="bookbag-paginator-selected" >[% item_page %]</span>
439 [%- IF (item_page + 1) <= ctx.bb_page_count -%]
440 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
441 item_page => item_page + 1
442 }) %]'>[% item_page + 1 %]</a>
444 [%- IF (item_page + 2) <= ctx.bb_page_count -%]
445 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
446 item_page => item_page + 2
447 }) %]'>[% item_page + 2 %]</a>
449 [%- IF (item_page + 3) <= ctx.bb_page_count -%]
450 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
451 item_page => item_page + 3
452 }) %]'>[% item_page + 3 %]</a>
455 [%- IF (item_page + 1) <= ctx.bb_page_count; -%]
456 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
457 item_page => item_page + 1
458 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">►</span></a>