From db6178d42c758e89ad34b7c65ef5b7908f3d8759 Mon Sep 17 00:00:00 2001
From: Robert Lange <robert.lange@uni-leipzig.de>
Date: Mon, 8 Nov 2021 14:58:31 +0100
Subject: [PATCH] refs #20379 [finc] restore focus after deleting of records

---
 themes/finc/js/lightbox.js                                | 5 ++++-
 .../templates/RecordDriver/DefaultRecord/list-entry.phtml | 8 +++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/themes/finc/js/lightbox.js b/themes/finc/js/lightbox.js
index ae7297e5b0f..8cdfbe87fe9 100644
--- a/themes/finc/js/lightbox.js
+++ b/themes/finc/js/lightbox.js
@@ -436,6 +436,9 @@ VuFind.register('lightbox', function Lightbox() {
       }
     }
   }
+  function setOrigin(origin) {
+    _origin = origin;
+  }
   function onKeydown(e) {
     if (event.keyCode === 27) { // esc
       close();
@@ -493,7 +496,6 @@ VuFind.register('lightbox', function Lightbox() {
       });
     });
   }
-
   function reset() {
     _html(VuFind.translate('loading') + '...');
     _originalUrl = false;
@@ -550,6 +552,7 @@ VuFind.register('lightbox', function Lightbox() {
     render: render,
     // Reset
     reset: reset,
+    setOrigin: setOrigin,
     // Init
     init: init
   };
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
index 377e7ddf6a3..a816ef7b34e 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/list-entry.phtml
@@ -224,7 +224,13 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('list'
             <ul class="dropdown-menu" role="menu" aria-labelledby="<?= $dLabel ?>">
               <li>
                 <?php /* #17711 give user feedback and dont reload page after deleting */ ?>
-                <a href="javascript:document.getElementById('<?=$dLabel?>').focus();" title="<?= $this->transEsc('confirm_delete_brief') ?>" onClick="$.post(
+                <a href="javascript:document.getElementById('<?=$dLabel?>').focus();" title="<?= $this->transEsc('confirm_delete_brief') ?>" onClick="
+                  let next = $(this).closest('.result.ajaxItem').next('.result.ajaxItem').find('.del-button');
+                  if (next.length === 0) {
+                    next = $('[id^=delete_list_items_]').first();
+                  }
+                  VuFind.lightbox.setOrigin(next);
+                  $.post(
                   '<?= $deleteUrl ?>',
                   {
                     'delete':'<?= $this->escapeJs($id) ?>',
-- 
GitLab