#12 Registered Shift + F for global search
This commit is contained in:
parent
cae43ec998
commit
5230daaf17
|
@ -1,3 +1,5 @@
|
||||||
|
const quickSearchID = 'ea-quickSearch';
|
||||||
|
|
||||||
runAfterLoad(() => {
|
runAfterLoad(() => {
|
||||||
initSearch();
|
initSearch();
|
||||||
}, ".*");
|
}, ".*");
|
||||||
|
@ -13,7 +15,9 @@ function initSearch() {
|
||||||
quickSearchElement.type = 'text';
|
quickSearchElement.type = 'text';
|
||||||
quickSearchElement.classList.add('ng-pristine', 'ng-valid', 'ng-empty', 'ng-touched');
|
quickSearchElement.classList.add('ng-pristine', 'ng-valid', 'ng-empty', 'ng-touched');
|
||||||
quickSearchElement.placeholder = 'Quick Search (Shift + F)';
|
quickSearchElement.placeholder = 'Quick Search (Shift + F)';
|
||||||
quickSearchElement.addEventListener('keydown', event => handleQuickSearch(event, quickSearchElement));
|
quickSearchElement.id = quickSearchID;
|
||||||
|
// register Enter keybinding
|
||||||
|
quickSearchElement.addEventListener('keypress', event => handleQuickSearch(event));
|
||||||
|
|
||||||
entry.appendChild(quickSearchElement);
|
entry.appendChild(quickSearchElement);
|
||||||
|
|
||||||
|
@ -24,14 +28,26 @@ function initSearch() {
|
||||||
|
|
||||||
let menu = document.getElementById('materialize-menu-dropdown');
|
let menu = document.getElementById('materialize-menu-dropdown');
|
||||||
menu.insertAdjacentElement('beforeend', entry);
|
menu.insertAdjacentElement('beforeend', entry);
|
||||||
|
|
||||||
|
// register focus hotkey
|
||||||
|
document.addEventListener('keypress', event => handleSearchForShiftF(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleQuickSearch(event, quickSearchElement) {
|
function handleQuickSearch(event) {
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
let url = new URL(window.location.origin)
|
let url = new URL(window.location.origin)
|
||||||
url.pathname = '/search';
|
url.pathname = '/search';
|
||||||
url.searchParams.append('q', quickSearchElement.value);
|
url.searchParams.append('q', document.getElementById(quickSearchID).value);
|
||||||
|
|
||||||
window.location.href = url.href;
|
window.location.href = url.href;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleSearchForShiftF(event) {
|
||||||
|
if (isShiftPressed) {
|
||||||
|
if (event.key === 'F') {
|
||||||
|
event.preventDefault();
|
||||||
|
document.getElementById(quickSearchID).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue