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