aboutsummaryrefslogtreecommitdiffhomepage
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
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
-rw-r--r--docs/configuration.md3
-rw-r--r--src/App.vue6
-rw-r--r--src/components/SearchInput.vue12
3 files changed, 18 insertions, 3 deletions
diff --git a/docs/configuration.md b/docs/configuration.md
index 50b5bd5..e2b5506 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -19,6 +19,9 @@ logo: "assets/logo.png"
19# icon: "fas fa-skull-crossbones" 19# icon: "fas fa-skull-crossbones"
20 20
21header: true # Set to false to hide the header 21header: true # Set to false to hide the header
22# Optional: Different hotkey for search, defaults to "/"
23# hotkey:
24# search: "Shift"
22footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it. 25footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it.
23 26
24columns: "3" # "auto" or number (must be a factor of 12: 1, 2, 3, 4, 6, 12) 27columns: "3" # "auto" or number (must be a factor of 12: 1, 2, 3, 4, 6, 12)
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;