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