diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini index be6fd603ce9b01c28bcdd32c6fb084df72461362..336c633977e56d3869521d78678d4a0b6cff5afd 100644 --- a/local/config/vufind/config.ini +++ b/local/config/vufind/config.ini @@ -99,7 +99,7 @@ showBookBag = true ; Set the maximum amount of items allowed in the Book Bag - Default is 100 bookBagMaxSize = 20 ; Display bulk items (export, save, etc.) and checkboxes on search result screens? -showBulkOptions = false +showBulkOptions = true ; Should users be allowed to save searches in their accounts? allowSavedSearches = true ; Generator value to display in an HTML header <meta> tag: diff --git a/local/languages/de.ini b/local/languages/de.ini index b9ce710d22e612e56cbf143f87cb22df229c2840..29ae8c90af51aed7880a7919bebfb4fabd72158d 100644 --- a/local/languages/de.ini +++ b/local/languages/de.ini @@ -2041,3 +2041,12 @@ form-button-submit = "Ausgefülltes Formular abschicken" ; #17601 offcanvas-toggler-search-tips = "Suchtipps einblenden" + +; #18019 remove if using VuFind 7.0 +select_item = "Titel auswählen" + +; #17993 +; only for German translation +Email = "Mailen" +Print = "Drucken" +bookbag_email_selected = "Links zu ausgewählten Medien per E-Mail versenden" diff --git a/local/languages/en.ini b/local/languages/en.ini index 791449b2a2f9be5e9712e720fd81d4a2aee980e5..962d249c742cb4d301349c47973d00dd95cf1a62 100644 --- a/local/languages/en.ini +++ b/local/languages/en.ini @@ -2129,3 +2129,6 @@ form-button-submit = "Submit the completed form" ; #17601 offcanvas-toggler-search-tips = "Show search help" + +; #18019 remove if using VuFind 7.0 +select_item = "Select item" \ No newline at end of file diff --git a/module/finc/src/finc/Cover/Loader.php b/module/finc/src/finc/Cover/Loader.php index b67ff8ee24e3f877679eafc1cbee4f2ac09bfb07..672c93a651b7fbe559f76997257c65330d295b72 100644 --- a/module/finc/src/finc/Cover/Loader.php +++ b/module/finc/src/finc/Cover/Loader.php @@ -41,6 +41,8 @@ namespace finc\Cover; */ class Loader extends \VuFind\Cover\Loader { + const EMPTY_IMAGE_CONTENT = 'nothing here'; + /** * Flag denoting the last loaded image was a FailImage * @@ -57,9 +59,26 @@ class Loader extends \VuFind\Cover\Loader public function loadUnavailable() { $this->hasLoadedUnavailable = true; + file_put_contents($this->localFile,self::EMPTY_IMAGE_CONTENT); return parent::loadUnavailable(); } + public function loadImage($settings = []) + { + parent::loadImage($settings); + if ($this->image === self::EMPTY_IMAGE_CONTENT) { + $this->hasLoadedUnavailable = true; + } + } + + public function getImage() + { + if ($this->image === self::EMPTY_IMAGE_CONTENT) { + $this->hasLoadedUnavailable = true; + } + return parent::getImage(); + } + /** * Returns true if the last loaded image was the FailImage * diff --git a/module/finc/src/finc/Cover/Router.php b/module/finc/src/finc/Cover/Router.php index 8a758f27c9f6adb72c488431ee3a4584026c9fb0..5cc789f6855650b7008b42f843917db92cbeaac2 100644 --- a/module/finc/src/finc/Cover/Router.php +++ b/module/finc/src/finc/Cover/Router.php @@ -98,10 +98,8 @@ class Router implements \Zend\Log\LoggerAwareInterface if (!$resolveDynamic) { return null; } - $settings = is_array($thumb) ? array_merge($thumb, ['size' => $size]) - : ['size' => $size]; if ($testLoadImage) { - $this->coverLoader->loadImage($settings); + $this->coverLoader->loadImage(array_merge($thumb, ['size' => $size])); if ($this->coverLoader->hasLoadedUnavailable()) { return false; } diff --git a/themes/bootstrap3/templates/record/checkbox.phtml b/themes/bootstrap3/templates/record/checkbox.phtml index 7c37bb0ab2482b8e6e321128dd30ed6fc4f77ac6..750c00fea0667df5b8b9cead6dba29d2097fd554 100644 --- a/themes/bootstrap3/templates/record/checkbox.phtml +++ b/themes/bootstrap3/templates/record/checkbox.phtml @@ -1,5 +1,5 @@ <label class="record-checkbox hidden-print"> - <input class="checkbox-select-item" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->id) ?>"<?php if(isset($this->formAttr)): ?> form="<?=$this->formAttr ?>"<?php endif; ?>/> + <input class="checkbox-select-item" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->id)?>"<?php if(isset($this->formAttr)): ?> form="<?=$this->formAttr ?>"<?php endif; ?>/> <span class="checkbox-icon"></span> <?php if (strlen($this->number ?? '') > 0): ?><span class="sr-only"><?=$this->transEsc('result_checkbox_label', ['%%number%%' => $this->number]) ?></span><?php endif; ?> </label> diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss index 5c153ecaaef943a9932ed4c81a5b2bf78bc2db71..6870670f53221c7761a4047a1b77b927fd30dc9a 100644 --- a/themes/finc/scss/compiled.scss +++ b/themes/finc/scss/compiled.scss @@ -2309,9 +2309,11 @@ footer { // MAIN CONTENT - END // SIDEBAR -// Width when offcanvas if off +// Width when offcanvas is off body:not(.offcanvas) .sidebar { - width: 100%; + @media only screen and (max-width: $screen-xs-max) { + width: 100%; + } } //// pull content to right border for sidebar right diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml index 991ba371499a349bff31bede9361361cf666133e..cc628b48a0c4ff22cf1488a09c1c4a77cd1af1cb 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml @@ -37,17 +37,18 @@ if ($cover): <div class="result-body"> <div class="resultItemLine1"> <?php $missing = $this->driver instanceof \VuFind\RecordDriver\Missing; ?> + <?php $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); ?> <?php if ($missing && $this->driver->isCachedRecord()): ?> - <span class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> + <span id="<?=$describedById?>" class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> <p class="alert alert-info"> <?= $this->translate('record_from_cache')?> <?php if ($queryParams = $this->record($this->driver)->getAdvancedSearchQueryParams()): ?> - <br/><a href="<?=$this->url('search-results', [], ['query'=>$queryParams])?>"><?=$this->transEsc('search_cached_record', ['%%title_full%%' => $this->driver->getTitle()])?></a> + <br/><a href="<?=$this->url('search-results', [], ['query' => $queryParams])?>"><?=$this->transEsc('search_cached_record', ['%%title_full%%' => $this->driver->getTitle()])?></a> <?php endif; ?> </p> <?php elseif (!$missing): ?> <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="getFull" data-view="<?=$this->params->getOptions()->getListViewOption() ?>"> - <span class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> + <span id="<?=$describedById?>" class="title"><?=$this->record($this->driver)->getTitleHtml()?></span> </a> <?php endif;?> </div> @@ -200,7 +201,7 @@ if ($cover): <?php if ($isEditable): ?> <i class="fa fa-fw fa-edit" aria-hidden="true"></i> <a href="<?=$this->url('myresearch-edit')?>?id=<?=urlencode($id)?>&source=<?=urlencode($source)?><?php if (null !== $list_id): ?>&list_id=<?=urlencode($list_id)?><?php endif; ?>" - class="edit tool"><?=$this->transEsc('Edit')?></a><br/> + class="edit tool" aria-label="<?=$this->transEsc('Edit').': '.$this->record($this->driver)->getTitleHtml()?>"><?=$this->transEsc('Edit')?></a><br/> <?php /* Use a different delete URL if we're removing from a specific list or the overall favorites: */ $deleteUrl = null === $list_id ? $this->url('myresearch-favorites') @@ -215,7 +216,7 @@ if ($cover): <i class="fa fa-fw fa-trash-o" aria-hidden="true"></i> <a class="dropdown-toggle del-button" id="<?= $dLabel ?>" role="button" data-toggle="dropdown" - href="<?= $deleteUrlGet ?>"> + href="<?= $deleteUrlGet ?>" aria-label="<?=$this->transEsc('Delete').': '.$this->record($this->driver)->getTitleHtml()?>"> <?= $this->transEsc('Delete') ?> </a> <ul class="dropdown-menu" role="menu" aria-labelledby="<?= $dLabel ?>"> diff --git a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml index ac12afe218d6bbb6d573191c4570de887a9b20cd..b21060414fe9f741847bb2c695b19086527eca64 100644 --- a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml +++ b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml @@ -1,12 +1,12 @@ <!-- finc: recordDriver - FincMissing - result-list --> <?php /* this is mostly a copy of finc: recordDriver - DefaultRecord - result-list - it is only used for the print view of FincMissingRecords in bulk mode + it is only used for the print view of FincMissingRecords in bulk mode; + Fixme: Please remove any code we don't need here! - CK */ ?> <?php -/* finc: compare SolrAI/result-list with this one during upgrades! - CK */ $coverDetails = $this->record($this->driver)->getCoverDetails('result-list', 'medium', $this->recordLink()->getUrl($this->driver)); $cover = $coverDetails['html']; $thumbnail = false; @@ -21,7 +21,7 @@ if ($cover): <?php /* Show finc style-based icons; */ ?> <?php elseif ($this->record($this->driver)->showStyleBasedIcons()): ?> <?php ob_start(); ?> - <div class="media-<?=$thumbnailAlignment?> record-icon"> + <div class="media-<?=$thumbnailAlignment?> record-icon missing"> <?=$this->record($this->driver)->getRecordIcon()?> </div> <?php $thumbnail = ob_get_contents(); ?> @@ -38,84 +38,18 @@ if ($cover): <div class="media-body"> <div class="result-body"> <div> - <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> + <?php /* We don't use links for missing records as they would lead nowhere - CK */ ?> + <span href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title getFull" data-view="<?=$this->params->getOptions()->getListViewOption()?>"> <?=$this->record($this->driver)->getTitleHtml()?> - </a> + </span> </div> - <div> - <?php $summAuthors = $this->driver->getPrimaryAuthors(); - if (!empty($summAuthors)): ?> - <?=$this->transEsc('by')?> - <?php $authorCount = count($summAuthors); - foreach ($summAuthors as $i => $summAuthor): ?> - <a href="<?=$this->record($this->driver)->getLink('author', $this->highlight($summAuthor, null, true, false))?>" class="author"><?=$this->highlight($summAuthor)?></a><?=$i + 1 < $authorCount ? ',' : ''?> - <?php endforeach; ?> - <?php endif; ?> - <?php - /* finc-specific from here, #8639, #7345 - CK */ - /* finc-specific: nxt line #8639 - CK */ ?> - <?php $journalTitle = $this->driver->getContainerTitle(); - $summDate = current($this->driver->getPublicationDates()); ?> - <?php if (!empty($journalTitle)): ?> - <?=!empty($summAuthor) ? '<br />' : ''?> - <?=$this->transEsc('Published in')?> - <?php $containerSource = $this->driver->getSourceIdentifier(); ?> - <?php $containerID = $this->driver->getContainerRecordID(); ?> - <?php /* TODO: handle highlighting more elegantly here: */ ?> - <a href="<?=($containerID ? $this->recordLink()->getUrl("$containerSource|$containerID") : $this->record($this->driver)->getLink('journaltitle', str_replace(['{{{{START_HILITE}}}}', '{{{{END_HILITE}}}}'], '', $journalTitle)))?>"><?=$this->highlight($journalTitle) ?></a> - <?php /* finc-specific: nxt line #8639 - CK */ ?> - <?=!empty($summDate) ? ' (' . $this->escapeHtml($summDate) . ')' : ''?> - <?php elseif (!empty($summDate)): ?> - <?=!empty($summAuthor) ? '<br />' : ''?> - <?php /* finc-specific: nxt line #8639 - CK */ ?> - <?=$this->transEsc('Published') . ' ' . $this->escapeHtml($summDate)?> - <?php endif; ?> - <?php $summInCollection = $this->driver->getContainingCollections(); - if (!empty($summInCollection)): ?> - <?php foreach ($summInCollection as $collId => $collText): ?> - <div> - <strong><?=$this->transEsc("in_collection_label")?></strong> - <a class="collectionLinkText" href="<?=$this->url('collection', ['id' => $collId])?>?recordID=<?=urlencode($this->driver->getUniqueID())?>"> - <?=$this->escapeHtml($collText)?> - </a> - </div> - <?php endforeach; ?> - <?php endif; ?> - </div> - <?php $summCallNo = $this->driver->getCallNumber(); - if (!empty($summCallNo)): ?> - <div class="callnumAndLocation"> - <strong><?=$this->transEsc('Call Number')?>:</strong> <?=$this->escapeHtml($summCallNo)?> - </div> - <?php endif; ?> + <?php /* We don't display formats nor previews nor other details for missing records - CK */ ?> - <div class="result-formats"> - <?=$this->record($this->driver)->getFormatList()?> - </div> </div> <div class="result-links hidden-print"> - <?php /* Display qrcode if appropriate: */ ?> - - <?php if ($this->cart()->isActiveInSearch() && $this->params->getOptions()->supportsCart() && $this->cart()->isActive()): ?> - <?=$this->render('record/cart-buttons.phtml', ['id' => $this->driver->getUniqueId(), 'source' => $this->driver->getSourceIdentifier()]);?><br/> - <?php endif; ?> - - <?php if ($this->userlist()->getMode() !== 'disabled'): ?> - <?php if ($this->permission()->allowDisplay('feature.Favorites')): ?> - <?php /* Add to favorites; finc: keep Icon inside link - CK */ ?> - <a href="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" data-lightbox class="save-record result-link-label" data-id="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" title="<?=$this->transEsc('Add to favorites')?>"> - <i class="fa fa-fw fa-star" aria-hidden="true"></i> <span class="hidden-xs hidden-sm"><?=$this->transEsc('Add to favorites')?></span> - </a><br/> - <?php elseif ($block = $this->permission()->getAlternateContent('feature.Favorites')): ?> - <?=$block?> - <?php endif; ?> - <?php /* Saved lists */ ?> - <p class="savedLists alert alert-info hidden"> - <strong><?=$this->transEsc("Saved in")?>:</strong> - </p> - <?php endif; ?> + <?php /* We don't display any interaction buttons for missing records - CK */ ?> <?=$this->driver->supportsCoinsOpenUrl() ? '<span class="Z3988" title="' . $this->escapeHtmlAttr($this->driver->getCoinsOpenUrl()) . '"></span>' : ''?> </div> diff --git a/themes/finc/templates/cart/contents.phtml b/themes/finc/templates/cart/contents.phtml index 2ececda64d0cd0f05fe5eecaf9328bb71a357bbf..1546577216b002f73c576f91678eea424fcd6b8a 100644 --- a/themes/finc/templates/cart/contents.phtml +++ b/themes/finc/templates/cart/contents.phtml @@ -7,7 +7,8 @@ if (!empty($records)): ?> <div class="checkbox"> <label> <?=$this->record($record)->getCheckbox('cart')?> - <a title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>" data-lightbox-ignore><?=$this->escapeHtml($record->getBreadcrumb())?> + <?php $describedById = $record->getSourceIdentifier() . '|' . $record->getUniqueId(); ?> + <a id="<?=$describedById?>" title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>" data-lightbox-ignore><?=$this->escapeHtml($record->getBreadcrumb())?> <?php // finc-specific: Collect citation data: $helper = $this->citation($record); diff --git a/themes/finc/templates/myresearch/checkedout.phtml b/themes/finc/templates/myresearch/checkedout.phtml index a004ba5b0b99714875ad6e6b5e7f3c37da1807ee..94e915df201858d8068ee82e43261344d50ad37c 100644 --- a/themes/finc/templates/myresearch/checkedout.phtml +++ b/themes/finc/templates/myresearch/checkedout.phtml @@ -77,13 +77,14 @@ <?php $i = 0; foreach ($this->transactions as $resource): ?> <?php $ilsDetails = $resource->getExtraDetail('ils_details'); ?> + <?php $describedById = $resource->getSourceIdentifier() . '|' . $resource->getUniqueId(); ?> <div id="record<?=$this->escapeHtmlAttr($resource->getUniqueId())?>" class="result"> <?php if ($this->renewForm): ?> <div class="checkbox"> <?php if (isset($ilsDetails['renewable']) && $ilsDetails['renewable'] && isset($ilsDetails['renew_details'])): ?> <?php $safeId = preg_replace('/[^a-zA-Z0-9]/', '', $ilsDetails['renew_details']); ?> <label> - <input class="checkbox-select-item" type="checkbox" name="renewSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['renew_details'])?>" id="checkbox_<?=$safeId?>" /> + <input class="checkbox-select-item" type="checkbox" name="renewSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['renew_details'])?>" id="checkbox_<?=$safeId?>" aria-describedby="<?=$describedById?>" aria-label="<?=$this->transEsc('select_item')?>" /> </label> <input type="hidden" name="selectAllIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['renew_details'])?>" /> <input type="hidden" name="renewAllIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['renew_details'])?>" /> @@ -116,7 +117,7 @@ if (is_a($resource, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($resource, 'VuFind\\RecordDriver\\Missing')) { $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); - echo '<a href="' . $this->recordLink()->getUrl($resource) . + echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) . '" class="title">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... diff --git a/themes/finc/templates/myresearch/holds.phtml b/themes/finc/templates/myresearch/holds.phtml index a56c24f8d94134a858957ccd987aff1025b45a7e..e145814611680b1ac82e7bdd4ab0e30880333240 100644 --- a/themes/finc/templates/myresearch/holds.phtml +++ b/themes/finc/templates/myresearch/holds.phtml @@ -45,13 +45,14 @@ <?php foreach ($this->recordList as $resource): ?> <?php $iteration++; ?> <?php $ilsDetails = $resource->getExtraDetail('ils_details'); ?> + <?php $describedById = $resource->getSourceIdentifier() . '|' . $resource->getUniqueId(); ?> <div id="record<?=$this->escapeHtmlAttr($resource->getUniqueId()) ?>" class="result"> <?php if ($this->cancelForm && isset($ilsDetails['cancel_details'])): ?> <?php $safeId = preg_replace('/[^a-zA-Z0-9]/', '', $resource->getUniqueId()); ?> <input type="hidden" name="cancelAllIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" /> <div class="checkbox"> <label> - <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" /> + <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" aria-describedby="<?=$describedById?>" aria-label="<?=$this->transEsc('select_item')?>" /> </label> </div> <?php endif; ?> @@ -79,11 +80,11 @@ if (is_a($resource, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($resource, 'VuFind\\RecordDriver\\Missing')) { $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); - echo '<a href="' . $this->recordLink()->getUrl($resource) + echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) . '" class="title">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... - echo '<span class="title">' . $this->escapeHtml($ilsDetails['title']) . '</span>'; + echo '<span class="title" id="' . $describedById . '">' . $this->escapeHtml($ilsDetails['title']) . '</span>'; } else { // Last resort -- indicate that no title could be found. echo $this->transEsc('Title not available'); diff --git a/themes/finc/templates/myresearch/illrequests.phtml b/themes/finc/templates/myresearch/illrequests.phtml index 4fbba305d4d0dede164fcfc960c15ffe3152a89a..7c56bb1e6ce0678f8d0736bfeef7bac0a6874321 100644 --- a/themes/finc/templates/myresearch/illrequests.phtml +++ b/themes/finc/templates/myresearch/illrequests.phtml @@ -46,13 +46,14 @@ <?php foreach ($this->recordList as $resource): ?> <?php $iteration++; ?> <?php $ilsDetails = $resource->getExtraDetail('ils_details'); ?> + <?php $describedById = $resource->getSourceIdentifier() . '|' . $resource->getUniqueId(); ?> <div id="record<?=$this->escapeHtmlAttr($resource->getUniqueId()) ?>" class="result"> <?php if ($this->cancelForm && isset($ilsDetails['cancel_details'])): ?> <?php $safeId = preg_replace('/[^a-zA-Z0-9]/', '', $resource->getUniqueId()); ?> <div class="checkbox"> <input type="hidden" name="cancelAllIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" /> <label> - <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" /> + <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" aria-describedby="<?=$describedById?>" aria-label="<?=$this->transEsc('select_item')?>" /> </label> </div> <?php endif; ?> @@ -80,7 +81,7 @@ if (is_a($resource, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($resource, 'VuFind\\RecordDriver\\Missing')) { $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); - echo '<a href="' . $this->recordLink()->getUrl($resource) + echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) . '" class="title">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... diff --git a/themes/finc/templates/myresearch/storageretrievalrequests.phtml b/themes/finc/templates/myresearch/storageretrievalrequests.phtml index 115894920ccac17fe5a8bedf77c573d44f45e51a..8719b5f71ad15ea416d1fafebba1d604575e5781 100644 --- a/themes/finc/templates/myresearch/storageretrievalrequests.phtml +++ b/themes/finc/templates/myresearch/storageretrievalrequests.phtml @@ -45,13 +45,14 @@ <?php foreach ($this->recordList as $resource): ?> <?php $iteration++; ?> <?php $ilsDetails = $resource->getExtraDetail('ils_details'); ?> + <?php $describedById = $resource->getSourceIdentifier() . '|' . $resource->getUniqueId(); ?> <div id="record<?=$this->escapeHtmlAttr($resource->getUniqueId()) ?>" class="result"> <?php if ($this->cancelForm && isset($ilsDetails['cancel_details'])): ?> <?php $safeId = preg_replace('/[^a-zA-Z0-9]/', '', $resource->getUniqueId()); ?> <div class="checkbox"> <input type="hidden" name="cancelAllIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" /> <label class="pull-left flip"> - <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" /> + <input type="checkbox" name="cancelSelectedIDS[]" value="<?=$this->escapeHtmlAttr($ilsDetails['cancel_details']) ?>" id="checkbox_<?=$safeId?>" aria-describedby="<?=$describedById?>" aria-label="<?=$this->transEsc('select_item')?>" /> </label> </div> <?php endif; ?> @@ -79,7 +80,7 @@ if (is_a($resource, 'VuFind\\RecordDriver\\SolrDefault') && !is_a($resource, 'VuFind\\RecordDriver\\Missing')) { $title = $resource->getTitle(); $title = empty($title) ? $this->transEsc('Title not available') : $this->escapeHtml($title); - echo '<a href="' . $this->recordLink()->getUrl($resource) + echo '<a id="' . $describedById . '" href="' . $this->recordLink()->getUrl($resource) . '" class="title">' . $title . '</a>'; } elseif (isset($ilsDetails['title']) && !empty($ilsDetails['title'])){ // If the record is not available in Solr, perhaps the ILS driver sent us a title we can show... diff --git a/themes/finc/templates/record/checkbox.phtml b/themes/finc/templates/record/checkbox.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4a77b03ba688132f05fb98d9ebb3c5b4e9b4d49d --- /dev/null +++ b/themes/finc/templates/record/checkbox.phtml @@ -0,0 +1,8 @@ +<!-- finc: record - checkbox --> +<label class="record-checkbox hidden-print"> + <input class="checkbox-select-item" type="checkbox" name="ids[]" value="<?=$this->id?>"<?php if(isset($this->formAttr)): ?> form="<?=$this->formAttr ?>"<?php endif; ?> aria-describedby="<?=$this->id?>" aria-label="<?=$this->transEsc('select_item')?>"/> + <span class="checkbox-icon"></span> + <?php if (strlen($this->number ?? '') > 0): ?><span class="sr-only"><?=$this->transEsc('result_checkbox_label', ['%%number%%' => $this->number]) ?></span><?php endif; ?> +</label> +<input type="hidden" name="idsAll[]" value="<?=$this->escapeHtmlAttr($this->id) ?>"<?php if(isset($this->formAttr)): ?> form="<?=$this->formAttr ?>"<?php endif; ?>/> +<!-- finc: record - cart-buttons - END --> diff --git a/themes/finc/templates/search/bulk-action-buttons.phtml b/themes/finc/templates/search/bulk-action-buttons.phtml index 000657184878a36dd55ac105a2e0987fd6dbbdcb..cc40884afe28ff37699faaf0e3e6d1483eb120b3 100644 --- a/themes/finc/templates/search/bulk-action-buttons.phtml +++ b/themes/finc/templates/search/bulk-action-buttons.phtml @@ -12,7 +12,7 @@ <?php if (isset($this->showBulkOptions) && $this->showBulkOptions): ?> <input id="ribbon-email" class="btn btn-transparent" type="submit" name="email" title="<?=$this->transEsc('bookbag_email_selected')?>" value="<?=$this->transEsc('Email')?>"<?php if($this->formAttr):?> form="<?=$this->escapeHtmlAttr($this->formAttr) ?>"<?php endif; ?>/> <?php $exportOptions = $this->export()->getBulkOptions(); if (count($exportOptions) > 0): ?> - <input id="ribbon-export" class="btn btn-transparent" type="submit" name="export" title="<?=$this->transEsc('bookbag_export_selected')?>" value="<?=$this->transEsc('Export')?>"<?php if($this->formAttr):?> form="<?=$this->escapeHtmlAttr($this->formAttr) ?>"<?php endif; ?>/> + <input id="ribbon-export" class="btn btn-transparent" type="submit" name="export" title="<?=$this->transEsc('bookbag_export_selected')?>" value="<?=$this->transEsc('Export')?>"<?php if($this->formAttr):?> form="<?=$this->escapeHtmlAttr($this->formAttr) ?>"<?php endif; ?>/> <?php endif; ?> <input id="ribbon-print" class="btn btn-transparent" type="submit" name="print" title="<?=$this->transEsc('bookbag_print_selected')?>" value="<?=$this->transEsc('Print')?>"<?php if($this->formAttr):?> form="<?=$this->escapeHtmlAttr($this->formAttr) ?>"<?php endif; ?>/> <?php if ($this->userlist()->getMode() !== 'disabled'): ?>