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

fix "articles?" error handling

parent dcf6558b
No related branches found
No related tags found
No related merge requests found
...@@ -38,8 +38,7 @@ ...@@ -38,8 +38,7 @@
</div> </div>
<div class="error" v-if="error"> <div class="error" v-if="error">
<h1>Ingen treff</h1> <h1>Ingen treff</h1>
<p v-if="error[0]">{{error[0]}}</p> <p>{{error}}</p>
<p v-if="error[1]">{{error[1]}}</p>
</div> </div>
</main> </main>
...@@ -74,6 +73,11 @@ const api = setup({ ...@@ -74,6 +73,11 @@ const api = setup({
}) })
function QueryException(params) {
this.name = "QueryException"
this.params = params
}
function navigate_to_article(self, source) { function navigate_to_article(self, source) {
self.article = null self.article = null
self.waiting_for_articles = true self.waiting_for_articles = true
...@@ -89,11 +93,9 @@ function navigate_to_article(self, source) { ...@@ -89,11 +93,9 @@ function navigate_to_article(self, source) {
.catch(function(error){ .catch(function(error){
console.log(error) console.log(error)
if (error.response && error.response.status == 404) { if (error.response && error.response.status == 404) {
self.error = ["Vi har ingen artikkel med id " + self.$route.params.id] self.error = self.$t('error.no_article', {id: self.$route.params.id})
} else { } else {
self.error = [] self.error = self.$t('error.generic')
if (self.lang !== 'bm') self.error.push(`Noko gjekk gale...`)
if (self.lang !== 'nn') self.error.push(`Noe gikk galt...`)
} }
}) })
.then(function(response){ .then(function(response){
...@@ -141,31 +143,11 @@ function load_articles(self, query, offset, n, dict) { ...@@ -141,31 +143,11 @@ function load_articles(self, query, offset, n, dict) {
}) })
// TODO: Error handling must be moved // TODO: Error handling must be moved
self.article = null self.article = null
if (!results.length && offset == 0) {
if (query.match) {
self.error = []
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 !== '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 == "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.`
}
}
else {
self.error = null
}
self.search_results[dict] = results self.search_results[dict] = results
}) })
.catch(error => { .catch(error => {
self.waiting_for_articles = false self.waiting_for_articles = false
self.connection_error(error) self.error_message(error)
}) })
} }
else { else {
...@@ -178,7 +160,6 @@ function load_articles(self, query, offset, n, dict) { ...@@ -178,7 +160,6 @@ function load_articles(self, query, offset, n, dict) {
function navigate_to_query(self, word) { function navigate_to_query(self, word) {
self.waiting_for_articles = true self.waiting_for_articles = true
self.max_scroll = window.window.innerHeight
let query = self.event ? self.event : {q: word} let query = self.event ? self.event : {q: word}
self.query = query self.query = query
...@@ -192,6 +173,20 @@ function navigate_to_query(self, word) { ...@@ -192,6 +173,20 @@ function navigate_to_query(self, word) {
api.get('articles?', {params}).then((response) => { api.get('articles?', {params}).then((response) => {
self.article_info = response.data self.article_info = response.data
self.search_results = {} self.search_results = {}
let total = response.data.articles.bm ? response.data.articles.bm.length : 0
total += response.data.articles.nn ? response.data.articles.nn.length : 0
console.log("total", total)
if (total == 0) {
throw new QueryException(query)
}
else {
self.error = null
}
Promise.all([ Promise.all([
load_articles(self, query, offset, self.perPage, "bm"), load_articles(self, query, offset, self.perPage, "bm"),
load_articles(self, query, offset, self.perPage, "nn") load_articles(self, query, offset, self.perPage, "nn")
...@@ -213,7 +208,8 @@ function navigate_to_query(self, word) { ...@@ -213,7 +208,8 @@ function navigate_to_query(self, word) {
}).catch(error =>{ }).catch(error =>{
self.waiting_for_articles = false self.waiting_for_articles = false
self.connection_error(error) console.log(error)
self.error_message(error)
}) })
} }
...@@ -266,21 +262,30 @@ export default { ...@@ -266,21 +262,30 @@ export default {
return total return total
} }
}, },
connection_error: function(error) {
console.log(error) error_message: function(error) {
this.search_results = {} this.search_results = {}
if (error.response) { console.log(error)
this.error = [] if (error instanceof QueryException) {
if (this.lang !== 'bm') this.error.push(`Noko gjekk gale på serversida`) if (error.params.match) {
if (this.lang !== 'nn') this.error.push(`Noe gikk galt på serversiden"`) // If a suggestion from the dropdown isn't found. The message should be revised
this.error = this.$t('error.no_word', {q: error.params.match, dict: this.$t('dicts_inline.'+this.lang)})
} else {
this.error = this.$t('error.search_error', {q: error.params.q, dict: this.$t('dicts_inline.'+this.lang)})
if (this.lang != "bm,nn") this.error += "\r\n"+this.$t('error.other_dict', {otherDict: this.$t('inline_dict.'+this.lang == "bm"? "nn" : "bm")})
if (error.params.search != 2) this.error += "\r\n"+this.$t('error.search_advice')
}
}
else if (error.message == "Network Error") {
this.error = this.$t('error.network')
}
else if (error.response) {
console.log(error.response.status)
this.error = this.$t('error.server', {code: error.response.status})
} else { } else {
this.error = [] this.error = this.$t('error.generic')
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) { select_result: function (event) {
...@@ -468,8 +473,7 @@ export default { ...@@ -468,8 +473,7 @@ export default {
} }
}).catch(function(error){ }).catch(function(error){
console.log(error) self.error = null
self.error = []
if (self.lang !== 'bm') self.error.push(`Eit nettverksproblem hindra lasting av sida. Prøv å laste sida 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`) 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_metadata = false
......
...@@ -5,6 +5,11 @@ ...@@ -5,6 +5,11 @@
"bm": "bokmålsordboka (bm)", "bm": "bokmålsordboka (bm)",
"bm,nn": "begge ordbøkene" "bm,nn": "begge ordbøkene"
}, },
"dicts_inline": {
"nn": "Nynorskordboka",
"bm": "Bokmålsordboka",
"bm,nn": "ordbøkene"
},
"menu": { "menu": {
"title": "Meny", "title": "Meny",
"help-and-info": "Hjelp og informasjon", "help-and-info": "Hjelp og informasjon",
...@@ -20,13 +25,6 @@ ...@@ -20,13 +25,6 @@
"locale": "Brukergrensesnitt", "locale": "Brukergrensesnitt",
"default-dict": "Standard ordbokvisning" "default-dict": "Standard ordbokvisning"
}, },
"error": {
"dicts": {
"nn": "Nynorskorboka",
"bm": "Bokmålsordboka",
"bm,nn": "ordbøkene"
}
},
"article_footer": { "article_footer": {
"share": "Del ordet", "share": "Del ordet",
"copy_link": "Kopier lenke", "copy_link": "Kopier lenke",
...@@ -60,5 +58,15 @@ ...@@ -60,5 +58,15 @@
"w": "lemmasøk", "w": "lemmasøk",
"x": "fritekstsøk", "x": "fritekstsøk",
"wx": "lemmasøk + fritekstsøk" "wx": "lemmasøk + fritekstsøk"
},
"error": {
"network": "Eit nettverksproblem hindra lasting av sida. Prøv å laste sida på nytt",
"server": "Noko gjekk gale på serversida ({code})",
"no_article": "Artikkel med id {id} ikkje funne (404).",
"no_word": "Ordet «{q}» finst ikkje i {dict}.",
"other_dict": "Byt til {otherDict} om du har søkt i feil ordbok.",
"search_error": "Søk på «{q}» gir ingen treff i {dict}.",
"search_advice": "Søk med * eller % dersom du er usikker på skrivemåten. Søketips kan du finne i «OM ORDBØKENE».",
"generic": "Noko gjekk gale..."
} }
} }
\ No newline at end of file
{ {
"message": "hello i18n !!" "sub-title": "Bokmålsordboka og Nynorskordboka",
"dicts": {
"nn": "nynorskordboka (nn)",
"bm": "bokmålsordboka (bm)",
"bm,nn": "begge ordbøkene"
},
"dicts_inline": {
"nn": "Nynorskordboka",
"bm": "Bokmålsordboka",
"bm,nn": "ordbøkene"
},
"menu": {
"title": "Meny",
"help-and-info": "Hjelp og informasjon",
"about": "Om ordbøkene",
"reset": "Tilbakestill"
},
"settings": {
"title": "Innstillinger",
"showSearchToolbar": "Vis verktøylinje for søkealternativer",
"showHGNO": "Vis homografnumre",
"showInflectionNo": "Vis bøyningsnumre",
"language": "Språk",
"locale": "Brukergrensesnitt",
"default-dict": "Standard ordbokvisning"
},
"article_footer": {
"share": "Del ordet",
"copy_link": "Kopier lenke",
"cite": "Siter",
"description": "Ønsker du å sitere denne artikkelen i Bokmålsordboka, anbefaler vi å oppgi når artikkelen ble hentet (lest), f.eks. slik:",
"copy": "Kopier",
"download": "Last ned",
"cancel": "avbryt",
"link_copied": "Lenken er kopiert til utklippstavlen",
"citation_copied": "Sitatet er kopiert til utklippstavla",
"citation": "«{lemma}». I: <em>Bokmålsordboka.</em> Språkrådet og Universitetet i Bergen. &lt;<a href='{link}'>{link}</a>&gt; (hentet {dd}.{mm}.{yyyy})."
},
"close": "Lukk",
"choose": "Velg",
"back": "Tilbake",
"back_to_results": "Tilbake til søkeresultater",
"pos": {
"ALL": "alle ordklasser",
"NOUN": "substantiv",
"PRON": "pronomen",
"DET": "determinativ",
"ADJ": "adjektiv",
"CCONJ": "konjunksjon",
"SCONJ": "subjunksjon",
"ADV": "adverb",
"ADP": "preposisjon",
"VERB": "verb",
"INTJ": "interjeksjon"
},
"scope": {
"w": "lemmasøk",
"x": "fritekstsøk",
"wx": "lemmasøk + fritekstsøk"
},
"error": {
"network": "Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt",
"server": "Noe gikk galt på serversiden ({code})",
"no_article": "Artikkel med id {id} ikke funnet (404).",
"no_word": "Ordet «{q}» finnes ikke i {dict}.",
"other_dict": "Bytt til {otherDict} om du har søkt i feil ordbok.",
"search_error": "Søk på «{q}» gir ingen treff i {dict}.",
"search_advice": "Søk med * eller % dersom du er usikker på skrivemåten. Søketips kan du finne i «OM ORDBØKENE».",
"generic": "Noe gikk galt..."
}
} }
\ No newline at end of file
{ {
"sub-title": "Bokmålsordboka og Nynorskordboka",
"dicts": {
"nn": "nynorskordboka (nn)",
"bm": "bokmålsordboka (bm)",
"bm,nn": "begge ordbøkene"
},
"dicts_inline": {
"nn": "Nynorskordboka",
"bm": "Bokmålsordboka",
"bm,nn": "ordbøkene"
},
"menu": {
"title": "Meny",
"help-and-info": "Hjelp og informasjon",
"about": "Om ordbøkene",
"reset": "Tilbakestill"
},
"settings": {
"title": "Innstillinger",
"showSearchToolbar": "Vis verktøylinje for søkealternativer",
"showHGNO": "Vis homografnumre",
"showInflectionNo": "Vis bøyningsnumre",
"language": "Språk",
"locale": "Brukergrensesnitt",
"default-dict": "Standard ordbokvisning"
},
"article_footer": {
"share": "Del ordet",
"copy_link": "Kopier lenke",
"cite": "Siter",
"description": "Ønsker du å sitere denne artikkelen i Bokmålsordboka, anbefaler vi å oppgi når artikkelen ble hentet (lest), f.eks. slik:",
"copy": "Kopier",
"download": "Last ned",
"cancel": "avbryt",
"link_copied": "Lenken er kopiert til utklippstavlen",
"citation_copied": "Sitatet er kopiert til utklippstavla",
"citation": "«{lemma}». I: <em>Bokmålsordboka.</em> Språkrådet og Universitetet i Bergen. &lt;<a href='{link}'>{link}</a>&gt; (hentet {dd}.{mm}.{yyyy})."
},
"close": "Lukk",
"choose": "Velg",
"back": "Tilbake",
"back_to_results": "Tilbake til søkeresultater",
"pos": {
"ALL": "alle ordklasser",
"NOUN": "substantiv",
"PRON": "pronomen",
"DET": "determinativ",
"ADJ": "adjektiv",
"CCONJ": "konjunksjon",
"SCONJ": "subjunksjon",
"ADV": "adverb",
"ADP": "preposisjon",
"VERB": "verb",
"INTJ": "interjeksjon"
},
"scope": {
"w": "lemmasøk",
"x": "fritekstsøk",
"wx": "lemmasøk + fritekstsøk"
}
} }
\ No newline at end of file
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