From ce95baabc8f739dc8ae5ebc41e769a24edabb22e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Maa=C3=9F?= <mathias.maass@uni-leipzig.de>
Date: Mon, 12 Jun 2023 12:33:00 +0200
Subject: [PATCH] refs #24001 [finc] catch resolver networtk error in
 GetResolverLinks handler

* fix showing 'no_resolver_links' message
---
 module/finc/src/finc/AjaxHandler/GetResolverLinks.php | 7 ++++++-
 themes/finc/templates/RecordTab/holdingsils.phtml     | 2 +-
 themes/finc/templates/ajax/resolverLinks.phtml        | 8 +++++++-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/module/finc/src/finc/AjaxHandler/GetResolverLinks.php b/module/finc/src/finc/AjaxHandler/GetResolverLinks.php
index d4aec391512..bd9534b19f3 100644
--- a/module/finc/src/finc/AjaxHandler/GetResolverLinks.php
+++ b/module/finc/src/finc/AjaxHandler/GetResolverLinks.php
@@ -128,7 +128,12 @@ class GetResolverLinks extends \VuFind\AjaxHandler\GetResolverLinks
                     $this->resolverConfig->$resolver->resolver_cache
                 );
             }
-            $result = $resolverObject->fetchLinks($openUrl);
+
+            try {
+                $result = $resolverObject->fetchLinks($openUrl);
+            } catch (\Exception $e) {
+                $result = [];
+            }
 
             // Sort the returned links into categories based on service type:
             $electronic = $print = $services = $unknown = [];
diff --git a/themes/finc/templates/RecordTab/holdingsils.phtml b/themes/finc/templates/RecordTab/holdingsils.phtml
index c18460def0f..d61bd33af00 100644
--- a/themes/finc/templates/RecordTab/holdingsils.phtml
+++ b/themes/finc/templates/RecordTab/holdingsils.phtml
@@ -89,7 +89,7 @@ if (!empty($holdingTitleHold)): ?>
 
 <?php /* Finc #24001 */ ?>
 <?php if ($openUrlActive && !empty($fallbackUrls)): ?>
-  <span id="urlsHideable" style="display: none">
+  <span id="urlsHideable" class="hidden">
     <?php foreach ($fallbackUrls as $current): ?>
       <?php /* finc: use external link view helper #19650 */ ?>
       <?= $this->externalLink($this->escapeHtmlAttr($this->proxyUrl($current['url'])), $current['desc'] ?? $current['url']) ?><br>
diff --git a/themes/finc/templates/ajax/resolverLinks.phtml b/themes/finc/templates/ajax/resolverLinks.phtml
index b9723e78459..7385f281a36 100644
--- a/themes/finc/templates/ajax/resolverLinks.phtml
+++ b/themes/finc/templates/ajax/resolverLinks.phtml
@@ -57,7 +57,13 @@
   <?php /* finc-specific change #9274 - CK */ ?>
   <?php if ($noResolverContent): // no content to show, so tell the user?>
     <span id="noResolverContentMessage" class="hidden"><?=$this->resolver . ': ' . $this->translate('no_resolver_links')?></span>
-    <script>if ($('#urlsHideable').length) { $('#urlsHideable').show(); } else { $('#noResolverContentMessage').show(); }</script>
+    <script>
+      if ($('#urlsHideable').length > 0) { 
+        $('#urlsHideable').removeClass('hidden').show();
+      } else { 
+        $('#noResolverContentMessage').removeClass('hidden').show(); 
+      }
+    </script>
   <?php endif; ?>
   <?php /* finc-specific change #9274 - END */ ?>
 </div>
-- 
GitLab