Newer
Older
<main id="app">
<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="lang">
<input type="radio" id="radio_nno" value="nno" v-model="lang">
</header>
<img id="spinner" :class="waiting ? 'show' : 'hide'" src="./assets/spinner.gif" alt="Venter på innhold" />
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'
window.onpopstate = function (event) {
if (event.state) {
app.__vue__._data.article = event.state
}
}

Ole Voldsæter
committed
article: {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}},
return result._source.lemmas.map(x => x.lemma).join(', ')
computed: {
search: function() {
let self = this
return function(q) {
return new Promise(resolve => {
return axios.post(api_endpoint + '/' + self.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)
})
})
}
}
},
},
methods: {
select_result: function(event) {
if(event._source){
this.search_results = []
this.article = event._source
window.location.href = '/' + this.lang + "/search?q=" + event.q
if(this.$route.query.q) {
axios.get(api_endpoint + '/' + self.lang + '/_search?q=' + self.$route.query.q)
self.search_results = response.data.hits.hits
else if(this.$route.params.id){
axios.get(api_endpoint + '/' + self.lang + '/' + self.$route.params.id)
self.article = response.data._source
}
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #2c3e50;
margin-top: 60px;
.show {
display: block;
}
.hide {
display: none;
}
.autocomplete {
width: 25em;
}