diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php index c12efed09377fb0e62cd7f4866275eee5c228702..847bec98d2cfc4e5aa69fc6e1ff5c5f5ae2c254a 100644 --- a/module/finc/src/finc/View/Helper/Root/Record.php +++ b/module/finc/src/finc/View/Helper/Root/Record.php @@ -116,7 +116,7 @@ class Record extends \VuFind\View\Helper\Root\Record /** * Get the CSS class used to properly render an icon for given value * - * @param string $value Value to convert into CSS class + * @param string $value (identifier) Value to convert into CSS class * @param string $classfile Define alternative file for icon class without * suffix. Default: record-icon-class.phtml * @@ -130,6 +130,20 @@ class Record extends \VuFind\View\Helper\Root\Record ); } + /** + * Get the CSS class used to properly render an icon for given value + * + * @param string $classfile Define alternative file for icon text without + * + * @return string + */ + public function getRecordIconText($classfile = 'record-icon-text') + { + return $this->renderTemplate( + $classfile . '.phtml' + ); + } + /** * Returns if style based icons should be shown (if covers are disabled!) * @@ -338,7 +352,7 @@ class Record extends \VuFind\View\Helper\Root\Record } // is pattern set and matches so try rewrite url if (isset($r['pattern']) && 0 != preg_match('/' . $r['pattern'] . '/i', trim($link['url']))) { - // if function is set and available then perform on url + // if function is set and available then perform on url if (isset($r['function']) && is_callable($r['function'])) { $link['url'] = $r['function']($link['url']); } diff --git a/themes/finc/js/advanced_search.js b/themes/finc/js/advanced_search.js new file mode 100644 index 0000000000000000000000000000000000000000..5dad9556167bd8b8b43e983a3b53e7b2f05d26a9 --- /dev/null +++ b/themes/finc/js/advanced_search.js @@ -0,0 +1,141 @@ +/* Copied from bootstrap3 to set focus on new group or field - FIXME: Remove after PR is effective - #17985 - RL */ +/* exported addGroup, addSearch, deleteGroup, deleteSearch */ +var nextGroup = 0; +var groupLength = []; + +function addSearch(group, _fieldValues) { + var fieldValues = _fieldValues || {}; + // Build the new search + var inputID = group + '_' + groupLength[group]; + var $newSearch = $($('#new_search_template').html()); + + $newSearch.attr('id', 'search' + inputID); + $newSearch.find('input.form-control') + .attr('id', 'search_lookfor' + inputID) + .attr('name', 'lookfor' + group + '[]') + .val(''); + $newSearch.find('select.adv-term-type option:first-child').attr('selected', 1); + $newSearch.find('select.adv-term-type') + .attr('id', 'search_type' + inputID) + .attr('name', 'type' + group + '[]'); + $newSearch.find('.adv-term-remove') + .attr('onClick', 'return deleteSearch(' + group + ',' + groupLength[group] + ')'); + // Preset Values + if (typeof fieldValues.term !== "undefined") { + $newSearch.find('input.form-control').val(fieldValues.term); + } + if (typeof fieldValues.field !== "undefined") { + $newSearch.find('select.adv-term-type option[value="' + fieldValues.field + '"]').attr('selected', 1); + } + if (typeof fieldValues.op !== "undefined") { + $newSearch.find('select.adv-term-op option[value="' + fieldValues.op + '"]').attr('selected', 1); + } + // Insert it + $("#group" + group + "Holder").before($newSearch); + // Individual search ops (for searches like EDS) + if (groupLength[group] === 0) { + $newSearch.find('.first-op') + .attr('name', 'op' + group + '[]') + .removeClass('hidden'); + $newSearch.find('select.adv-term-op').remove(); + } else { + $newSearch.find('select.adv-term-op') + .attr('id', 'search_op' + group + '_' + groupLength[group]) + .attr('name', 'op' + group + '[]') + .removeClass('hidden'); + $newSearch.find('.first-op').remove(); + $newSearch.find('label').remove(); + // Show x if we have more than one search inputs + $('#group' + group + ' .adv-term-remove').removeClass('hidden'); + } + groupLength[group]++; + + // #17985 finc barf + $newSearch.find('input.form-control').focus(); + + return false; +} + +function deleteSearch(group, sindex) { + for (var i = sindex; i < groupLength[group] - 1; i++) { + var $search0 = $('#search' + group + '_' + i); + var $search1 = $('#search' + group + '_' + (i + 1)); + $search0.find('input').val($search1.find('input').val()); + var select0 = $search0.find('select')[0]; + var select1 = $search1.find('select')[0]; + select0.selectedIndex = select1.selectedIndex; + } + if (groupLength[group] > 1) { + groupLength[group]--; + $('#search' + group + '_' + groupLength[group]).remove(); + if (groupLength[group] === 1) { + $('#group' + group + ' .adv-term-remove').addClass('hidden'); // Hide x + } + } + return false; +} + +function addGroup(_firstTerm, _firstField, _join) { + var firstTerm = _firstTerm || ''; + var firstField = _firstField || ''; + var join = _join || ''; + + var $newGroup = $($('#new_group_template').html()); + $newGroup.find('.adv-group-label') // update label + .attr('for', 'search_lookfor' + nextGroup + '_0'); + $newGroup.attr('id', 'group' + nextGroup); + $newGroup.find('.search_place_holder') + .attr('id', 'group' + nextGroup + 'Holder') + .removeClass('hidden'); + $newGroup.find('.add_search_link') + .attr('id', 'add_search_link_' + nextGroup) + .attr('onClick', 'return addSearch(' + nextGroup + ')') + .removeClass('hidden'); + $newGroup.find('.adv-group-close') + .attr('onClick', 'return deleteGroup(' + nextGroup + ')'); + $newGroup.find('select.form-control') + .attr('id', 'search_bool' + nextGroup) + .attr('name', 'bool' + nextGroup + '[]'); + $newGroup.find('.search_bool') + .attr('for', 'search_bool' + nextGroup); + if (join.length > 0) { + $newGroup.find('option[value="' + join + '"]').attr('selected', 1); + } + // Insert + $('#groupPlaceHolder').before($newGroup); + // Populate + groupLength[nextGroup] = 0; + addSearch(nextGroup, {term: firstTerm, field: firstField}); + // Show join menu + if (nextGroup > 0) { + $('#groupJoin').removeClass('hidden'); + // Show x + $('.adv-group-close').removeClass('hidden'); + } + + // #17985 finc barf + $newGroup.children('input.form-control').first().focus(); + + return nextGroup++; +} + +function deleteGroup(group) { + // Find the group and remove it + $("#group" + group).remove(); + // If the last group was removed, add an empty group + if ($('.adv-group').length === 0) { + addGroup(); + } else if ($('#advSearchForm .adv-group').length === 1) { + $('#groupJoin').addClass('hidden'); // Hide join menu + $('.adv-group .adv-group-close').addClass('hidden'); // Hide x + } + return false; +} + +$(document).ready(function advSearchReady() { + $('.clear-btn').click(function clearBtnClick() { + $('input[type="text"]').val(''); + $("option:selected").removeAttr("selected"); + $("#illustrated_-1").click(); + }); +}); diff --git a/themes/finc/js/covers.js b/themes/finc/js/covers.js index 1f150538799ab5778d7129604d192603de5761a5..f54f93b677c941e87ad4fc3a0406e43f54d20aba 100644 --- a/themes/finc/js/covers.js +++ b/themes/finc/js/covers.js @@ -1,3 +1,22 @@ +/* global Finc */ +// show picture in large size after click within a modal +function registerCoverForModal(anchor, url) { + if (anchor === null || anchor === undefined || url === null || url === undefined) { + return; + } + + anchor.click(function(event) { + event.preventDefault(); + VuFind.modal('show'); + var largeSizeUrl = url + '&size=large'; + $.get(largeSizeUrl).done(function() { + $('#modal').find('.modal-body').html('<img src="' + largeSizeUrl + '">'); + }).fail(function() { + $('#modal').find('.modal-body').html('<img src="' + url + '">'); + }); + }); +} + /* this is a backport from VF 7 core, remove on upgrade */ /* global VuFind */ function loadCoverByElement(data, element) { @@ -15,6 +34,7 @@ function loadCoverByElement(data, element) { anchor.show(); anchor.attr('href', response.data.url); anchor.removeClass('hidden'); // finc specific + registerCoverForModal(anchor, response.data.url); // finc specific } else { img.remove(); if (typeof response.data.html !== 'undefined') { @@ -45,5 +65,6 @@ function loadCovers() { loadCoverByElement(data, $(this)); }); } + // deactivated for finc - we load every single cover directly by itself in cover.phtml // $(document).ready(loadCovers); diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss index 094ad9742b40178c42fa65fbb43ec01c672d515a..79421497168e1b1eaf06068475fd9e8e037d41fd 100644 --- a/themes/finc/scss/compiled.scss +++ b/themes/finc/scss/compiled.scss @@ -2172,8 +2172,14 @@ footer { } span { - font-size: .8em; + font-size: 1rem; + padding-top: .75rem; + text-align: center; width: 100%; + + @media screen and (max-width: $screen-xs-max) { + display: block; + } } } diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml index da6f1ba8e886185d7a21902dc4b8be2d31fbaeaf..9a632703f394087e73e9d4c8dc200cdaf71855c6 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml @@ -6,7 +6,7 @@ $cover = $coverDetails['html']; $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="<?=$cover?'true':'false'?>> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml index abfa3146c70a0d5099f4fa7f24272815be64e954..2fb24aa1bf328fb5013725bbcdce4c9de5d10252 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml @@ -9,7 +9,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml index 7e915e408fb9e2f4232268ae813cbf3cfc436696..c9db1eba1145a5242ff7bea91bad01fe2763c155 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml @@ -2,7 +2,6 @@ $normalizedValue = preg_replace('/[^a-z0-9]/', '', strtolower($this->value)); // Convert normalizedValue to styles -// finc: same list of states for icons like in de_15 #13704 - VE switch ($normalizedValue) { case 'local': echo 'fa-home'; diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml new file mode 100644 index 0000000000000000000000000000000000000000..50bd4d1b6e9856521d913ae9a4f4fbf9a5504ad1 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml @@ -0,0 +1,20 @@ +<!-- finc: recordDriver - DefaultRecord - record-icon-text --> +<?php + /* block copied from record-icon - RL */ + $recordType = $this->driver->getRecordType(); + if ($recordType == "marcfincpda") { + $type = $recordType; + } elseif ($recordType == "lido") { + $type = "object"; + } else { + $type = implode('', $this->driver->getFacetAvail()); + } +?> +<?php if ($iconClass = $this->record($this->driver)->getRecordIconClass($type)): ?> + <span class="access-icon hidden-print"> + <span> + <?=$this->translate("($iconClass)")?> + </span> + </span> +<?php endif; ?> +<!-- finc: recordDriver - DefaultRecord - record-icon-text - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml index b1326e3298090c15549f19039220c98795e1a4d3..b36f126e35c921bc00d91b93aa7b303a19c08382 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml @@ -1,30 +1,18 @@ <!-- finc: recordDriver - DefaultRecord - record-icon --> <?php -/* finc: template is identical with de_15 #13704 - VE */ - -/*$formats = []; -foreach ($this->driver->getFormats() as $format) { - $formats[] = $this->record($this->driver)->getRecordIconClass($format); -} -$formats = array_unique($formats); -asort($formats); -?> -<span class="record-icon"><img src="<?=$this->imageLink("small/".array_pop($formats).".png")?>" class="hidden-xs" alt="<?=$this->transEsc("record icon")?>" /></span> -*/ - -if ($this->driver->getRecordType() == "marcfincpda") { - $iconClass = $this->record($this->driver)->getRecordIconClass("marcfincpda"); -} elseif ($this->driver->getRecordType() == "lido") { - $iconClass = $this->record($this->driver)->getRecordIconClass("object"); -} else { - /* finc: solr field facet_avail instead of access_facet (field deprecated) #15375 - GG */ - $facetAvail = $this->driver->getFacetAvail(); - $facetAvail = implode('', $facetAvail); - $iconClass = $this->record($this->driver)->getRecordIconClass($facetAvail); -} + /* finc: template is NOT identical with de_15 - RL */ + $recordType = $this->driver->getRecordType(); + if ($recordType == "marcfincpda") { + $type = $recordType; + } elseif ($recordType == "lido") { + $type = "object"; + } else { + $type = implode('', $this->driver->getFacetAvail()); + } + $iconClass = $this->record($this->driver)->getRecordIconClass($type); ?> <span class="access-icon hidden-print"> - <i class="fa <?=$iconClass?>"></i> - <span class="hidden-xs"> <?=$this->transEsc("$this->escapeHtml($iconClass)")?></span> + <i aria-hidden="true" class="fa <?=$iconClass?>"></i> + <?php /* separate access text from icon - moved to cover.phtml */ ?> </span> -<!-- finc: recordDriver - DefaultRecord - record-icon - END --> +<!-- finc: recordDriver - DefaultRecord - record-icon - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml index 384afa895b7bc80cd88d45471aa5b64ebcc199d9..767f185304e75b2ec54d4dad17025a4275a791ac 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml @@ -8,7 +8,7 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('resul $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover?> </div> <?php $thumbnail = ob_get_contents(); ?> @@ -18,6 +18,7 @@ if ($cover): <?php ob_start(); ?> <div class="media-<?=$thumbnailAlignment?> record-icon"> <?=$this->record($this->driver)->getRecordIcon()?> + <?=$this->record($this->driver)->getRecordIconText()?> </div> <?php $thumbnail = ob_get_contents(); ?> <?php ob_end_clean(); ?> diff --git a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml index aab0e1066fe754dc457492d881c3a0d6ab2abd0f..d6edbf31147404a0e6ef590d9cebf01b682b780e 100644 --- a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml +++ b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml @@ -13,7 +13,7 @@ $thumbnail = false; $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('result'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover?> </div> <?php $thumbnail = ob_get_contents(); ?> diff --git a/themes/finc/templates/RecordDriver/SolrAI/core.phtml b/themes/finc/templates/RecordDriver/SolrAI/core.phtml index 0898ed1578e797ae1b186b1740baca75b825e075..8ff58d1fdd303d8224c46529e7c1677cd7e804fb 100644 --- a/themes/finc/templates/RecordDriver/SolrAI/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrAI/core.phtml @@ -10,7 +10,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml index 0b8dc222334495369c4a119078df6840174a8a3f..16be9bd855b86b1155ba70f51928ecab646d9b4d 100644 --- a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml +++ b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml @@ -16,6 +16,7 @@ if ($cover): <?php ob_start(); ?> <div class="media-<?=$thumbnailAlignment?> record-icon"> <?=$this->record($this->driver)->getRecordIcon()?> + <?=$this->record($this->driver)->getRecordIconText()?> </div> <?php $thumbnail = ob_get_contents(); ?> <?php ob_end_clean(); ?> diff --git a/themes/finc/templates/RecordDriver/SolrLido/core.phtml b/themes/finc/templates/RecordDriver/SolrLido/core.phtml index a2022ca6cc31d1e6a11def06b73f0bb14d496719..8eed15270f91375cb0d4162a57c86c12e0e8316d 100644 --- a/themes/finc/templates/RecordDriver/SolrLido/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrLido/core.phtml @@ -30,7 +30,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col"?>"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml index d001340755986b1218c25edf9191fa3004e2a71c..36078b3bbbd57eb88e6a9d5700798696e31f61e5 100644 --- a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml +++ b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml @@ -10,7 +10,7 @@ $preview = $this->record($this->driver)->getPreviews(); ?> <?php if ($QRCode || $cover || $preview): ?> - <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>"> + <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col"> <?php /* Display thumbnail if appropriate: */ ?> <?php if ($cover): ?> <?=$cover?> diff --git a/themes/finc/templates/myresearch/historicloans.phtml b/themes/finc/templates/myresearch/historicloans.phtml index a86d384a051a4aa0efe60ade2da0941780c0f627..44605abc8de8fafa023af8ba0b70903984ef3263 100644 --- a/themes/finc/templates/myresearch/historicloans.phtml +++ b/themes/finc/templates/myresearch/historicloans.phtml @@ -51,7 +51,7 @@ $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover ?> </div> <?php $thumbnail = ob_get_contents(); diff --git a/themes/finc/templates/myresearch/illrequests.phtml b/themes/finc/templates/myresearch/illrequests.phtml index 32f59dd92179d0e9d71eb84692383d431cbdd252..6f87f860b07bdb742a7a115a18a82eabeb1a8a79 100644 --- a/themes/finc/templates/myresearch/illrequests.phtml +++ b/themes/finc/templates/myresearch/illrequests.phtml @@ -66,7 +66,7 @@ $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account'); if ($cover): ob_start(); ?> - <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true"> + <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>"> <?=$cover ?> </div> <?php $thumbnail = ob_get_contents(); ?> diff --git a/themes/finc/templates/record/cover.phtml b/themes/finc/templates/record/cover.phtml index d528c97f6358d0cb62317dc0a7e8e359ddc0ba2b..ccc96247aef93c12b7ba2671726b0028e306ff52 100644 --- a/themes/finc/templates/record/cover.phtml +++ b/themes/finc/templates/record/cover.phtml @@ -3,22 +3,31 @@ <?php /* If you want to load covers in lightbox use .recordcover; the class .nocover prevents nocover images from loading in lightbox or can be used to hide the images */ ?> <?php $alt = $alt ?? $this->transEsc('Cover Image')?> +<?php $coverId = "cover-" . $driver->getUniqueID() . "-" . time(); ?> <?php if ($cover): ?> - <?php if ($this->link): ?><a href="<?=$this->escapeHtmlAttr($this->link)?>" target="_blank" tabindex="-1"><?php endif; ?> - <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" aria-hidden="true"/> - <?php if ($this->link): ?></a><?php endif; ?> + <?php if ($this->link): ?><a id="<?=$coverId?>" href="<?=$this->escapeHtmlAttr($this->link)?>" tabindex="-1" aria-hidden="true"><?php endif; ?> + <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" /> + <?php if ($this->link): ?> + </a> + <script> + registerCoverForModal($('#<?=$coverId?>'), '<?=$this->link?>'); + </script> + <?php endif; ?> <?php elseif ($cover === false): ?> - <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" /> + <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" tabindex="-1" /> <?php else: ?> - <div id="cover-<?=$driver->getUniqueID()?>" class="ajaxcover"> - <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div> - <div class="cover-container"> - <?=$this->render('record/coverReplacement')?> - <a class="coverlink hidden" tabindex="-1"> - <img src onerror="loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#cover-<?=$driver->getUniqueID()?>'))" - <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" /> - </a> - </div> - </div> + <div id="<?=$coverId?>" class="ajaxcover"> + <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div> + <div class="cover-container"> + <?=$this->render('record/coverReplacement')?> + <a class="coverlink hidden" aria-hidden="true" tabindex="-1"> + <img <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" /> + </a> + <script> + loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#<?=$coverId?>')); + </script> + </div> + </div> <?php endif; ?> +<?=$this->record($this->driver)->getRecordIconText()?> <!-- finc: record - cover - END -->