hubl/src/js/hd-app.js

45 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-05-13 03:06:10 +00:00
document.addEventListener("DOMContentLoaded", function(event) {
// Constants declaration
2018-05-14 17:20:00 +00:00
const navBar = document.querySelector("#navbar");
const searchBar = navBar.querySelector("#search-bar");
const searchView = document.querySelector("#search-view");
const searchInput = searchBar.querySelector("#search-input");
2018-05-13 03:06:10 +00:00
// Shortcuts
document.querySelector("body").addEventListener("keydown", function(e) {
// CTRL + K triggers the search feature
if ((e.keyCode == 75 || e.keyCode == 80) && (e.ctrlKey === true || e.metaKey === true)) {
e.preventDefault();
e.stopPropagation();
2018-05-14 19:16:04 +00:00
openSearchBar();
2018-05-13 03:06:10 +00:00
}
else if (e.keyCode == 27 && navBar.classList.contains("search-mode")) {
2018-05-14 19:16:04 +00:00
closeSearchBar();
2018-05-13 03:06:10 +00:00
}
});
// Open the search bar via touch / click
searchBar.querySelector("#search-icon").addEventListener("click", openSearchBar);
function openSearchBar(e) {
2018-05-13 03:06:10 +00:00
navBar.classList.add("search-mode");
searchBar.querySelector("#search-input").focus();
searchView.classList.add("search-mode");
}
searchBar.querySelector("#close-search-icon").addEventListener("click", closeSearchBar);
function closeSearchBar(e) {
navBar.classList.remove("search-mode");
searchView.classList.remove("search-mode");
}
2018-05-14 17:20:00 +00:00
// Synchronizes the search input with the <ldp-form>s
searchInput.addEventListener("keyup", (e) => {
searchView.querySelectorAll("ldp-form input[type=text]").forEach((el) => {
el.value = searchInput.value;
});
});
2018-05-13 03:06:10 +00:00
});