diff --git a/src/App.vue b/src/App.vue index 17ed8727454cfa4d6e9c943949d2c22f9798ad51..935e27b04de44823d6b7e549be0f717e7599a437 100644 --- a/src/App.vue +++ b/src/App.vue @@ -114,6 +114,26 @@ function navigate_to_search(self, query) { error: "Vi fant ingen resultater for '" + decodeURIComponent(query) + "'. (Søkeforlag kommer i en senere oppatering av Ordbøkene)" } } + }) + .catch(function(error){ + if (error.response && error.response.status == 400) { + self.article = { + lemmas: [], + error: "Søkeuttrykket inneholder feil" + } + } else if (error.response) { + self.article = { + lemmas: [], + error: "Noe gikk galt på serversiden" + } + } else { + self.article = { + lemmas: [], + error: "Nettverksproblemer, prøv igjen" + } + } + }) + .then(function(_){ self.waiting_for_articles = false history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang}, '') }) @@ -123,6 +143,27 @@ function navigate_to_word(self, word) { axios.get(self.api_pref + 'suggest?q=' + word) .then(function(response){ self.search_results = response.data.filter(result => result.match.length == word.length) + if (! self.search_results.length) { + self.article = { + lemmas: [], + error: "Ordet '" + decodeURIComponent(word) + "' finnes ikke i ordbøkene" + } + } + }) + .catch(function(error){ + if (error.response) { + self.article = { + lemmas: [], + error: "Noe gikk galt på serversiden" + } + } else { + self.article = { + lemmas: [], + error: "Nettverksproblemer, prøv igjen" + } + } + }) + .then(function(_){ self.waiting_for_articles = false history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang}, '') }) @@ -223,6 +264,13 @@ export default { axios.get(api_endpoint + '/nob/article/78569').then(function(response){ self.monthly_nn = Object.assign(response.data, {dictionary: 'nob'}) }) + }).catch(function(_){ + self.article = { + lemmas: [], + error: "Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt" + } + self.waiting_for_metadata = false + self.waiting_for_articles = false }) }, watch: {