diff --git a/local/languages/de.ini b/local/languages/de.ini index c0d4b806d03fb7b45848a9c0ca6d142764a1f556..7980b367eac6fd631c9e651c394ed37fdf924281 100644 --- a/local/languages/de.ini +++ b/local/languages/de.ini @@ -199,6 +199,7 @@ Ask a Librarian = "Frage an die Bibliothek" Audience = Zielpublikum Author = "Person / Institution" Available = Verfügbar +Available_Via = Verfügbar über Available Stock = Verfügbarer Bestand Awards = Auszeichnungen Back = Zurück @@ -359,6 +360,7 @@ Library = Bibliothek Library Regulations = Benutzungsordnung Limit To = "Begrenze auf" Link to = "Zur Webseite" +Link-to = "Link zum" List of new items = "Neuerwerbungsliste" Local Holdings = "Lokale Bestände" Local Subjects = "Lokale Schlagwörter" diff --git a/local/languages/en.ini b/local/languages/en.ini index e478706d99d221ea711ea4b766014e6c03389357..ee7ffca62fa7102466cbe0188d26d3b006558ec4 100644 --- a/local/languages/en.ini +++ b/local/languages/en.ini @@ -337,6 +337,7 @@ Audience = Audience # Author = Creator Author = "Author / Corporation" Available = Available +Available_Via = available via Awards = Awards Back = Back Backtrace = Backtrace @@ -460,6 +461,7 @@ Library = Library Library Catalog Username = "Library Catalog User Name" Limit To = "Limit to" Link to = "To Website" +Link-to = "Link to" List = List Loading = Loading Located = Located diff --git a/module/finc/src/finc/AjaxHandler/GetRecordCover.php b/module/finc/src/finc/AjaxHandler/GetRecordCover.php index 8c6333421a14867637c08a4ce3308124bf026029..5555926d6e7b9e235edacc918c4df16b42c444c3 100644 --- a/module/finc/src/finc/AjaxHandler/GetRecordCover.php +++ b/module/finc/src/finc/AjaxHandler/GetRecordCover.php @@ -139,13 +139,6 @@ class GetRecordCover extends AbstractBase implements AjaxHandlerInterface return ($url || !$this->renderer || !$this->useCoverFallbacksOnFail) ? $this->formatResponse(compact('url', 'size')) - : $this->formatResponse( - [ - 'html' => $this->renderer->render( - 'record/coverReplacement', - ['driver' => $record] - ) - ] - ); + : [""]; } } diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php index 76d54ff47774e4edb3c8f5c8f82ab59a5658c935..c7117e000c20d159e2d93575dfd7706d58610e12 100644 --- a/module/finc/src/finc/View/Helper/Root/Record.php +++ b/module/finc/src/finc/View/Helper/Root/Record.php @@ -160,22 +160,24 @@ class Record extends \VuFind\View\Helper\Root\Record /** * Render a (list of) record icons. * - * @param string $tpl Template for record icon, default: record-icon.phtml - * @param bool $addText Return additional access / format. Default: true + * @param string $tpl phtml for record icon, default: record-icon.phtml + * @param bool $setIconText Return additional access / format. Default: true * * @return string */ public function getRecordIcon( string $tpl = 'record-icon', - bool $addText = true + bool $setIconText = true ): string { $iconType = $this->getRecordIconType(); $iconClass = $this->getRecordIconClass($iconType); return $this->renderTemplate( $tpl . '.phtml', - ['iconClass' => $this->baseIconClass . ' ' . $iconClass] - ) - . ($addText ? $this->getRecordIconText($iconType, $iconClass) : ''); + [ + 'iconClass' => $this->baseIconClass . ' ' . $iconClass, + 'setIconText' => $setIconText + ] + ); } /** diff --git a/themes/finc/js/covers.js b/themes/finc/js/covers.js index 3eb309ef70b9765951f99e163e3185e1084aca2d..7c0771977116dbf3aa7fd9648c982760b2accbbf 100644 --- a/themes/finc/js/covers.js +++ b/themes/finc/js/covers.js @@ -33,8 +33,18 @@ function loadCoverByElement(data, element) { container.children().not('img').hide(); anchor.show(); anchor.attr('href', response.data.url); - anchor.removeClass('hidden'); // finc specific - registerCoverForModal(anchor, response.data.url); // finc specific + // finc specific + registerCoverForModal(anchor, response.data.url); + if (data.ariaLabel) { + anchor.attr('aria-label', data.ariaLabel); + } + if (data.alt) { + img.attr('alt', data.alt); + } + anchor.attr('tabindex', 0); + anchor.removeClass('hidden'); + anchor.removeAttr('aria-hidden'); + // finc specific - END } else { img.remove(); if (typeof response.data.html !== 'undefined') { diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml index 997f06c9234e5b470499e6b3e5a94b43f87a4786..ea9258f886e259c331a5fd198867d10f8c105873 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml @@ -2,7 +2,7 @@ <?php if ($iconClass): ?> <div class="access-icon hidden-print"> <span> - <?=$this->translate("($iconClass)")?> + <span class="sr-only"><?=$this->translate("Available_Via")?></span> <?=$this->translate("($iconClass)")?> </span> </div> <?php endif; ?> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml index 6cd2fbe8890f1db9ea1319f2a1045ebbf1a6a977..c79e96867483e6a986f4cfab5ecbb40955963b42 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml @@ -4,5 +4,8 @@ <i aria-hidden="true" class="<?=$iconClass?>"></i> <?php /* separate access text from icon - moved to cover.phtml */ ?> </span> + <?php if ($this->setIconText ?? true): ?> + <?=$this->record($this->driver)->getRecordIconText()?> + <?php endif; ?> <?php endif; ?> <!-- finc: recordDriver - DefaultRecord - record-icon - END --> \ No newline at end of file diff --git a/themes/finc/templates/record/cover.phtml b/themes/finc/templates/record/cover.phtml index 63b6241951f925b51482ac0eee112e7bade88bd4..ff34f1c1bd441e8f3c0a9abcc6390b4ffb0dc517 100644 --- a/themes/finc/templates/record/cover.phtml +++ b/themes/finc/templates/record/cover.phtml @@ -5,13 +5,16 @@ 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 $id = $driver->getUniqueID() ?> +<?php $title = $this->transEsc($driver->getTitle()); ?> + <?php if ($id) { - $coverId = "cover-$id-" . time(); + $coverId = "cover-$id-" . time(); } else { - $cover = false; + $cover = false; } ?> <?php if ($cover): ?> + <?php /* load cover directly... */ ?> <?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): ?> @@ -23,16 +26,27 @@ <?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" tabindex="-1" /> <?php else: ?> + <?php /* load cover by ajax */ ?> <div id="<?=$coverId?>" class="ajaxcover"> <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div> <div class="cover-container"> + <?=$this->setIconText = false;?> <?=$this->render('record/coverReplacement')?> <a class="coverlink hidden" href="javascript:" aria-hidden="true" tabindex="-1"> <img <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" src="<?=$this->imageLink('noCover2.gif')?>" alt="<?=$this->escapeHtmlAttr($alt); ?>" /> + <script> + loadCoverByElement( + { + recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', + alt:'<?=$this->transEsc('Cover Image')?> <?=$this->transEsc("of")?> <?=$title?>', + ariaLabel:'<?=$this->transEsc("Link-to")?> <?=$this->transEsc('Cover Image')?> <?=$this->transEsc("of")?> <?=$title?>', + size:'<?=$this->escapeHtmlAttr($size)?>', + source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>' + }, + $('#<?=$coverId?>') + ); + </script> </a> - <script> - loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#<?=$coverId?>')); - </script> </div> </div> <?php endif; ?> diff --git a/themes/finc/templates/record/coverReplacement.phtml b/themes/finc/templates/record/coverReplacement.phtml index d26b8d7bcb980e7a9d10d36e7f64b1cf126c1a32..4662e1b083a775660904a3f50b12e5df084023bd 100644 --- a/themes/finc/templates/record/coverReplacement.phtml +++ b/themes/finc/templates/record/coverReplacement.phtml @@ -1 +1 @@ -<?= $this->record($this->driver)->getRecordIcon('record-icon', false) ?> \ No newline at end of file +<?= $this->record($this->driver)->getRecordIcon('record-icon', $this->setIconText ?? true) ?> \ No newline at end of file