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