From b5a7397f2f6e6da916177cd9f795693f32906146 Mon Sep 17 00:00:00 2001 From: "Henrik.Askjer" <henrik.askjer@uib.no> Date: Mon, 30 Aug 2021 13:10:55 +0200 Subject: [PATCH] Replace suggestion api --- src/components/Autocomplete.vue | 55 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/src/components/Autocomplete.vue b/src/components/Autocomplete.vue index 4140eb8..5ea7c13 100644 --- a/src/components/Autocomplete.vue +++ b/src/components/Autocomplete.vue @@ -27,8 +27,8 @@ > <template v-slot:item="data"> <span class="search-hit"> - {{data.item.label}} - </span> + {{data.item.label}} + </span> ({{data.item.lang? data.item.lang[1] ? "bm, nn" : {"bob": "bm", "nob": "nn"}[data.item.lang[0]] : 'fritekstsøk'}}) </template> </v-combobox> @@ -37,7 +37,6 @@ <script> import axios from "axios" - import debounce from "debounce" export default { props: { @@ -50,30 +49,6 @@ search: null, select: null, suggesting: null, - debounced: debounce(function(q, self) { - self.loading = true - return axios.get(self.endpoint + 'suggest?', { params: {q: q, - dict: self.$parent.lang, - n: 9}} ) - .then( - function(response) { - if (self.$refs.autocomplete.searchInput == q & self.suggesting) { - - let hits = [] - response.data.forEach((item, i) => { - let hit = {q: q, match: item[0], label: item[0], articles: []} - hit.lang = item[1] - hits.push(hit) - - }); - // whitespace necessary because duplicates aren't allowed in the dropdown - hits.push({q: q, label: q + ' '}) - self.items = hits - } - - self.loading = false - }) - }, 100) } }, watch: { @@ -115,7 +90,7 @@ this.items = [] this.suggesting = false }, 1) - + } // If blurred else { @@ -136,7 +111,29 @@ this.items[0] = {q: q, label: q} } } - this.debounced(q, this) + let self = this + axios.get(self.endpoint + 'suggest?', { params: {q: q, + dict: self.$parent.lang, + n: 9}} ) + .then( + function(response) { + if (self.$refs.autocomplete.searchInput == q & self.suggesting) { + + let hits = [] + response.data.forEach((item, i) => { + let hit = {q: q, match: item[0], label: item[0], articles: []} + hit.lang = item[1] + hits.push(hit) + + }); + // whitespace necessary because duplicates aren't allowed in the dropdown + hits.push({q: q, label: q + ' '}) + self.items = hits + } + + self.loading = false + }) + }, }, -- GitLab