diff --git a/module/VuFind/src/VuFind/Controller/AjaxController.php b/module/VuFind/src/VuFind/Controller/AjaxController.php index 9068565c5dec43421cf976f0408545e8aa32b61d..47813d4948b94cea9792e0d6ece27dbb4cd7bf7f 100644 --- a/module/VuFind/src/VuFind/Controller/AjaxController.php +++ b/module/VuFind/src/VuFind/Controller/AjaxController.php @@ -1115,6 +1115,7 @@ class AjaxController extends AbstractBase { $this->writeSession(); // avoid session write timing bug $openUrl = $this->params()->fromQuery('openurl', ''); + $searchClassId = $this->params()->fromQuery('searchClassId', ''); $config = $this->getConfig(); $resolverType = isset($config->OpenURL->resolver) @@ -1169,7 +1170,8 @@ class AjaxController extends AbstractBase // Render the links using the view: $view = [ 'openUrlBase' => $base, 'openUrl' => $openUrl, 'print' => $print, - 'electronic' => $electronic, 'services' => $services + 'electronic' => $electronic, 'services' => $services, + 'searchClassId' => $searchClassId ]; $html = $this->getViewRenderer()->render('ajax/resolverLinks.phtml', $view); diff --git a/themes/bootstrap3/js/openurl.js b/themes/bootstrap3/js/openurl.js index 3594d138048f2cf20c8e807549b1594ae58fa32b..638c6373b5a6875910ce3a1b912706381e24ec5a 100644 --- a/themes/bootstrap3/js/openurl.js +++ b/themes/bootstrap3/js/openurl.js @@ -1,8 +1,8 @@ /*global extractClassParams, VuFind */ -function loadResolverLinks($target, openUrl) { +function loadResolverLinks($target, openUrl, searchClassId) { $target.addClass('ajax_availability'); - var url = VuFind.getPath() + '/AJAX/JSON?' + $.param({method:'getResolverLinks',openurl:openUrl}); + var url = VuFind.getPath() + '/AJAX/JSON?' + $.param({method:'getResolverLinks',openurl:openUrl,searchClassId:searchClassId}); $.ajax({ dataType: 'json', url: url @@ -31,7 +31,7 @@ function embedOpenUrlLinks(element) { // If the target is already visible, a previous click has populated it; // don't waste time doing redundant work. if (target.hasClass('hidden')) { - loadResolverLinks(target.removeClass('hidden'), openUrl); + loadResolverLinks(target.removeClass('hidden'), openUrl, element.data('search-class-id')); } } diff --git a/themes/bootstrap3/templates/Helpers/openurl.phtml b/themes/bootstrap3/templates/Helpers/openurl.phtml index 74e6f3926148df443aaa55a61280cdcbea6d38e0..5cf61e1b5c450ffaa31b7fb7c8f9b9e9e0dafd30 100644 --- a/themes/bootstrap3/templates/Helpers/openurl.phtml +++ b/themes/bootstrap3/templates/Helpers/openurl.phtml @@ -16,7 +16,7 @@ <span class="openUrlControls<? if ($this->openUrlEmbed): ?> openUrlEmbed<? if ($this->openUrlEmbedAutoLoad): ?> openUrlEmbedAutoLoad<? endif; ?><? endif; ?>"> <? if (!$this->openUrlImageBasedSrc || $this->openUrlImageBasedMode == 'both'): ?> - <a href="<?=$this->escapeHtmlAttr($this->openUrlBase . '?' . $this->openUrl)?>"<?=$class?>> + <a href="<?=$this->escapeHtmlAttr($this->openUrlBase . '?' . $this->openUrl)?>"<?=$class?> data-search-class-id="<?=$this->escapeHtmlAttr($this->searchClassId) ?>"> <? /* put the openUrl here in a span (COinS almost) so we can retrieve it later */ ?> <span title="<?=$this->escapeHtmlAttr($this->openUrl)?>" class="openUrl"></span> <? if ($this->openUrlGraphic): ?>