aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorBastien Wirtz <bastien.wirtz@gmail.com>2021-10-25 04:46:58 -0700
committerGitHub <noreply@github.com>2021-10-25 04:46:58 -0700
commitcf33747f4272baf124b99af9ed8efcca07d1d6b9 (patch)
tree3baf349e66ca008b80c1f52d6b2bba7b325b592e /src
parent46c9a513e5159797a46f5199abfbfa457c548688 (diff)
parent446e78d2ab78b19a621e4a66297f774de1041c01 (diff)
downloadhomer-cf33747f4272baf124b99af9ed8efcca07d1d6b9.tar.gz
homer-cf33747f4272baf124b99af9ed8efcca07d1d6b9.tar.zst
homer-cf33747f4272baf124b99af9ed8efcca07d1d6b9.zip
Merge pull request #274 from robinschneider/hotkey
Added custom hotkey support
Diffstat (limited to 'src')
-rw-r--r--src/App.vue6
-rw-r--r--src/components/SearchInput.vue12
2 files changed, 15 insertions, 3 deletions
diff --git a/src/App.vue b/src/App.vue
index c263c8a..5c62a7f 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -41,6 +41,7 @@
41 41
42 <SearchInput 42 <SearchInput
43 class="navbar-item is-inline-block-mobile" 43 class="navbar-item is-inline-block-mobile"
44 :hotkey=searchHotkey()
44 @input="filterServices" 45 @input="filterServices"
45 @search-focus="showMenu = true" 46 @search-focus="showMenu = true"
46 @search-open="navigateToFirstService" 47 @search-open="navigateToFirstService"
@@ -167,6 +168,11 @@ export default {
167 window.onhashchange = this.buildDashboard; 168 window.onhashchange = this.buildDashboard;
168 }, 169 },
169 methods: { 170 methods: {
171 searchHotkey() {
172 if (this.config.hotkey && this.config.hotkey.search) {
173 return this.config.hotkey.search;
174 }
175 },
170 buildDashboard: async function () { 176 buildDashboard: async function () {
171 const defaults = jsyaml.load(defaultConfig); 177 const defaults = jsyaml.load(defaultConfig);
172 let config; 178 let config;
diff --git a/src/components/SearchInput.vue b/src/components/SearchInput.vue
index 40c5a1d..586ff71 100644
--- a/src/components/SearchInput.vue
+++ b/src/components/SearchInput.vue
@@ -15,10 +15,16 @@
15<script> 15<script>
16export default { 16export default {
17 name: "SearchInput", 17 name: "SearchInput",
18 props: ["value"], 18 props: {
19 value: String,
20 hotkey: {
21 type: String,
22 default: "/"
23 }
24 },
19 mounted() { 25 mounted() {
20 this._keyListener = function (event) { 26 this._keyListener = function (event) {
21 if (event.key === "/") { 27 if (event.key === this.hotkey) {
22 event.preventDefault(); 28 event.preventDefault();
23 this.focus(); 29 this.focus();
24 } 30 }
@@ -28,7 +34,7 @@ export default {
28 }; 34 };
29 document.addEventListener("keydown", this._keyListener.bind(this)); 35 document.addEventListener("keydown", this._keyListener.bind(this));
30 36
31 // fill seach from get parameter. 37 // fill search from get parameter.
32 const search = new URLSearchParams(window.location.search).get("search"); 38 const search = new URLSearchParams(window.location.search).get("search");
33 if (search) { 39 if (search) {
34 this.$refs.search.value = search; 40 this.$refs.search.value = search;