]> git.evergreen-ils.org Git - evergreen/pines.git/blob - Open-ILS/src/templates-bootstrap/opac/myopac/lists.tt2
PINES Bootstrap Customizations
[evergreen/pines.git] / Open-ILS / src / templates-bootstrap / opac / myopac / lists.tt2
1 [%  PROCESS "opac/parts/header.tt2";
2     PROCESS "opac/parts/misc_util.tt2";
3     WRAPPER "opac/parts/myopac/base.tt2";
4     myopac_page = "lists"
5     limit = ctx.bookbags_limit;
6     offset = ctx.bookbags_offset;
7     item_page = ctx.bookbags_item_page;
8     bb_publish_text = l(
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.");
13 %]
14
15
16 <h3>[% l('My Lists') %]</h3>
17 <div style="padding-bottom:10px;">[% l("PINES Account Tips") %]</div>
18 <div id='myopac_bookbag_div'>
19
20     <!-- new list creation -->
21     <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" id="create_form">
22         <h4>[% l('Create New List') %]</h4><a id="createnewlist"></a>
23         <table class="table" >
24             <tr>
25                 <td class="list_create_table_label">
26                     <label for="list_create_name">[% l('Enter the name of the new list:') %]</label>
27                 </td>
28                 <td class="px-3 my-2">
29                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
30                     <input id="list_create_name" type="text" name="name" class="form-control"/>
31                     <input type="hidden" name="action" value="create" class="form-control" />
32                     [% IF ctx.add_rec %]
33                     <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" class="form-control" />
34                     [% END %]
35                     [% IF ctx.where_from %]
36                     <input type="hidden" name="where_from" value="[% ctx.where_from %]" class="form-control" />
37                     [% END %]
38                 </td>
39             </tr>
40             <tr>
41                 <td class="list_create_table_label">
42                     <label for="list_description">[% l("List description (optional):") %]</label>
43                 </td>
44                 <td class="px-3">
45                     <textarea name="description" id="list_description" class="form-control"></textarea>
46                 </td>
47             </tr>
48             <tr>
49                 <td class="list_create_table_label">
50                     <label for="list_create_shared">[% l('Share this list?') %]</label>
51                 </td>
52                 <td class="px-3">
53                     <select class="d-inline-block form-control mini-control" name="shared" id="list_create_shared">
54                         <option value="0">[% l('No') %]
55                         <option value="1">[% l('Yes') %]
56                     </select>
57                     <a title="[% l('Allows the list to be shared through a link or RSS.') %]" data-toggle="tooltip">
58                         <i class="fas fa-question-circle" aria-hidden="true"></i>
59                     </a>
60                 </td>
61             </tr>
62             [% IF ctx.mylist.size %]
63             <tr>
64                 <td class="list_create_table_label">
65                     <label for="list_move_cart">[% l('Move contents of basket to this list?') %]</label>
66                 </td>
67                 <td>
68                     <select class="d-inline-block form-control mini-control" name="move_cart" id="list_move_cart">
69                         <option value="0">[% l('No') %]
70                         <option value="1" [% IF CGI.param('move_cart_by_default') %]selected="selected"[% END%]>[% l('Yes') %]
71                     </select>
72                 </td>
73             </tr>
74             [% END %]
75             <tr>
76                 <td>&nbsp;</td>
77                 <td class="list-create-table-buttons">
78                                     <button type="submit" class="btn btn-confirm"><i class="fas fa-plus-square" aria-hidden="true"></i> [% l('Create List') %]</button>
79
80                     <button type="reset" class="btn btn-deny" ><i class="fas fa-ban" aria-hidden="true"></i> [% l('Cancel') %]</button>
81                 </td>
82             </tr>
83         </table>
84     </form>
85
86     [% IF (CGI.param('from_basket') && ctx.mylist.size)  %]    
87
88     <h3>[% l("... from basket") %]</h3>
89     [% INCLUDE "opac/parts/anon_list.tt2" %]
90     [% ELSE %]
91     <h3>[% l("My Saved Lists") %]</h3>
92     [% INCLUDE "opac/parts/anon_list.tt2" %]
93
94     [% IF ctx.bookbags.size %]
95     <div class="header_middle">
96         <span class="sr-only">[% l('Saved Lists') %]</span>
97         [% IF limit < ctx.bookbag_count; %]
98         <span class='float-left' style='padding-left: 10px;'>
99             [%- IF offset > 0 -%]
100                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
101                     offset => (offset - limit)
102                 }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
103             [%- END; -%]
104             [%- IF (offset - (limit * 3)) >= 0 -%]
105                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
106                     offset => (offset - (limit * 3))
107                 }) %]'>[% ((offset - (limit * 3)) / limit) + 1 %]</a>
108             [%- END; -%]
109             [%- IF (offset - (limit * 2)) >= 0 -%]
110                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
111                     offset => (offset - (limit * 2))
112                 }) %]'>[% ((offset - (limit * 2)) / limit) + 1 %]</a>
113             [%- END; -%]
114             [%- IF (offset - limit) >= 0 -%]
115                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
116                     offset => (offset - limit)
117                 }) %]'>[% ((offset - limit) / limit) + 1 %]</a>
118             [%- END; -%]
119             <span class="bookbag-paginator-selected" >[% (offset / limit) + 1 %]</span>
120             [%- IF (offset + limit) < ctx.bookbag_count -%]
121                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
122                     offset => (offset + limit)
123                 }) %]'>[% ((offset + limit) / limit) + 1 %]</a>
124             [%- END; -%]
125             [%- IF (offset + (limit * 2)) < ctx.bookbag_count -%]
126                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
127                     offset => (offset + (limit * 2))
128                 }) %]'>[% ((offset + (limit * 2)) / limit) + 1 %]</a>
129             [%- END; -%]
130             [%- IF (offset + (limit * 3)) < ctx.bookbag_count -%]
131                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
132                     offset => (offset + (limit * 3))
133                 }) %]'>[% ((offset + (limit * 3)) / limit) + 1 %]</a>
134             [%- END; -%]
135             [%- IF (ctx.bookbag_count - offset) > limit; -%]
136                 <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
137                     offset => (offset + limit)
138                 }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
139             </span>
140             [%- END; -%]
141         [% END %]
142     </div>
143
144     <div id='acct_lists_prime'>
145         [% FOR bbag IN ctx.bookbags %]
146         <div>
147          <table class="table" style="border:3px solid #8DC641;"><tr>
148             <td class="listTitleText">
149                 [% baseurl = ctx.opac_root _ '/myopac/lists';
150                 IF bbag.id != CGI.param("bbid");
151                     url = mkurl(baseurl,{bbid => bbag.id, item_page => 1},['edit_notes','sort']);
152                     ltitle = l("Show items in list");
153                 ELSE;
154                     url = mkurl(baseurl, {}, ['bbid', 'edit_notes', 'sort']);
155                     ltitle = l("Hide items in list");
156                 END %]
157                 <h4 class="bookbag-name"><a title="[% ltitle %]" href="[% url %]">[% bbag.name | html %]</a>[% IF bbag.pub == 't'; %]
158                 <a target='_blank' href='/opac/extras/feed/bookbag/rss2-full/[% bbag.id %]' aria-label="RSS Feed">
159                 <i class="fas fa-rss-square" aria-hidden="true"></i></a>
160                 [% END %]</h4>
161                 [% IF bbag.description %]<div class="bookbag-description" style="padding-left: 20px;">[% bbag.description | html %]</div>[% END %]
162              </td>
163             </tr>
164             <tr>
165             <td>
166             [% IF ctx.add_rec %]
167             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update', {}, 1) %]" method="post">
168                 <div class="bookbag-controls">
169                     <input type="hidden" name="action" value="add_rec" />
170                     <input type="hidden" name="list" value="[% bbag.id %]" />
171                     <input type="hidden" name="add_rec" value="[% ctx.add_rec %]" />
172                     [% IF ctx.where_from %]
173                     <input type="hidden" name="where_from" value="[% ctx.where_from %]" />
174                     [% END %]
175                     <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>
176                 </div>
177             </form>
178             [% END %]
179             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
180                 <div class="bookbag-share">
181                     <input type="hidden" name="list" value="[% bbag.id %]" />
182                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
183                     [% IF bbag.pub != 't' %]
184                     <input type="hidden" name="action" value="show" />
185                     <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>
186                     [% ELSE %]
187                     <input type="hidden" name="action" value="hide" />
188                     <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>
189                     [% END %]
190                 </div>
191             </form>
192
193             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/print') %]" method="post">
194                 <div class="bookbag-controls">
195                     <input type="hidden" name="list" value="[% bbag.id %]" />
196                     <input type="hidden" name="sort" value="[% CGI.param('sort') | html %]" />
197                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
198                     <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>
199                 </div>
200             </form>
201             [% setting = 'opac.default_list'; %]
202             <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post">
203                 <div class="bookbag-controls">
204                     <input type="hidden" name="list" value="[% bbag.id %]" />
205                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
206                     [% IF ctx.user_setting_map.$setting == bbag.id %]
207                     <input type="hidden" name="action" value="remove_default" />
208                     <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>
209                     [% ELSE %]
210                     <input type="hidden" name="action" value="make_default" />
211                     <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>
212                     [% END %]
213                 </div>
214             </form>
215             [% IF ctx.is_staff %]
216             <div class="bookbag-controls">
217                 <button
218                     type="submit"
219                     onclick='
220                        var path =
221                           "oils://remote/xul/server/cat/bucketz39_dialog.xul";
222                         window.openDialog(
223                             xulG.url_prefix(path),
224                             "bucketz39_dialog",
225                             "width=800,height=500",
226                             "[% ctx.user.id %]",
227                             "[% ctx.authtoken %]",
228                             "[% ctx.user.ws_ou %]",
229                             "[% bbag.id %]",
230                             xulG
231                         )'
232                     value="[% l('Locate Z39.50 Matches') %]"
233                 ><i class="fas fa-external-link-alt" aria-hidden="true"></i></button>
234             </div>
235             [% END %]
236             [% IF bbag.pub == 't'; %]
237             <div class="bookbag-controls">
238                 <a class="btn btn-sm btn-opac m-1" href='[%-
239                     mkurl(
240                         ctx.opac_root _ '/results',
241                         {page => '0', bookbag => bbag.id, depth => 0, locg => ctx.search_ou},
242                         1
243                     )
244                 -%]'><i class="fas fa-glasses" aria-hidden="true"></i> [% l('View in Catalog') %]</a>
245
246             </div>
247                [% END %]
248                  <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" onsubmit="return confirm('[% l('Do you really want to delete this list?') %]')">
249                 <div class="bookbag-controls float-right">
250                     <input type="hidden" name="list" value="[% bbag.id %]" />
251                     <input type="hidden" name="action" value="delete" />
252                     [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
253                     <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>
254                 </div>
255             </form>
256             </td>
257             </tr>
258             </table>
259         </div>
260         [% IF CGI.param("bbid") == bbag.id %]
261
262         <div>
263         <h5 class="sr-only">List Items</h5>
264         <form action="[% mkurl(ctx.opac_root _ '/myopac/list/update') %]" method="post" >
265         <input type="hidden" name="list" value="[% bbag.id %]" />
266         <input type="hidden" name="sort" value="[% CGI.param('sort') | uri %]" />
267
268         <div style="border:1px solid #8DC641;margin: -17px 0px 30px 0px;">
269         [% IF bbag.items.size %]
270             <div class="my-2" style="padding-left:30px;">
271                 [% l('Select at least one item from your list below to use these actions:') %]<br/>
272                 <button name="action" class="btn btn-action" type="submit" value="place_hold" id="place_hold">[% l('Place hold') %]</button>
273                 <button name="action" class="btn btn-action" type="submit" value="print">[% l('Print title details') %]</button>
274                 <button name="action" class="btn btn-action" type="submit" value="email">[% l('Email title details') %]</button>
275                 <button name="action" class="btn btn-action" type="submit" value="del_item">[% l('Remove from list') %]</button>
276             </div>
277         [% END %]
278
279         <div>
280          <div class="d-block d-md-none">
281
282
283             <input id="check_all_list_items" checked="checked" type="checkbox" onclick="var inputs=document.getElementsByTagName('input');
284                         for (i = 0; i < inputs.length; i++) {
285                             if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %])
286                                 inputs[i].checked = this.checked;}"/>
287
288             <label for="check_all_list_items">[% l('Check/Uncheck All') %]</label>
289         </div>
290         <table class="table table-hover miniTable w-100 bookbagTable">
291             <thead>
292                 <tr>
293                     <th class="list_checkbox">
294                     <input type="checkbox"
295                       onclick="var inputs=document.getElementsByTagName('input');
296                         for (i = 0; i < inputs.length; i++) {
297                             if (inputs[i].name == 'selected_item' &amp;&amp; !inputs[i].disabled &amp;&amp; inputs[i].getAttribute('bbag') == [% bbag.id %])
298                                 inputs[i].checked = this.checked;}"/>
299
300                     </th>
301                     <th class="list_entry">
302                         <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=> (CGI.param('sort') == 'titlesort' ? 'titlesort.descending' : 'titlesort')}) %]">[% l('Title') %]</a>
303                     </th>
304                     <th class="list_entry">
305                         <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'authorsort' ? 'authorsort.descending' : 'authorsort')}) %]">[% l('Author(s)') %]</a>
306                     </th>
307                     <th class='list_entry'>
308                         [% l('Local Call Number') %]
309                     </th>
310                     <th class="list_entry">
311                         <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {sort=>(CGI.param('sort') == 'pubdate' ? 'pubdate.descending' : 'pubdate')}) %]">[% l('Publication Date') %]</a>
312                     </th>
313                     <th class="list_entry">
314                          [% l('Format') %]
315                     </th>
316                     <th class="list_entry">
317                         [% l('Notes') %]
318                         [% IF CGI.param("edit_notes") != bbag.id %]
319                         | <a href="[% mkurl(ctx.opac_root _ '/myopac/lists', {edit_notes=> bbag.id}) %]">[% l('Edit') %]</a>
320                         [% END %]
321                     </th>
322                 </tr>
323             </thead>
324             <tbody>
325                 [% UNLESS bbag.items.size %]
326                 <tr><td colspan="6" class="list_is_empty">
327                     [% l("This list contains no items.") %]
328                 </td></tr>
329                 [% END %]
330                 [% FOR item IN bbag.items;
331                     rec_id = item.target_biblio_record_entry.id;
332                     attrs = {marc_xml => ctx.bookbags_marc_xml.$rec_id};
333                     PROCESS get_marc_attrs args=attrs %]
334                 <tr class="bookbag-item-row">
335                     <td class="list_checkbox">
336                         <input type="checkbox" name="selected_item" value="[% item.id %]" bbag='[% bbag.id %]'/>
337                     </td>
338                     <td class="list_entry" data-label="[% l('Title') %]">
339                         <a href="[% mkurl(ctx.opac_root _ '/record/' _ rec_id, {}, ['edit_notes', 'bbid']) %]">[% attrs.title | html %]</a>
340                     </td>
341                     <td class="list_entry" data-label="[% l('Author(s)') %]">
342                         <a href="[%-
343                             authorquery = attrs.author | replace('[,\.:;]', '');
344                             mkurl(ctx.opac_root _ '/results', {qtype => 'author', query => authorquery}, ['page', 'bbid', 'edit_notes'])
345                             -%]">[% attrs.author | html %]</a>
346                     </td>
347                     <td class="list_entry" data-label="[% l('Local Call Number') %]">
348                         [%
349                             copy = attrs.holdings.0;
350                             IF copy;
351                                 # only show a relevant call number
352                                 copy_org = ctx.get_aou_by_shortname(copy.owner);
353                                 FOR ctx_org IN [ctx.pref_ou, ctx.search_ou, ctx.home_ou, ctx.physical_loc];
354                                     NEXT UNLESS ctx_org;
355                                     ctx_org = ctx.get_aou(ctx_org);
356                                     IF ctx.org_within_scope(ctx_org, copy_org, ctx_org.ou_type.depth);
357                                         l('[_1] ([_2])', copy.label, copy_org.name) | html;
358                                         LAST;
359                                     END;
360                                 END;
361                             END;
362                         %]
363                     </td>
364                     <td class="list_entry" data-label="[% l('Publication Date') %]">
365                           [% attrs.pubdate | html %]
366                     </td>
367                     <td class="list_entry" data-label="[% l('Format') %]">
368                           [% attrs.format_label | html %]
369                     </td>
370                     [% IF CGI.param("edit_notes") == bbag.id %]
371                     <td class="list_entry" data-label="[% l('Notes') %]">
372                         [% FOR note IN item.notes %]
373                         <input type="text" name="note-[% note.id %]" value="[% note.note | html %]" />
374                         [% END %]
375                         <input type="text" name="item-[% item.id %]" />
376                     </td>
377                     [% ELSE %]
378                     <td class="list_entry" data-label="[% l('Notes') %]">
379                         [% FOR note IN item.notes %]
380                         <div>[% note.note | html %]</div>
381                         [% END %]
382                     </td>
383                     [% END %]
384                 </tr>
385                 [% END %]
386                 [% IF CGI.param("edit_notes") == bbag.id %]
387                 <tr class="mobile_hide">
388                     <td colspan="6"><!-- All space left of notes column --></td>
389                     <td class="save-notes">
390                         [%- INCLUDE "opac/parts/preserve_params.tt2"; %]
391                         <input type="hidden" name="bbid" value="[% CGI.param('bbid') | html %]" />
392                         <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>
393                     </td>
394                 </tr>
395                 [% END %]
396             </tbody>
397         </table>
398         </div>
399
400
401
402         [% IF ctx.bb_page_count > 1; %]
403             <div class="header_middle" style="padding-top:7px;">
404                 <div class="bbag-navigate-list sr-only">[% l('Navigate Selected List ') %]</div>
405                 <div class="bbag-navigate-list-pages" style="width:100%;text-align:center;">
406                     [%- IF item_page > 1 -%]
407                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
408                             item_page => item_page - 1
409                         }) %]'><span class="nav_arrow_fix">&#9668;</span>[% l('Previous') %]</a>
410                     [%- END; -%]
411
412                     [%- IF (item_page - 3) >= 1 -%]
413                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
414                             item_page => item_page - 3
415                         }) %]'>[% item_page - 3 %]</a>
416                     [%- END; -%]
417                     [%- IF (item_page - 2) >= 1 -%]
418                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
419                             item_page => item_page - 2
420                         }) %]'>[% item_page - 2 %]</a>
421                     [%- END; -%]
422                     [%- IF (item_page - 1) >= 1 -%]
423                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
424                             item_page => item_page - 1
425                         }) %]'>[% item_page - 1%]</a>
426                     [%- END; -%]
427                     <span class="bookbag-paginator-selected" >[% item_page %]</span>
428                     [%- IF (item_page + 1) <= ctx.bb_page_count -%]
429                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
430                             item_page => item_page + 1
431                         }) %]'>[% item_page + 1 %]</a>
432                     [%- END; -%]
433                     [%- IF (item_page + 2) <= ctx.bb_page_count -%]
434                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
435                             item_page => item_page + 2
436                         }) %]'>[% item_page + 2 %]</a>
437                     [%- END; -%]
438                     [%- IF (item_page + 3) <= ctx.bb_page_count -%]
439                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
440                             item_page => item_page + 3
441                         }) %]'>[% item_page + 3 %]</a>
442                     [%- END; -%]
443
444                     [%- IF (item_page + 1) <= ctx.bb_page_count; -%]
445                         <a href='[% mkurl(ctx.opac_root _ '/myopac/lists', {
446                             item_page => item_page + 1
447                         }) %]'>[% l('Next') %]<span class="nav_arrow_fix">&#9658;</span></a>
448                     [%- END; -%]
449                  </div>
450             </div>
451         [% END %]
452         <br/>
453  </div></div>
454         </form>
455         </div>
456         [% END %]
457         [% END %]
458     </div>
459     [% END %][% END %]
460 </div>
461
462 [% END %]
463