From cfcd41b6855f2ee3abb7eaa44536fd487d9ebc30 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ole=20Volds=C3=A6ter?= <ole.voldsater@uib.no>
Date: Thu, 20 Feb 2020 13:46:55 +0100
Subject: [PATCH] =?UTF-8?q?tospr=C3=A5klig=20igjen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/App.vue                      | 63 ++++++++++++++++++--------------
 src/components/SearchResults.vue |  2 +-
 2 files changed, 37 insertions(+), 28 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index d8197cc..16d29bd 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -3,9 +3,13 @@
     <img alt="Vue logo" src="./assets/logo.png">
     <header>
       <autocomplete :debounceTime="50" :auto-select="true" :search="search" :get-result-value="result_view" @submit="select_result" placeholder="søk..."></autocomplete>
+      <input type="radio" id="radio_nob" value="nob" v-model="path_lang">
+      <label for="radio_nob">Bokmål</label>
+      <input type="radio" id="radio_nno" value="nno" v-model="path_lang">
+      <label for="radio_nno">Nynorsk</label>
     </header>
     <img id="spinner" :class="waiting ? 'show' : 'hide'" src="./assets/spinner.gif" alt="Venter på innhold" />
-    <SearchResults :hits="search_results" :lang="query_lang" />
+    <SearchResults :hits="search_results" :lang="path_lang" />
     <Article :article="article" />
   </main>
 </template>
@@ -17,40 +21,20 @@ import SearchResults from './components/SearchResults.vue'
 import Autocomplete from '@trevoreyre/autocomplete-vue'
 import '@trevoreyre/autocomplete-vue/dist/style.css'
 
-var api_endpoint = 'https://ordbok-dev.aws.uib.no/cache/article/nob'
+var api_endpoint = 'https://ordbok-dev.aws.uib.no/cache/article'
 
 export default {
   name: 'app',
   data: function() {
     let params = new URLSearchParams(window.location.search.substring(1))
-    let path = window.location.href.split("/")
+    let path = window.location.pathname.split("/")
     return {
       article_id: parseInt(path.pop()),
       search_query: params.get('q'),
-      query_lang: params.get('lang'),
-      path_lang: path.pop(),
+      path_lang: path.pop() || 'nob',
       search_results: [],
       waiting: true,
       article: {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}},
-      search: function(q) {
-        return new Promise(resolve => {
-          return axios.post(api_endpoint + '/_search/',
-                            {
-                                "suggest": {
-                                  "suggest" : {
-                                    "prefix" : q,
-                                    "completion" : {
-                                      "field" : "suggest"
-                                    }
-                                  }
-                                }
-                              }).then(function(response) {
-                                let hits = response.data.suggest.suggest[0].options
-                                if(q.length) hits = hits.concat({q: q})
-                                resolve(hits)
-                              })
-        })
-      },
       result_view: function(result) {
         if (result._source)
           return result._source.lemmas.map(x => x.lemma).join(', ')
@@ -59,6 +43,31 @@ export default {
       }
     }
   },
+  computed: {
+    search: function() {
+      console.log(this)
+      let self = this
+      return function(q) {
+                return new Promise(resolve => {
+                  return axios.post(api_endpoint + '/' + self.path_lang + '/_search/',
+                                    {
+                                        "suggest": {
+                                          "suggest" : {
+                                            "prefix" : q,
+                                            "completion" : {
+                                              "field" : "suggest"
+                                            }
+                                          }
+                                        }
+                                      }).then(function(response) {
+                                        let hits = response.data.suggest.suggest[0].options
+                                        if(q.length) hits = hits.concat({q: q})
+                                        resolve(hits)
+                                      })
+                                    })
+        }
+      }
+    },
   components: {
     Article,
     Autocomplete,
@@ -70,14 +79,14 @@ export default {
         this.search_results = []
         this.article = event._source
       }else{
-        window.location.href="/search?q=" + event.q
+        window.location.href = '/' + this.path_lang + "/search?q=" + event.q
       }
     }
   },
   mounted: function(){
     var self = this;
     if(this.search_query) {
-      axios.get(api_endpoint + '/_search?q=' + self.search_query)
+      axios.get(api_endpoint + '/' + self.path_lang + '/_search?q=' + self.search_query)
       .then(function(response){
         self.search_results = response.data.hits.hits
         self.waiting = false
@@ -85,7 +94,7 @@ export default {
     }
     else if(this.article_id)
     {
-      axios.get(api_endpoint + '/' + self.article_id)
+      axios.get(api_endpoint + '/' + self.path_lang + '/' + self.article_id)
       .then(function(response){
         self.article = response.data._source
         self.waiting = false
diff --git a/src/components/SearchResults.vue b/src/components/SearchResults.vue
index 17ff7d1..0df2320 100644
--- a/src/components/SearchResults.vue
+++ b/src/components/SearchResults.vue
@@ -3,7 +3,7 @@
     <h2 v-if="hits.length">Søkeresultater</h2>
     <ul>
       <li v-for="(result, index) in extended_results" :key="index">
-        <a :href="'/' +  result.id">{{result.label}}</a> ({{result.classification}})
+        <a :href="'/' + lang + '/' + result.id">{{result.label}}</a> ({{result.classification}})
       </li>
     </ul>
   </section>
-- 
GitLab