diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/App.vue | 6 | ||||
-rw-r--r-- | src/components/SearchInput.vue | 12 |
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> |
16 | export default { | 16 | export 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; |