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