From e74d7998fdb94e736e715ff3c916e9c2c7549270 Mon Sep 17 00:00:00 2001 From: Robin Scholtes Date: Tue, 18 Apr 2023 22:28:19 +1200 Subject: [PATCH] [#181] resetOperations on escape key --- src/web/Manager.mjs | 2 +- src/web/waiters/OperationsWaiter.mjs | 31 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/web/Manager.mjs b/src/web/Manager.mjs index 6ef8bd53..7e7e118c 100755 --- a/src/web/Manager.mjs +++ b/src/web/Manager.mjs @@ -145,7 +145,7 @@ class Manager { // Operations this.addMultiEventListener("#search", "keyup paste search click", this.ops.searchOperations, this.ops); this.addDynamicListener(".op-list li.operation", "dblclick", this.ops.operationDblclick, this.ops); - document.getElementById("reset-operations").addEventListener("click", this.ops.resetOperationsClick.bind(this.ops)); + document.getElementById("reset-operations").addEventListener("click", this.ops.resetOperations.bind(this.ops)); document.getElementById("edit-favourites").addEventListener("click", this.ops.editFavouritesClick.bind(this.ops)); document.getElementById("save-favourites").addEventListener("click", this.ops.saveFavouritesClick.bind(this.ops)); document.getElementById("reset-favourites").addEventListener("click", this.ops.resetFavouritesClick.bind(this.ops)); diff --git a/src/web/waiters/OperationsWaiter.mjs b/src/web/waiters/OperationsWaiter.mjs index d64ea8b2..c1abf6e5 100755 --- a/src/web/waiters/OperationsWaiter.mjs +++ b/src/web/waiters/OperationsWaiter.mjs @@ -35,7 +35,7 @@ class OperationsWaiter { * @param {boolean} isVisible * */ - isVisible( elm, isVisible ){ + setVisibility( elm, isVisible ){ if ( isVisible ) { if ( elm.classList.contains("hidden")) { elm.classList.remove("hidden"); @@ -61,8 +61,8 @@ class OperationsWaiter { hideOperations = document.getElementById("reset-operations"); searchResults = document.getElementById("search-results" ); - this.isVisible(categories, true); - this.isVisible(hideOperations, true); + this.setVisibility(categories, true); + this.setVisibility(hideOperations, true); } if (e.type === "keyup"){ @@ -71,15 +71,19 @@ class OperationsWaiter { searchResults = document.getElementById("search-results" ); if ( e.target.value.length === 0 ) { - this.isVisible(categories, true); - this.isVisible(hideOperations, true); + this.setVisibility(categories, true); + this.setVisibility(hideOperations, true); } else { - this.isVisible(categories, false ); - this.isVisible(searchResults, true ); - this.isVisible(hideOperations, true ); + this.setVisibility(categories, false ); + this.setVisibility(searchResults, true ); + this.setVisibility(hideOperations, true ); } } + if (e.type === "keyup" && e.keyCode === 27 ) { // Escape + this.resetOperations(); + } + if (e.type === "search" || e.keyCode === 13) { // Search or Return e.preventDefault(); ops = document.querySelectorAll("#search-results li"); @@ -313,9 +317,10 @@ class OperationsWaiter { /** - * Hide any operation lists ( #categories or #search-results ) and the close button on click + * Hide any operation lists ( #categories or #search-results ) and the reset-operations button itself, + * clear any search input */ - resetOperationsClick(){ + resetOperations(){ let search, categories, searchResults, resetOperations; search = document.getElementById("search"); @@ -328,9 +333,9 @@ class OperationsWaiter { search.value = ''; } - this.isVisible(categories, false ); - this.isVisible(searchResults, false ); - this.isVisible(resetOperations, false ); + this.setVisibility(categories, false ); + this.setVisibility(searchResults, false ); + this.setVisibility(resetOperations, false ); } /**