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;
9 "Sharing a list means that the contents " _
10 "of the list will be visible to others. " _
11 "To see the public view of a shared list, " _
12 "click on the HTML View link in the Saved Lists section.");
14 <h3 class="sr-only">[% l('My Lists') %]</h3>
15 <div id='myopac_bookbag_div' style="padding:5px;">
17 <!-- new list creation -->
18 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
19 <h1>[% l('Create New List') %]</h1><a name="createnewlist"></a>
20 <table class="table" >
22 <td class="list_create_table_label">
23 <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
25 <td class="px-3 my-2">
26 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
27 <input id="list_create_name" type="text" name="name" class="form-control"/>
28 <input type="hidden" name="action" value="create" class="form-control" />
30 <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" class="form-control" />
32 [% IF ctx.where_from %]
33 <input type="hidden" name="where_from" value="[% ctx.where_from %]" class="form-control" />
38 <td class="list_create_table_label">
39 <label for="list_description">[% l("List description (optional):") %]</label>
42 <textarea name="description" id="list_description" class="form-control"></textarea>
46 <td class="list_create_table_label">
47 <label for="list_create_shared">[% l('Share this list?') %]</label>
50 <select class="form-control mini-control" name="shared" id="list_create_shared">
51 <option value="0">[% l('No') %]
52 <option value="1">[% l('Yes') %]
55 <a href="javascript:void(0);"
56 onclick="alert('[% bb_publish_text %]')" >
57 <img data-toggle="tooltip" data-placement="top" alt="[% l('Sharing Help') %]"
58 [% html_text_attr('title', bb_publish_text) %]
59 src="[% ctx.media_prefix %]/images/question-mark.png[% ctx.cache_key %]" />
63 [% IF ctx.mylist.size %]
65 <td class="list_create_table_label">
66 <label for="list_move_cart">[% l('Move contents of basket to this list?') %]</label>
69 <select name="move_cart" id="list_move_cart">
70 <option value="0">[% l('No') %]
71 <option value="1" [% IF CGI.param('move_cart_by_default') %]selected="selected"[% END%]>[% l('Yes') %]
78 <td class="list-create-table-buttons">
80 value="[% l('Cancel') %]"
81 alt="[% l('Cancel') %]"
82 class="btn btn-deny" />
85 value="[% l('Submit') %]"
86 alt="[% l('Submit') %]"
87 class="btn btn-confirm"/>
93 [% IF CGI.param('from_basket'); %]
94 <h1>[% l("... from basket") %]</h1>
95 [% INCLUDE "opac/parts/anon_list.tt2" %]
97 <h1>[% l("My Existing Basket and Lists") %]</h1>
98 [% INCLUDE "opac/parts/anon_list.tt2" %]
100 [% IF ctx.bookbags.size %]
101 <div class="header_middle">
102 <span class="float-left">[% l('Saved Lists') %]</span>
103 [% IF limit < ctx.bookbag_count; %]
104 <span class='float-left' style='padding-left: 10px;'>
105 [%- IF offset > 0 -%]
106 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
107 offset => (offset - limit)
108 }) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>
110 [%- IF (offset - (limit * 3)) >= 0 -%]
111 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
112 offset => (offset - (limit * 3))
113 }) %]'>[% ((offset - (limit * 3)) / limit) + 1 %]</a>
115 [%- IF (offset - (limit * 2)) >= 0 -%]
116 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
117 offset => (offset - (limit * 2))
118 }) %]'>[% ((offset - (limit * 2)) / limit) + 1 %]</a>
120 [%- IF (offset - limit) >= 0 -%]
121 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
122 offset => (offset - limit)
123 }) %]'>[% ((offset - limit) / limit) + 1 %]</a>
125 <span class="bookbag-paginator-selected" >[% (offset / limit) + 1 %]</span>
126 [%- IF (offset + limit) < ctx.bookbag_count -%]
127 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
128 offset => (offset + limit)
129 }) %]'>[% ((offset + limit) / limit) + 1 %]</a>
131 [%- IF (offset + (limit * 2)) < ctx.bookbag_count -%]
132 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
133 offset => (offset + (limit * 2))
134 }) %]'>[% ((offset + (limit * 2)) / limit) + 1 %]</a>
136 [%- IF (offset + (limit * 3)) < ctx.bookbag_count -%]
137 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
138 offset => (offset + (limit * 3))
139 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
141 [%- IF (ctx.bookbag_count - offset) > limit; -%]
142 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
143 offset => (offset + limit)
144 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">►</span></a>
149 <div class="clear-both"></div>
151 <div id='acct_lists_prime'>
152 [% FOR bbag IN ctx.bookbags %]
154 <table class="table"><tr>
156 <div class="bookbag-controls-title-block">
157 [% baseurl = ctx.opac_root _ '/myopac/lists';
158 IF bbag.id != CGI.param("bbid");
159 url = mkurl(baseurl,{bbid => bbag.id, item_page => 1},['edit_notes','sort']);
160 ltitle = l("Show items in list");
162 url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
163 ltitle = l("Hide items in list");
165 <h2 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a></h2>
166 [% IF bbag.description %]<div class="bookbag-description">[% bbag.description | html %]</div>[% END %]
172 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
173 <div class="bookbag-controls">
174 <input type="hidden" name="action" value="add_rec" />
175 <input type="hidden" name="list" value="[% bbag.id %]" />
176 <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" />
177 [% IF ctx.where_from %]
178 <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
180 <input class="fixed btn btn-secondary btn-sm m-1" type="submit" value="[% l('Add to this list') %]" />
184 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
185 <div class="bookbag-share">
186 <input type="hidden" name="list" value="[% bbag.id %]" />
187 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
188 [% IF bbag.pub != 't' %]
189 <input type="hidden" name="action" value="show" />
190 <input class="class=fixed btn btn-secondary btn-sm m-1" type="submit" value="[% l('Share') %]" />
192 <input type="hidden" name="action" value="hide" />
193 <input class="fixed btn btn-secondary btn-sm m-1" type="submit" value="[% l('Hide') %]" />
197 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
198 <div class="bookbag-controls">
199 <input type="hidden" name="list" value="[% bbag.id %]" />
200 <input type="hidden" name="action" value="delete" />
201 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
202 <input type="submit" value="[% l('Delete List') %]" class="btn btn-secondary btn-sm m-1"/>
205 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
206 <div class="bookbag-controls">
207 <input type="hidden" name="list" value="[% bbag.id %]" />
208 <input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
209 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
210 <input type="submit" value="[% l('Download CSV') %]" class="btn btn-secondary btn-sm m-1"/>
213 [% setting = 'opac.default_list'; %]
214 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
215 <div class="bookbag-controls">
216 <input type="hidden" name="list" value="[% bbag.id %]" />
217 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
218 [% IF ctx.user_setting_map.$setting == bbag.id %]
219 <input type="hidden" name="action" value="remove_default" />
220 <input type="submit" class="btn btn-secondary btn-sm m-1" value="[% l('Remove Default List') %]" />
222 <input type="hidden" name="action" value="make_default" />
223 <input type="submit" class="btn btn-secondary btn-sm m-1" value="[% l('Make Default List') %]" />
227 [% IF ctx.is_staff %]
228 <div class="bookbag-controls">
233 "oils://remote/xul/server/cat/bucketz39_dialog.xul";
235 xulG.url_prefix(path),
237 "width=800,height=500",
239 "[% ctx.authtoken %]",
240 "[% ctx.user.ws_ou %]",
244 value="[% l('Locate Z39.50 Matches') %]"
248 <div class="bookbag-controls">
249 [% IF bbag.pub == 't'; %]
250 <a class="btn btn-sm btn-secondary m-1" href='[%-
252 ctx.opac_root _ '/results',
253 {page => '0', bookbag => bbag.id, depth => 0, locg => ctx.search_ou},
256 -%]'>[% l('View in Catalogue') %]</a>
258 [% IF bbag.pub == 't'; %]
259 <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]'><img
260 alt="[% l('RSS Feed') %]" border="0"
261 src="[% ctx.media_prefix %]/images/small-rss.png[% ctx.cache_key %]"/></a>
267 <div class="clear-both pad-bottom-five"></div>
269 [% IF CGI.param("bbid") == bbag.id %]
271 [% IF bbag.items.size %]
273 <form method="get" class="form-row">
274 <label for="opac.result.sort" class="form-row">[% l("Sort list items by: ") %]
275 [%- INCLUDE "opac/parts/preserve_params.tt2" params=['loc', 'query', 'qtype']; %]
276 [% INCLUDE "opac/parts/filtersort.tt2"
277 value=CGI.param('sort') mode='bookbag' class='form-control my-2' %]
278 <input type="hidden" name="bbid"
279 value="[% CGI.param('bbid') | html %]"/>
280 <input type="submit" class="btn btn-confirm btn-sm my-2" value="[% l('Sort') %]" />
287 <input type="hidden" name="bbid" value="[% bbag.id %]" />
288 <input type="hidden" name="action" value="editmeta" />
289 <input type="hidden" name="limit" value="[% limit %]" />
290 <input type="hidden" name="offset" value="[% offset %]" />
291 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
292 <table title="Edit List Description" class="mx-auto">
293 <th colspan="2" class="text-center"><strong>Edit List Description</strong></th>
296 <label for="bbag-edit-name">[% l('Name:') %]</label>
299 <input name="name" type="text" value="[% bbag.name | html %]" id="bbag-edit-name" class="form-control m-2" /></td>
303 <label for="bbag-edit-description">[% l('Description:') %]</label>
306 <textarea name="description" id="bbag-edit-description" class="form-control m-2">[% bbag.description | html %]</textarea>
311 [% l("Save changes?") %]
312 <input type="submit" class="btn btn-confirm btn-sm mx-3" value="[% l('Save') %]" />
319 <br class="clear-both" />
321 <h5 class="text-center my-2">List Items</h5>
322 <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" >
323 <input type="hidden" name="list" value="[% bbag.id %]" />
324 <input type="hidden" name="sort" value="[% CGI.param('sort') | uri %]" />
326 [% IF bbag.items.size %]
328 <select name="action" class="form-control float-left w-75">
329 <option disabled="disabled" selected="selected">[% l('-- Actions for these items --') %]</option>
330 <option value="place_hold">[% l('Place hold') %]</option>
331 <option value="print">[% l('Print title details') %]</option>
332 <option value="email">[% l('Email title details') %]</option>
333 <option value="del_item">[% l('Remove from list') %]</option>
335 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
336 <input class="btn btn-confirm btn-sm m-1" type="submit" value="[% l('Go') %]" />
337 [% IF CGI.param('list_none_selected') %]
338 <span class="error">[% l('No items were selected') %]</span>
344 <table class="table table-hover miniTable w-100 bookbagTable">
347 <th class="list_checkbox">
348 <input type="checkbox"
349 onclick="var inputs=document.getElementsByTagName('input');
350 for (i = 0; i < inputs.length; i++) {
351 if (inputs[i].name == 'selected_item' && !inputs[i].disabled && inputs[i].getAttribute('bbag') == [% bbag.id %])
352 inputs[i].checked = this.checked;}"/>
355 <th class="list_entry">
356 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=> (CGI.param('sort') == 'titlesort' ? 'titlesort.descending' : 'titlesort')}) %]">[% l('Title') %]</a>
358 <th class="list_entry">
359 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'authorsort' ? 'authorsort.descending' : 'authorsort')}) %]">[% l('Author(s)') %]</a>
361 <th class='list_entry'>
362 [% l('Local Call Number') %]
364 <th class="list_entry">
365 <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'pubdate' ? 'pubdate.descending' : 'pubdate')}) %]">[% l('Publication Date') %]</a>
367 <th class="list_entry">
370 <th class="list_entry">
372 [% IF CGI.param("edit_notes") != bbag.id %]
373 | <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {edit_notes=> bbag.id}) %]">[% l('Edit') %]</a>
379 [% UNLESS bbag.items.size %]
380 <tr><td colspan="6" class="list_is_empty">
381 [% l("This list contains no items.") %]
384 [% FOR item IN bbag.items;
385 rec_id = item.target_biblio_record_entry.id;
386 attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id};
387 PROCESS get_marc_attrs args=attrs %]
388 <tr class="bookbag-item-row">
389 <td class="list_checkbox">
390 <input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/>
392 <td class="list_entry" data-label="[% l('Title') %]">
393 <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec_id, {}, ['edit_notes', 'bbid']) %]">[% attrs.title | html %]</a>
395 <td class="list_entry" data-label="[% l('Author(s)') %]">
397 authorquery = attrs.author | replace('[,\.:;]', '');
398 mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page', 'bbid', 'edit_notes'])
399 -%]">[% attrs.author | html %]</a>
401 <td class="list_entry" data-label="[% l('Local Call Number') %]">
403 copy = attrs.holdings.0;
405 # only show a relevant call number
406 copy_org = ctx.get_aou_by_shortname(copy.owner);
407 FOR ctx_org IN [ctx.pref_ou, ctx.search_ou, ctx.home_ou, ctx.physical_loc];
409 ctx_org = ctx.get_aou(ctx_org);
410 IF ctx.org_within_scope(ctx_org, copy_org, ctx_org.ou_type.depth);
411 l('[_1] ([_2])', copy.label, copy_org.name) | html;
418 <td class="list_entry" data-label="[% l('Publication Date') %]">
419 [% attrs.pubdate | html %]
421 <td class="list_entry" data-label="[% l('Format') %]">
422 [% attrs.format_label | html %]
424 [% IF CGI.param("edit_notes") == bbag.id %]
425 <td class="list_entry" data-label="[% l('Notes') %]">
426 [% FOR note IN item.notes %]
427 <input type="text" name="note-[% note.id %]" value="[% note.note | html %]" />
429 <input type="text" name="item-[% item.id %]" />
432 <td class="list_entry" data-label="[% l('Notes') %]">
433 [% FOR note IN item.notes %]
434 <div>[% note.note | html %]</div>
440 [% IF CGI.param("edit_notes") == bbag.id %]
441 <tr class="mobile_hide">
442 <td colspan="6"><!-- All space left of notes column --></td>
443 <td class="save-notes">
444 [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
445 <input type="hidden" name="bbid" value="[% CGI.param('bbid') | html %]" />
446 <input type="submit" class="btn btn-confirm" name="save_notes" value="[% l('Save Notes') %]" />
457 [% IF ctx.bb_page_count > 1; %]
458 <div class="header_middle" style="padding-top:7px;">
459 <div class="bbag-navigate-list">[% l('Navigate Selected List ') %]</div>
460 <div class="bbag-navigate-list-pages">
461 [%- IF item_page > 1 -%]
462 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
463 item_page => item_page - 1
464 }) %]'><span class="nav_arrow_fix">◄</span>[% l('Previous') %]</a>
467 [%- IF (item_page - 3) >= 1 -%]
468 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
469 item_page => item_page - 3
470 }) %]'>[% item_page - 3 %]</a>
472 [%- IF (item_page - 2) >= 1 -%]
473 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
474 item_page => item_page - 2
475 }) %]'>[% item_page - 2 %]</a>
477 [%- IF (item_page - 1) >= 1 -%]
478 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
479 item_page => item_page - 1
480 }) %]'>[% item_page - 1%]</a>
482 <span class="bookbag-paginator-selected" >[% item_page %]</span>
483 [%- IF (item_page + 1) <= ctx.bb_page_count -%]
484 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
485 item_page => item_page + 1
486 }) %]'>[% item_page + 1 %]</a>
488 [%- IF (item_page + 2) <= ctx.bb_page_count -%]
489 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
490 item_page => item_page + 2
491 }) %]'>[% item_page + 2 %]</a>
493 [%- IF (item_page + 3) <= ctx.bb_page_count -%]
494 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
495 item_page => item_page + 3
496 }) %]'>[% item_page + 3 %]</a>
499 [%- IF (item_page + 1) <= ctx.bb_page_count; -%]
500 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
501 item_page => item_page + 1
502 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">►</span></a>
506 <div class="clear-both"></div>