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 d8197cc8..16d29bd1 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 17ff7d1c..0df2320a 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