Skip to content
Snippets Groups Projects
Commit 40e10d01 authored by Henrik Askjer's avatar Henrik Askjer
Browse files

Merge branch 'dev' of git.app.uib.no:spraksamlingane/beta.ordbok.uib.no into dev

parents 5e746356 99debf72
No related branches found
No related tags found
No related merge requests found
......@@ -87,10 +87,10 @@ export default {
return this.article.dictionary
},
def_label: function() {
return this.dictionary == 'bob' ? 'Betydning og bruk' : 'Tyding og bruk'
return this.dictionary == 'bm' ? 'Betydning og bruk' : 'Tyding og bruk'
},
example_label: function() {
return this.dictionary == 'bob' ? 'Eksempel' : 'Døme'
return this.dictionary == 'bm' ? 'Eksempel' : 'Døme'
},
sub_articles: function() {
return this.article.body.definitions.reduce((acc, val) => acc.concat(find_sub_articles(val)), []).sort((s1, s2) => s1.lemmas[0].localeCompare(s2.lemmas[0]))
......
......@@ -38,8 +38,8 @@ export default {
computed: {
dict_label: function() { // TODO: reuse code used in header
return {
'bob': 'Fra bokmålsordboka',
'nob': 'Frå nynorskordboka'
'bm': 'Fra bokmålsordboka',
'nn': 'Frå nynorskordboka'
}[this.article.dictionary] + ': ' + this.article.lemmas[0].lemma || ''
},
webShareApiSupported() {
......
......@@ -31,7 +31,10 @@
<span class="search-hit">
{{data.item.label}}
</span>
<span v-if="get_lang()=='bob,nob'">({{{"b": "bm", "n": "nn", "bn": "bm, nn" }[data.item.lang] || ["søker...","ingen treff","avansert søk"][data.item.search]}})</span>
<span v-if="(get_lang()=='bm,nn')">
({{{"b": "bm", "n": "nn", "bn": "bm, nn" }[data.item.lang] ||
["søker...","ingen treff","avansert søk"][data.item.search]}})
</span>
</template>
<template slot="no-data">
<div></div>
......
......@@ -47,7 +47,7 @@ var Definition = {
return this.body.elements.filter(el => el.type_ == 'compound_list')
},
example_header: function() {
return this.dictionary == 'bob' ? 'Eksempel' : 'Døme'
return this.dictionary == 'bm' ? 'Eksempel' : 'Døme'
},
subdefs: function() {
// filtrerer bort definisjoner som bare inneholder underartikler
......
......@@ -6,21 +6,21 @@
<template v-slot:label tabindex="1">
<span aria-label="Vis resultat i begge ordbøkene eller bruk radioknapp for bokmålsordboka eller radioknapp for nynorskordboka">VIS</span>
</template>
<v-radio value="bob,nob" color="primary">
<v-radio value="bm,nn" color="primary">
<template v-slot:label>
<span>
begge{{$vuetify.breakpoint.smAndDown ? '' : ' ordbøkene'}}
</span>
</template>
</v-radio>
<v-radio value="bob" color="primary">
<v-radio value="bm" color="primary">
<template v-slot:label>
<span>
{{$vuetify.breakpoint.xs ? 'bm' : 'bokmål (bm)'}}
</span>
</template>
</v-radio>
<v-radio value="nob" color="primary">
<v-radio value="nn" color="primary">
<template v-slot:label>
<span>
{{$vuetify.breakpoint.xs ? 'nn' : 'nynorsk (nn)'}}
......@@ -44,7 +44,7 @@
<div id="single_article_container" v-if="article">
<div class="return_to_results" v-if="search_results && search_results.length">
<router-link :to="article.source" @click.native="return_to_results()">
<v-icon class="nav_arrow">arrow_left</v-icon>Tilbake til {{article.dictionary == 'bob' ? 'søkeresultater' : 'søkjeresultat'}}
<v-icon class="nav_arrow">arrow_left</v-icon>Tilbake til {{article.dictionary == 'bm' ? 'søkeresultater' : 'søkjeresultat'}}
</router-link>
</div>
<Article :key="article_key" :article="article" @article-click="article_link_click" />
......@@ -79,9 +79,9 @@ import { setup } from 'axios-cache-adapter'
const SEARCH_ENDPOINT = process.env.VUE_APP_SEARCH_ENDPOINT
const ARTICLE_ENDPOINT= process.env.VUE_APP_ARTICLE_ENDPOINT
const dicts = {'nob': 'Nynorskorboka',
'bob': 'Bokmålsordboka',
'bob,nob': 'ordbøkene'}
const dicts = {'nn': 'Nynorskorboka',
'bm': 'Bokmålsordboka',
'bm,nn': 'ordbøkene'}
const api = setup({
baseURL: SEARCH_ENDPOINT,
......@@ -105,9 +105,12 @@ function navigate_to_article(self, source) {
if ((self.$route.query.nocache || '').toLowerCase() == 'true') {
config.headers.cachebuster = Date.now()
}*/
axios.get(ARTICLE_ENDPOINT + self.$route.params.lang + '/article/' + self.$route.params.id + ".json")
const lang = self.$route.params.lang
axios.get(ARTICLE_ENDPOINT + lang + '/article/' + self.$route.params.id + ".json")
.then(function(response){
self.article = Object.assign(response.data, {'dictionary': self.$route.params.lang, results: self.search_results})
self.article = Object.assign(response.data, {'dictionary': lang, results: self.search_results})
self.search_results = []
self.error = null
})
......@@ -116,8 +119,8 @@ function navigate_to_article(self, source) {
self.error = ["Vi har ingen artikkel med id " + self.$route.params.id]
} else {
self.error = []
if (self.lang !== 'bob') self.error.push(`Noko gjekk gale...`)
if (self.lang !== 'nob') self.error.push(`Noe gikk galt...`)
if (self.lang !== 'bm') self.error.push(`Noko gjekk gale...`)
if (self.lang !== 'nn') self.error.push(`Noe gikk galt...`)
}
})
.then(function(response){
......@@ -187,18 +190,18 @@ function navigate_to_query(self, word) {
if (! self.search_results.length) {
if (query.match) {
self.error = []
if (self.lang !== 'bob') {
if (self.lang !== 'bm') {
self.error.push(`Ordet «${query.match}» finst ikkje i Nynorskordboka. Bruk knappen «bokmål (bm)» om du har søkt i feil ordbok.`)
}
if (self.lang !== 'nob') self.error.push(`Ordet «${query.match}» finnes ikke i Bokmålsordboka. Bruk knappen «nynorsk (nn)» om du har søkt i feil ordbok.`)
if (self.lang !== 'nn') self.error.push(`Ordet «${query.match}» finnes ikke i Bokmålsordboka. Bruk knappen «nynorsk (nn)» om du har søkt i feil ordbok.`)
} else {
self.error = [`Søk på «${query.q}» gir ingen treff i ${dicts[self.lang]}.`]
// If not advanced search
if (query.search != 2) self.error[0] += " Søk med * eller % dersom du er usikker på skrivemåten. Søketips kan du finne i «OM ORDBØKENE»."
if (self.lang == "bob") self.error[0] += ` Bruk knappen «nynorsk (nn)» om du har søkt i feil ordbok.`
if (self.lang == "nob") self.error[0] += ` Bruk knappen «bokmål (bm)» om du har søkt i feil ordbok.`
if (self.lang == "bm") self.error[0] += ` Bruk knappen «nynorsk (nn)» om du har søkt i feil ordbok.`
if (self.lang == "nn") self.error[0] += ` Bruk knappen «bokmål (bm)» om du har søkt i feil ordbok.`
}
}
......@@ -230,7 +233,7 @@ export default {
return {
article_key: 0,
search_results: [],
lang: 'bob,nob',
lang: 'bm,nn',
waiting_for_articles: true,
waiting_for_metadata: true,
article: null,
......@@ -258,12 +261,12 @@ export default {
this.search_results = []
if (error.response) {
this.error = []
if (this.lang !== 'bob') this.error.push(`Noko gjekk gale på serversida`)
if (this.lang !== 'nob') this.error.push(`Noe gikk galt på serversiden"`)
if (this.lang !== 'bm') this.error.push(`Noko gjekk gale på serversida`)
if (this.lang !== 'nn') this.error.push(`Noe gikk galt på serversiden"`)
} else {
this.error = []
if (this.lang !== 'bob') this.error.push(`Nettverksproblem, prøv igjen`)
if (this.lang !== 'nob') this.error.push(`Nettverksproblemer, prøv igjen`)
if (this.lang !== 'bm') this.error.push(`Nettverksproblem, prøv igjen`)
if (this.lang !== 'nn') this.error.push(`Nettverksproblemer, prøv igjen`)
}
},
select_result: function (event) {
......@@ -316,16 +319,15 @@ export default {
},
mounted: function(){
let self = this
this.lang = 'bob,nob'
this.lang = 'bm,nn'
Promise.all([
axios.get(ARTICLE_ENDPOINT + 'bob/concepts.json').then(function(response){
axios.get(ARTICLE_ENDPOINT + 'bm/concepts.json').then(function(response){
let concepts = response.data.concepts
entities.bob = concepts
entities.bm = concepts
}),
axios.get(ARTICLE_ENDPOINT + 'nob/concepts.json').then(function(response){
axios.get(ARTICLE_ENDPOINT + 'nn/concepts.json').then(function(response){
let concepts = response.data.concepts
entities.nob = concepts
entities.nn = concepts
})
]).then(function(_) {
self.waiting_for_metadata = false
......@@ -341,23 +343,23 @@ export default {
navigate_to_article(self, self.$route.path)
}
else {
self.lang = self.$route.params.lang || 'bob,nob'
self.lang = self.$route.params.lang || self.lang
self.waiting_for_articles = false
history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang, error: self.error}, '')
}
// words of the month
axios.get(ARTICLE_ENDPOINT + 'bob/article/5607.json').then(function(response){
self.monthly_bm = Object.assign(response.data, {dictionary: 'bob'})
axios.get(ARTICLE_ENDPOINT + 'bm/article/5607.json').then(function(response){
self.monthly_bm = Object.assign(response.data, {dictionary: 'bm'})
})
axios.get(ARTICLE_ENDPOINT + 'nob/article/78569.json').then(function(response){
self.monthly_nn = Object.assign(response.data, {dictionary: 'nob'})
axios.get(ARTICLE_ENDPOINT + 'nn/article/78569.json').then(function(response){
self.monthly_nn = Object.assign(response.data, {dictionary: 'nn'})
})
}).catch(function(_){
self.error = []
if (self.lang !== 'bob') self.error.push(`Eit nettverksproblem hindra lasting av sida. Prøv å laste sida på nytt`)
if (self.lang !== 'nob') self.error.push(`Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt`)
if (self.lang !== 'bm') self.error.push(`Eit nettverksproblem hindra lasting av sida. Prøv å laste sida på nytt`)
if (self.lang !== 'nn') self.error.push(`Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt`)
self.waiting_for_metadata = false
self.waiting_for_articles = false
})
......@@ -431,11 +433,11 @@ div.monthly.sm, div.monthly.xs {
flex-direction: column;
}
div.monthly article.bob .dict-label::before {
div.monthly article.bm .dict-label::before {
content: "fra ";
}
div.monthly article.nob .dict-label::before {
div.monthly article.nn .dict-label::before {
content: "frå ";
}
......
......@@ -59,12 +59,12 @@ export default {
return a_forms.join(', ')
},
inflect_tooltip: function() {
return this.dictionary == 'bob' ? 'Klikk for å se bøyinger' : 'Klikk for å sjå bøyingar'
return this.dictionary == 'bm' ? 'Klikk for å se bøyinger' : 'Klikk for å sjå bøyingar'
},
dict_label: function() {
return {
'bob': 'bokmålsordboka',
'nob': 'nynorskordboka'
'bm': 'bokmålsordboka',
'nn': 'nynorskordboka'
}[this.dictionary] || ''
},
group_list: function() {
......@@ -84,7 +84,7 @@ export default {
)
},
lemmas_with_word_class_and_lang: function() {
return this.lemmas.map(lemma => Object.assign({language: this.dictionary == 'bob' ? 'nob' : 'nno',
return this.lemmas.map(lemma => Object.assign({language: this.dictionary == 'bm' ? 'nob' : 'nno',
word_class: lemma.paradigm_info[0].inflection_group.split('_')[0]}, lemma))
},
inflected: function() {
......@@ -191,15 +191,15 @@ article h2.secondary_header {
margin-right: 3px;
}
.header details > summary.bob:before {
.header details > summary.bm:before {
content: "Se ";
}
.header details > summary.nob:before {
.header details > summary.nn:before {
content: "Sjå ";
}
.header details[open] > summary.bob:before, details[open] > summary.nob:before {
.header details[open] > summary.bm:before, details[open] > summary.nn:before {
content: "Skjul ";
}
......
<template>
<section id="search_results">
<div class="flex-container" :class="$vuetify.breakpoint.name">
<ul class="hits" v-if="results_bob.length">
<li class="article_container" v-for="(result, index) in results_bob" :key="index + results_hash" tabindex="-1">
<ul class="hits" v-if="results_bm.length">
<li class="article_container" v-for="(result, index) in results_bm" :key="index + results_hash" tabindex="-1">
<Article
:article="result"
@article-click="article_link_click"
......@@ -10,8 +10,8 @@
</Article>
</li>
</ul>
<ul class="hits" v-if="results_nob.length">
<li class="article_container" v-for="(result, index) in results_nob" :key="index + results_hash" tabindex="-1">
<ul class="hits" v-if="results_nn.length">
<li class="article_container" v-for="(result, index) in results_nn" :key="index + results_hash" tabindex="-1">
<Article
:article="result"
@article-click="article_link_click"
......@@ -36,17 +36,17 @@ export default {
computed: {
right_col_class_name: function() {
if (this.$vuetify.breakpoint.mdAndUp) {
if (this.results_bob.length) {
if (this.results_bm.length) {
return 'righ_hand_column'
}
}
return ''
},
results_bob: function(){
return this.hits.filter(hit => hit.dictionary == 'bob')
results_bm: function(){
return this.hits.filter(hit => hit.dictionary == 'bm')
},
results_nob: function(){
return this.hits.filter(hit => hit.dictionary == 'nob')
results_nn: function(){
return this.hits.filter(hit => hit.dictionary == 'nn')
},
results_hash: function(){
return this.hits.reduce((hash, hit) => (hash + hit.article_id) % 10000, 0)
......
......@@ -37,7 +37,7 @@ const router = new VueRouter({
component: DictionaryView,
children: [
{
path: ':lang',
path: ':lang(bm|nn|bm,nn)',
children: [
{
name: 'word',
......@@ -52,6 +52,25 @@ const router = new VueRouter({
path: 'search/:query'
}
]
},
{
path: 'bob/*',
redirect: to => {
return "bm/" + to.params.pathMatch
}
},
{
path: 'nob/*',
redirect: to => {
console.log(to)
return "nn/" + to.params.pathMatch
}
},
{
path: 'bob,nob/*',
redirect: to => {
return "bm,nn/" + to.params.pathMatch
}
}
]
}
......
var entities = {
'bob': {
'bm': {
},
'nob': {
'nn': {
}
}
......
var mapping = {
"bob": {
"bm": {
"NOUN": "substantiv",
"VERB": "verb",
"ADJ": "adjektiv",
......@@ -21,7 +21,7 @@ var mapping = {
"Neuter": "intetkjønn",
"Uninfl": "ubøyelig"
},
"nob": {
"nn": {
"NOUN": "substantiv",
"VERB": "verb",
"ADJ": "adjektiv",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment