From e5bb1ed5a0478f0377fd0357dd4e019340eccde6 Mon Sep 17 00:00:00 2001 From: Robert Lange <robert.lange@uni-leipzig.de> Date: Tue, 18 May 2021 12:55:31 +0200 Subject: [PATCH] refs #19811 [finc] adv. search: * set focus on first input in advanced search form ** after page has been loaded ** BUT focus on next / new input when user adds new search field * reset limit for results on default on clear-button ** set variable for javascript in /search/advanced/limit.phtml --- themes/finc/js/advanced_search.js | 17 ++++++++++++----- .../finc/templates/search/advanced/limit.phtml | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/themes/finc/js/advanced_search.js b/themes/finc/js/advanced_search.js index 6ea46964445..daafce424e0 100644 --- a/themes/finc/js/advanced_search.js +++ b/themes/finc/js/advanced_search.js @@ -3,7 +3,7 @@ var nextGroup = 0; var groupLength = []; -function addSearch(group, _fieldValues) { +function addSearch(group, _fieldValues, isUser) { var fieldValues = _fieldValues || {}; // Build the new search var inputID = group + '_' + groupLength[group]; @@ -53,7 +53,11 @@ function addSearch(group, _fieldValues) { groupLength[group]++; // #17985 finc barf - $newSearch.find('input.form-control').focus(); + if (isUser) { + $newSearch.find('input.form-control').focus(); + } else { + $("#group" + group).find('input.form-control').first().focus(); + } return false; } @@ -99,7 +103,7 @@ function addGroup(_firstTerm, _firstField, _join) { .removeClass('hidden'); $newGroup.find('.add_search_link') .attr('id', 'add_search_link_' + nextGroup) - .attr('onClick', 'return addSearch(' + nextGroup + ')') + .attr('onClick', 'return addSearch(' + nextGroup + ', {}, true)') .removeClass('hidden'); $newGroup.find('.adv-group-close') .attr('onClick', 'return deleteGroup(' + nextGroup + ')'); @@ -115,7 +119,7 @@ function addGroup(_firstTerm, _firstField, _join) { $('#groupPlaceHolder').before($newGroup); // Populate groupLength[nextGroup] = 0; - addSearch(nextGroup, {term: firstTerm, field: firstField}); + addSearch(nextGroup, {term: firstTerm, field: firstField}, false); // Show join menu if (nextGroup > 0) { $('#groupJoin').removeClass('hidden'); @@ -145,7 +149,10 @@ function deleteGroup(group) { $(document).ready(function advSearchReady() { $('.clear-btn').click(function clearBtnClick() { $('input[type="text"]').val(''); - $("option:selected").removeAttr("selected"); + $('select').not('#limit').find('option:selected').removeAttr('selected'); + if (typeof defaultLimit !== 'undefined') { + $("#limit").val(defaultLimit); + } $("#illustrated_-1").click(); }); }); diff --git a/themes/finc/templates/search/advanced/limit.phtml b/themes/finc/templates/search/advanced/limit.phtml index 1143d26934e..c8f5ad0eaeb 100644 --- a/themes/finc/templates/search/advanced/limit.phtml +++ b/themes/finc/templates/search/advanced/limit.phtml @@ -6,6 +6,7 @@ // If a previous limit was used, make that the default; otherwise, use the "default default" $lastLimit = $this->searchMemory()->getLastLimit($this->options->getSearchClassId()); $defaultLimit = empty($lastLimit) ? $this->options->getDefaultLimit() : $lastLimit; + $this->headScript()->appendScript("var defaultLimit = $defaultLimit"); ?> <?php if (count($limitList) > 1): ?> <fieldset class="limits"> -- GitLab