Fix enter key in search results

This commit is contained in:
Jaifroid 2025-08-16 19:36:11 +03:00
parent 6a333b2e18
commit c636224494
2 changed files with 11 additions and 2 deletions

View File

@ -248,7 +248,7 @@
<a class="btn btn-primary" style="display:none;" title="Forward" id="btnForwardAlt"><span class="glyphicon glyphicon-circle-arrow-right"></span></a> <a class="btn btn-primary" style="display:none;" title="Forward" id="btnForwardAlt"><span class="glyphicon glyphicon-circle-arrow-right"></span></a>
</span> </span>
<input type="search" id="prefix" placeholder="Search [.*] or space key..." <input type="search" id="prefix" placeholder="Search [.*] or space key..."
class="form-control" style="z-index: 0; width: 99.5%" /> class="form-control" style="z-index: 0; width: 99.5%" autocomplete="off" />
<span class="input-group-btn"> <span class="input-group-btn">
<a class="btn btn-primary" title="Article Search" id="searchArticles" style="display:none;"><span class="glyphicon glyphicon-book"></span></a> <a class="btn btn-primary" title="Article Search" id="searchArticles" style="display:none;"><span class="glyphicon glyphicon-book"></span></a>
<a class="btn btn-primary" title="Ctrl-Shift-F or Alt-F: Find and highlight text in article..." id="findText"><span class="glyphicon glyphicon-search"></span></a> <a class="btn btn-primary" title="Ctrl-Shift-F or Alt-F: Find and highlight text in article..." id="findText"><span class="glyphicon glyphicon-search"></span></a>

View File

@ -264,6 +264,10 @@ prefix.addEventListener('keydown', function (e) {
// User pressed Down arrow, Up arrow, Left arrow, Right arrow, or Enter // User pressed Down arrow, Up arrow, Left arrow, Right arrow, or Enter
// This is needed to prevent processing in the keyup event : https://stackoverflow.com/questions/9951274 // This is needed to prevent processing in the keyup event : https://stackoverflow.com/questions/9951274
keyPressHandled = true; keyPressHandled = true;
if (/Enter/.test(e.key)) {
// Don't refresh the page if Enter is pressed even before any search results are selected
e.preventDefault();
}
var activeElement = document.querySelector('#articleList .hover') || document.querySelector('#articleList a'); var activeElement = document.querySelector('#articleList .hover') || document.querySelector('#articleList a');
if (!activeElement) return; if (!activeElement) return;
// If user presses Enter or Right arrow, read the dirEntry or open snippet // If user presses Enter or Right arrow, read the dirEntry or open snippet
@ -276,6 +280,7 @@ prefix.addEventListener('keydown', function (e) {
// Open the snippet container // Open the snippet container
uiUtil.toggleSnippet(activeElement); uiUtil.toggleSnippet(activeElement);
} }
// Allow left/right arrow keys to move around in search text box when not opening snippet
return; return;
} }
e.preventDefault(); e.preventDefault();
@ -5087,8 +5092,12 @@ function populateListOfArticles (dirEntryArray, reportingSearch) {
if (dirEntry.snippet) { if (dirEntry.snippet) {
dirEntryTitle = '<strong>' + dirEntryTitle + '</strong>'; dirEntryTitle = '<strong>' + dirEntryTitle + '</strong>';
} }
let classAttribute = 'list-group-item';
if (i === 0) {
classAttribute += ' hover';
}
articleListDivHtml += '<a href="#" dirEntryId="' + dirEntryStringId + articleListDivHtml += '<a href="#" dirEntryId="' + dirEntryStringId +
'" class="list-group-item" role="option">' + (reportingSearch.searchUrlIndex ? dirEntry.namespace + '/' + dirEntry.url : '' + dirEntryTitle) + '</a>'; '" class="' + classAttribute + '" role="option">' + (reportingSearch.searchUrlIndex ? dirEntry.namespace + '/' + dirEntry.url : '' + dirEntryTitle) + '</a>';
} }
// Set the innerHTML once // Set the innerHTML once