]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates-bootstrap/opac/parts/record/summary.tt2
LP1778972 A slew of updates
[Evergreen.git] / Open-ILS / src / templates-bootstrap / opac / parts / record / summary.tt2
1 [% PROCESS "opac/parts/misc_util.tt2";
2 USE ResolverResolver;
3 ctx.page_title = attrs.title | html
4 ctx.metalinks.push('
5 <meta property="og:image" content="' _ ctx.media_prefix _ '/opac/extras/ac/jacket/large/r/' _ ctx.bre_id _ '" />');
6 %]
7 <!-- ****************** rdetail_summary.xml ***************************** -->
8 <abbr class="unapi-id" title='tag:[% ctx.hostname %],[% date.format(date.now, ' %Y') %]:biblio-record_entry/[%
9     ctx.bre_id %]'></abbr>
10
11 <hr />
12
13 [%-# This holds the record summary information %]
14 <div class="row">
15     <div class="col-lg-3">
16         <div id="rdetail_image_div" class="w-100 text-center">
17             [%- IF obalkyknih_cz.enabled == 'true' %]
18             [%-
19             isbnissn = '';
20             IF attrs.isbns.0;
21             isbnissn = attrs.isbns.0;
22             IF (matches = isbnissn.match('^(.+?)(\s.+)$'));
23             isbnissn = matches.0;
24             END;
25             END;
26             IF attrs.issns.0;
27             isbnissn=attrs.issns.0;
28             END;
29             %]
30             <a href='http://obalkyknih.cz/view?isbn=[% isbnissn %]'>
31                 <img alt="[% attrs.title _ ' Cover Image' %]" class='img-thumbnail w-auto'
32                     src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/r/[% ctx.bre_id | uri %]' />
33             </a>
34             [% ELSE %]
35             <a href='[% ctx.media_prefix %]/opac/extras/ac/jacket/large/r/[% ctx.bre_id | uri %]'><img
36                     alt="[% attrs.title _ ' Cover Image' %]" class='img-thumbnail w-auto'
37                     src='[% ctx.media_prefix %]/opac/extras/ac/jacket/[% record.summary.jacket_size %]/r/[% ctx.bre_id | uri %]' />
38             </a>
39             [%- END %]
40
41             [%- IF attrs.format_label %]
42             [% FOR format IN attrs.all_formats %]
43             <span style="font-size:14px;" class="mt-3 d-block">
44                 <img alt="[% format.label | html %]" src="[% format.icon %]" />
45                 [% format.label | html %]
46             </span>
47             [% END %]
48             [%- END %]
49
50
51
52            
53         </div>
54     </div>
55
56     <div class="col-lg-9">
57         <div class="row h-100">
58             <div class="col-lg-8">
59                 <h1 class='h1' property="name">[% IF attrs.hl.title; attrs.hl.title; ELSE; attrs.title_extended | html; END %]</h1>
60                 [%-
61                 FOR link880 IN attrs.graphic_titles;
62                 FOR alt IN link880.graphic;
63                 '<h2 class="graphic880"';
64                     IF alt.dir;
65                         ' dir="' _ alt.dir _ '"';
66                     END;
67                     '>'; alt.value | html; '</h2>';
68                 END;
69                 END;
70                 -%]
71                 [%- INCLUDE "opac/parts/record/authors.tt2" %]
72                 <div>
73                     <button id="btnMore" data-toggle="collapse" data-target="#demo"
74                         class="btn btn-action text-left btn-sm my-3"><i class="fas fa-info-circle"></i> More Details</button>
75                     <div id="demo" class="collapse">
76                         <h2 id='rdetail_record_details'>[% l("Record details") %]</h2>
77                         <ul class="list-unstyled">
78                             [%- IF attrs.hl.isbn.size; FOR isbn IN attrs.hl.isbn %]
79                             <li class='rdetail_isbns'>
80                                 <strong class='rdetail_label'>[% l('ISBN:'); %]</strong> [% isbn %]
81                             </li>
82                             [%- END; ELSIF attrs.isbns.0;
83                             FOR isbn IN attrs.isbns;
84                             isbn_extra = '';
85                             IF (matches = isbn.match('^(.+?)(\s.+)$'));
86                             isbn = matches.0;
87                             isbn_extra = matches.1;
88                             END;
89                             %]
90                             <li class='rdetail_isbns'>
91                                 <strong class='rdetail_label'>[% l('ISBN:'); %]</strong>
92                                 <span class='rdetail_value' property='isbn'>[% isbn | html %]</span>[% isbn_extra | html
93                                 %]
94                             </li>
95                             [%- END %]
96                             [%- END %]
97                             [%- IF attrs.hl.issn.size; FOR issn IN attrs.hl.issn %]
98                             <li class='rdetail_issns'>
99                                 <strong class='rdetail_label'>[% l('ISSN:'); %]</strong> [% issn %]
100                             </li>
101                             [%- END; ELSIF attrs.issns.0; FOR issn IN attrs.issns %]
102                             <li class='rdetail_issns'>
103                                 <strong class='rdetail_label'>[% l('ISSN:'); %]</strong>
104                                 <span class='rdetail_value'>[% issn | html %]</span>
105                             </li>
106                             [%- END %]
107                             [%- END %]
108                             [%- IF attrs.hl.physical_description.size %]
109                             <li id='rdetail_phys_desc'>
110                                 <strong class='rdetail_label'>[% l("Physical Description:") %]</strong>
111                                 <span class='rdetail_value' highlighted='true'>[%
112                                     attrs.hl.physical_description.join('<br />') %]</span>
113                             </li>
114                             [%- ELSIF attrs.phys_desc %]
115                             <li id='rdetail_phys_desc'>
116                                 <strong class='rdetail_label'>[% l("Physical Description:") %]</strong>
117                                 <span class='rdetail_value'>[% attrs.phys_desc | html %]</span>
118                             </li>
119                             [%- END %]
120                             [%- IF attrs.hl.edition %]
121                             <li id='rdetail_edition'>
122                                 <strong class='rdetail_label'>[% l("Edition:") %]</strong>
123                                 <span class='rdetail_value' highlighted='true'>[% attrs.hl.edition %]</span>
124                                 [%- ELSIF attrs.edition %]
125                             <li id='rdetail_edition'>
126                                 <strong class='rdetail_label'>[% l("Edition:") %]</strong>
127                                 <span class='rdetail_value'>[% attrs.edition | html %]</span>
128                                 [%-
129                                 FOR entry IN attrs.graphic_editions;
130                                 FOR alt IN entry.graphic;
131                                 diratt = "";
132                                 IF alt.dir;
133                                 diratt = ' dir="' _ alt.dir _ '"';
134                                 END;
135                                 -%]
136                                 <div class="graphic880 rdetail_value" [% diratt %]>
137                                     [% alt.value | html %]
138                                 </div>
139                                 [%-
140                                 END;
141                                 END;
142                                 -%]
143                             </li>
144                             [%- END %]
145                             [%- IF attrs.hl.publisher %]
146                             <li id='rdetail_publisher'>
147                                 <strong class='rdetail_label'>[% l("Publisher:") %]</strong>
148                                 <span class='rdetail_value' highlighted='true'>[% attrs.hl.publisher %]</span>
149                             </li>
150                             [%- ELSIF attrs.publisher %]
151                             <li id='rdetail_publisher'>
152                                 <strong class='rdetail_label'>[% l("Publisher:") %]</strong>
153                                 <span class='rdetail_value' property="publisher" typeof="Organization">
154                                     [%- IF attrs.pubplace; %]
155                                     <span property="location">[% attrs.pubplace | html; %]</span>
156                                     [%- END; %]
157                                     <span property="name">[% attrs.publisher | html; %]</span>
158                                 </span>
159                                 [%- IF attrs.pubdate; %]
160                                 <span property="datePublished">[% attrs.pubdate | html; %]</span>
161                                 [%- END; %]
162                                 [%-
163                                 IF attrs.graphic_pubinfos.size > 0;
164                                 FOR entry IN attrs.graphic_pubinfos;
165                                 FOR alt IN entry.graphic;
166                                 diratt = "";
167                                 IF alt.dir;
168                                 diratt = ' dir="' _ alt.dir _ '"';
169                                 END;
170                                 -%]
171                                 <div class="graphic880" [% diratt %]>
172                                     [% alt.value | html %]
173                                 </div>
174                                 [%-
175                                 END;
176                                 END;
177                                 END
178                                 -%]
179                             </li>
180                             [%- END %]
181                             [%- IF attrs.producer %]
182                             <li id='rdetail_producer'>
183                                 <strong class='rdetail_label'>[% l("Producer:") %]</strong>
184                                 <span class='rdetail_value'>
185                                     [%- IF attrs.prodplace; %]
186                                     <span>[% attrs.prodplace | html; %]</span>
187                                     [%- END; %]
188                                     <span>[% attrs.producer | html; %]</span>
189                                     [%- IF attrs.proddate; %]
190                                     <span>[% attrs.proddate | html; %]</span>
191                                     [%- END; %]
192                                 </span>
193                             </li>
194                             [%- END %]
195                             [%- IF attrs.distributor %]
196                             <li id='rdetail_distributor'>
197                                 <strong class='rdetail_label'>[% l("Distributor:") %]</strong>
198                                 <span class='rdetail_value'>
199                                     [%- IF attrs.distplace; %]
200                                     <span>[% attrs.distplace | html; %]</span>
201                                     [%- END; %]
202                                     <span>[% attrs.distributor | html; %]</span>
203                                     [%- IF attrs.distdate; %]
204                                     <span>[% attrs.distdate | html; %]</span>
205                                     [%- END; %]
206                                 </span>
207                             </li>
208                             [%- END %]
209                             [%- IF attrs.manufacturer %]
210                             <li id='rdetail_manufacturer'>
211                                 <strong class='rdetail_label'>[% l("Manufacturer:") %]</strong>
212                                 <span class='rdetail_value' property="manufacturer" typeof="Organization">
213                                     [%- IF attrs.manplace; %]
214                                     <span property="location">[% attrs.manplace | html; %]</span>
215                                     [%- END; %]
216                                     <span property="name">[% attrs.manufacturer | html; %]</span>
217                                     [%- IF attrs.mandate; %]
218                                     <span>[% attrs.mandate | html; %]</span>
219                                     [%- END; %]
220                                 </span>
221                             </li>
222                             [%- END %]
223                             [%- IF attrs.copyright %]
224                             <li id='rdetail_copyright'>
225                                 <strong class='rdetail_label'>[% l("Copyright:") %]</strong>
226                                 <span class='rdetail_value'>[% attrs.copyright | html_entity; %]
227                                     [%-# Provide the 4-digit year, cleansed of '@' and other junk %]
228                                     [%- IF attrs.copyrightYear -%]
229                                     <meta property='copyrightYear' content='[% attrs.copyrightYear | html; %]'>
230                                     [%- END -%]
231                                 </span>
232                             </li>
233                             [%- END %]
234                             [%- IF (ctx.badge_scores.size > 0 && ctx.hide_badge_scores != 'true') %]
235                             <li id='rdetail_badges'>
236                                 <strong class='rdetail_label'>[% l("Badges:") %]</strong>
237                                 <ul>
238                                     [% FOR bscore IN ctx.badge_scores; %]
239                                     <li><strong>[% bscore.badge.name | html %]</strong>: [% bscore.score %] / 5.0</li>
240                                     [%- END -%]
241                                 </ul>
242                             </li>
243                             [%- END %]
244                         </ul>
245
246
247                         [%- INCLUDE "opac/parts/record/contents.tt2" %]
248                         [%- INCLUDE "opac/parts/record/subjects.tt2" %]
249                         [%- INCLUDE "opac/parts/record/series.tt2" %]
250                         <div>
251                             [%-
252                             # l( 'mmr id = ' _ ctx.mmr_id );
253                             # l( 'mmr data = ' _ ctx.mmr_data );
254                             mmr_attrs = {marc_xml => ctx.mmr_data.marc_xml};
255                             PROCESS get_marc_attrs args=mmr_attrs;
256
257                             IF args.mmr_unique_bib.size > 1;
258                             %]
259                             <h3>[% l("More Options") %]</h3>
260                             <span class="metarecord_population_format">
261                                 [%- IF mmr_attrs.format_label;
262
263                                 FOR format IN mmr_attrs.all_formats;
264
265                                 link = mkurl(ctx.opac_root _ '/record/' _ format.source_bibs.0);
266                                 IF format.source_bibs.size > 1;
267                                 link = mkurl( ctx.opac_root _ '/results', { modifier => 'metabib', metarecord =>
268                                 ctx.mmr_id, 'fi:icon_format' => format.search_format, 'fi:from_metarecord' => ctx.mmr_id
269                                 }, stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms,
270                                 facet_search_parms,
271                                 ['qtype','fi:search_format','fi:icon_format','fi:item_lang','fi:from_metarecord']) );
272                                 END; -%]
273                                 <span class="metarecord_population_span_link">
274                                     <a href="[%- l( link ) %]">
275                                         [% format.label | html %]
276                                         ([%- l( format.source_bibs.size ) %])
277                                     </a></span><br />
278
279                                 [%- END %]
280                             </span>
281                             [%- IF mmr_attrs.all_lang.size > 0 %]
282                             <span class="metarecord_population_item_lang">
283                                 [% FOR lang IN mmr_attrs.all_lang;
284                                 link = mkurl(ctx.opac_root _ '/record/' _ lang.source_bibs.0);
285                                 IF lang.source_bibs.size > 1;
286                                 USE url(ctx.opac_root _ '/results');
287                                 link = mkurl( ctx.opac_root _ '/results', { modifier => 'metabib', metarecord =>
288                                 ctx.mmr_id, 'fi:item_lang' => lang.search_format, 'fi:from_metarecord' => ctx.mmr_id },
289                                 stop_parms.merge(expert_search_parms, general_search_parms, browse_search_parms,
290                                 facet_search_parms,
291                                 ['qtype','fi:search_format','fi:icon_format','fi:item_lang','fi:from_metarecord']) );
292                                 END; -%]
293                                 <span class="metarecord_population_span_link">
294                                     <a href="[%- l( link ) %]">
295                                         [% lang.label | html %]
296                                         ([%- l( lang.source_bibs.size ) %])
297                                     </a></span><br />
298                                 [%- END %]
299                             </span> <!-- metarecord_population_item_lang -->
300                             [%- END %]
301                             <div class="metarecord_population_all">
302                                 [%
303                                 link = mkurl( ctx.opac_root _ '/results', { modifier => 'metabib', metarecord =>
304                                 ctx.mmr_id, 'fi:from_metarecord' => ctx.mmr_id }, stop_parms.merge(expert_search_parms,
305                                 general_search_parms, browse_search_parms, facet_search_parms,
306                                 ['qtype','fi:search_format','fi:icon_format','fi:item_lang','fi:from_metarecord'] ) );
307                                 %]
308                                 <span class="metarecord_population_span_link">
309                                     <a href="[%- l( link ) %]">[% l("View all formats and editions ") %] ([%-
310                                         args.mmr_unique_bib.size %])
311                                     </a></span><br />
312                             </div>
313                             [%- END;
314                             END # ending tag for IF args.mmr_unique_bib.size > 1; %]
315                         </div>
316
317                     </div>
318                     
319                 </div>
320                 <script>jQuery('#demo').on('hidden.bs.collapse', function () {
321                         jQuery('#btnMore').html("<i class='fas fa-info-circle'></i> More Details");
322                     })
323                     jQuery('#demo').on('shown.bs.collapse', function () {
324                         jQuery('#btnMore').html("<i class='fas fa-info-circle'></i> Less Details");
325                     })
326                     </script>
327
328                <div id="copy_hold_counts">
329
330                 [%-
331                 # Hold/copy summary
332                 IF ctx.copy_summary.0.count;
333                 INCLUDE "opac/parts/record/copy_counts.tt2";
334                 %]
335
336
337                 [%- END %]
338
339                 </div> <!-- metarecord_population -->
340             </div>
341             <!--rdetail_title_div-->
342
343             <div class="col-lg-4 text-right">
344              <div class="mx-auto btn-group btn-group-vertical text-left dropright mt-3">
345                 [%- search_ou = ctx.search_ou;
346                 IF ctx.place_unfillable ||
347                 ( attrs.marc_xml.findnodes('//*[local-name()="holdings" and @has_holdable="true"]').size
348                 && (ctx.holds_block.enabled != 'true' || !attrs.org_copy_counts.$search_ou.available)
349                 )
350                 %]
351                 <div class="btn btn-action text-left">
352                     <a href="[% mkurl(ctx.opac_root _ '/place_hold', 
353                     {hold_target => ctx.bre_id, hold_type => 'T', hold_source_page => mkurl()}, stop_parms) %]"
354                         class="no-dec">
355                         <span class="place_hold"><i class="fas fa-check"></i> [% l('Place Hold') %]</span></a>
356                 </div>
357                 [%- END -%]
358
359                 [%- IF ebook_api.enabled == 'true' && args.ebook %]
360                 <div class="btn btn-action text-left">
361                     <div id="[%- ctx.bre_id -%]_ebook_checkout" class="rdetail_aux_utils ebook_action hidden">
362                         <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_checkout',
363                     {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'checkout'}, stop_parms) %]"
364                             class="no-dec" rel="nofollow" vocab="">
365                             <span class="place_hold"><i class="fas fa-check"></i> [% l('Check Out E-Item') %]</span></a>
366                     </div>
367                 </div>
368                 <div class="btn btn-action text-left">
369                     <div id="[%- ctx.bre_id -%]_ebook_place_hold" class="rdetail_aux_utils ebook_action hidden">
370                         <a href="[% mkurl(ctx.opac_root _ '/myopac/ebook_place_hold',
371                     {title => args.ebook.ebook_id, vendor => args.ebook.vendor, action => 'place_hold'}, stop_parms) %]"
372                             class="no-dec" rel="nofollow" vocab="">
373                             <span class="place_hold"><i class="fas fa-check"></i> [% l('Place Hold on E-Item') %]</span></a>
374                     </div>
375                 </div>
376                 [%- END -%]
377
378
379                 <div class="btn btn-action text-left">
380                     [% operation = ctx.mylist.grep('^' _ ctx.bre_id _ '$').size ? "delete" : "add";
381                     addhref = mkurl(ctx.opac_root _ '/mylist/add', {record => ctx.bre_id}, stop_parms);
382                     delhref = mkurl(ctx.opac_root _ '/mylist/delete', {record => ctx.bre_id}, stop_parms);
383                     label = (operation == "add") ? l("Add to Basket") : l("Remove from Basket");
384                     %]
385                     <a href="[% addhref %]" id="mylist_add_[% ctx.bre_id %]" 
386                         data-recid="[% ctx.bre_id %]" data-action="add"
387                         class="no-dec mylist_action [% IF ctx.mylist.grep('^' _ ctx.bre_id _ '$').size %]hidden[% END %]"
388                         title="[% l(" Add [_1] to basket", attrs.title) %]" rel="nofollow" vocab="">
389                         <i class="fas fa-shopping-basket"></i>
390                         [% l("Add to basket") %]
391                     </a>
392                     <a href="[% delhref %]" id="mylist_delete_[% ctx.bre_id %]" 
393                         data-recid="[% ctx.bre_id %]" data-action="delete"
394                         class="mylist_action [% IF !ctx.mylist.grep('^' _ ctx.bre_id _ '$').size %]hidden[% END %]"
395                         title="[% l(" Remove [_1] from basket", attrs.title) %]" rel="nofollow" vocab="">
396                         <i class="fas fa-minus-circle"></i>
397                         [% l("Remove from basket") %]
398                     </a>
399                 </div>
400                 [% IF ctx.mylist.size %]
401                 <div class="btn btn-action text-left">
402                     [%- IF ctx.user; %]
403                     <a href="[% mkurl(ctx.opac_root _ '/myopac/lists') %]" class="no-dec" rel="nofollow" vocab=""><i class="fas fa-glasses"></i> [% l(' View Basket') %]</a>
404                     [%- ELSE %]
405                     <a href="[% mkurl(ctx.opac_root _ '/mylist') %]" class="no-dec" rel="nofollow" vocab=""><i class="fas fa-glasses"></i> [% l(' View My Basket') %]</a>
406                     [%- END %]
407                 </div>
408                 [% END %]
409                 
410                 [% IF !ctx.is_staff %]
411                     [% IF ctx.user; %]
412                     [% INCLUDE "opac/parts/bookbag_actions.tt2"; %]
413                     [% END; %]
414                 [% END %]
415                 
416                 <div class="btn btn-action text-left">
417                     <i class="fas fa-envelope-open-text"></i>
418                     <a href="[% mkurl(ctx.opac_root _ '/record/print/' _ ctx.bre_id) %]" class="no-dec" rel="nofollow"
419                         vocab="">[% l('Print') %]</a> /
420                     <a href="[% mkurl(ctx.opac_root _ '/record/email/' _ ctx.bre_id) %]" class="no-dec" rel="nofollow"
421                         vocab="">[% l('Email') %]</a>
422                 </div>
423                 [%- IF ctx.refworks.enabled == 'true' %]
424                 [%- INCLUDE 'opac/parts/record/refworks.tt2' %]
425                 [%- END %]
426                 [% IF !ctx.is_staff %]
427                 <div class="btn btn-action text-left">
428                     <a href="[% mkurl('', {locg =>CGI.param('locg'), copy_depth =>CGI.param('copy_depth')}, 1) %]"
429                         class="no-dec">
430                         <i class="fas fa-link"></i>
431                         [% l('Permalink') %]
432                     </a>
433                 </div>
434                 [% END %]
435                 [% IF !search.no_highlight %]
436                 <div class="btn btn-action text-left">
437                     [% IF CGI.param('no_highlight') %]
438                     <a href="[% mkurl('', {}, ['no_highlight']) %]" class="no-dec">
439                         [% ELSE %]
440                         <a href="[% mkurl('', {no_highlight => '1'}) %]" class="no-dec">
441                             [% END %]
442                             <i class="fas fa-highlighter"></i>
443                             [% CGI.param('no_highlight') ? l('Enable Highlighting') : l('Disable Highlighting') %]
444                         </a>
445                 </div>
446                 [% END %]
447                 [%- IF ctx.is_staff %]
448                 <div class="btn btn-action text-left">
449                     <a href="[% ctx.media_prefix %]/opac/extras/ac/clearcache/all/r/[% ctx.bre_id | uri %]"
450                         class="no-dec" target="_blank">
451                         <i class="fas fa-sync-alt"></i>
452                         [% l('Clear Added Content Cache') %]
453                     </a>
454                 </div>
455                 [%- END %]
456                 
457             </div>
458             
459         </div>
460     </div>
461 </div>
462 </div>
463 <div class="row">
464 <div class="col-12">
465         
466 <div class="float-right">
467                       
468                             <h2 class="text-right">[% l('Holds') %]</h2>
469                             <p class="text-right">
470                                 [%
471                                 # If org hiding is enabled/relevant, only show
472                                 # counts for copies within the hiding scope.
473                                 count_entry = 0;
474                                 FOR count_chunk IN ctx.copy_summary;
475                                 IF ctx.org_within_hiding_scope(count_chunk.org_unit);
476                                 # always true when hiding is disabled
477                                 LAST;
478                                 END;
479                                 count_entry = count_entry + 1;
480                                 END;
481                                 l("[quant,_1,current hold,current holds] with [quant,_2,total copy,total copies].",
482                                 ctx.record_hold_count, ctx.copy_summary.$count_entry.count)
483                                 %]
484                             </p>
485                         
486                     </div>
487
488         [%-
489         IF ctx.copy_summary.0.count;
490         INCLUDE "opac/parts/record/copy_table.tt2" copies=ctx.copies;
491         END;
492         %]
493
494
495         [%- IF openurl.enabled == 'true';
496         openurls = [];
497         FOREACH issn IN args.issns;
498         NEXT IF issn == '';
499         openurls = openurls.import(ResolverResolver.resolve_issn(issn, openurl.baseurl));
500         END;
501         IF openurls.size && openurls.0 != '';
502         %]
503         <div id='rdetail_openurl'>
504             <strong class='rdetail_openurl_title'>[% l("Electronic resources") %]</strong>
505             <table>
506                 <tbody>
507                     [%-
508                     FOREACH res IN openurls;
509                     %]
510                     <tr>
511                         <td class='rdetail_openurl_entry'><a href="[% res.target_url %]">[% res.public_name | html
512                                 %]</a></td>
513                         <td>[% res.target_coverage | html %]
514                             [%- IF res.target_embargo != '';
515                             ' - ';
516                             res.target_embargo | html;
517                             END;
518                             -%]
519                         </td>
520                     </tr>
521                     [%- END %]
522                 </tbody>
523             </table>
524         </div>
525         [%- END %]
526         [%- END %]
527         [%- merged_uris = args.uris.merge(args.online_res);
528         num_uris = merged_uris.size;
529         IF num_uris > 0;
530         -%]
531
532         <h2 class="rdetail_uris">[% l("Electronic resources") %]</h2>
533         <div class="rdetail_uris">
534             [%- IF num_uris > 1 %]<ul>[% END %]
535                 [%- FOR uri IN merged_uris %]
536                 [%- IF num_uris == 1 -%]
537                 <p class="rdetail_uri" property="offers" vocab="http://schema.org/" typeof="Offer">
538                     [%- ELSE -%]
539                     <li class="rdetail_uri" property="offers" vocab="http://schema.org/" typeof="Offer">
540                         [%- END -%]
541                         <a href="[% uri.href %]" class="uri_link" property="url">
542                             [%- IF uri.href != uri.link;
543                             '<span property="description">' _ uri.link _ '</span>';
544                             ELSE;
545                             uri.link;
546                             END;
547                             END;
548                             -%]
549                         </a>
550                         [%-# ' - <span property="description">' _ uri.note _ '</span>' IF uri.note %]
551                         <link property="availability" href="http://schema.org/OnlineOnly" />
552                         [%- IF attrs.gtin13; '
553                         <meta property="gtin13" content="' _ attrs.gtin13 _ '" />'; END; %]
554                         [%- IF num_uris == 1 %]</p>[% ELSE %]</li>[% END %]
555                 [%- END %]
556                 [%- IF num_uris > 1 %]</ul>[% END %]
557         </div>
558         [%
559         IF ebook_api.enabled == 'true';
560         INCLUDE "opac/parts/ebook_api/avail.tt2";
561         END;
562         %]
563     </div>
564 <hr>
565 <div class="col-12">
566     [%- INCLUDE "opac/parts/record/extras.tt2" %]
567 </div>