From f385e69004cc8e748921e50f90c5c06f4dfb3c60 Mon Sep 17 00:00:00 2001 From: Henrik Askjer <henrik.askjer@uib.no> Date: Fri, 14 Jan 2022 11:46:54 +0100 Subject: [PATCH] suggest dicts and fulltext if they give results --- src/components/DictionaryView.vue | 51 +++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue index e15538f4..829aff6e 100644 --- a/src/components/DictionaryView.vue +++ b/src/components/DictionaryView.vue @@ -83,12 +83,12 @@ @click.native="suggestion_link(item[0])">{{item[0]}}</router-link><!-- -->{{index == inflection_suggestions.length-1? '.' : ', '}}</span> <p class="below-notification" - v-if="lang=='bm'">{{$t('notifications.suggest_dict[0]')}}<br>{{$t('notifications.suggest_dict[1]')}} + v-if="lang=='bm' && suggest_other_dict">{{$t('notifications.suggest_dict[1]')}} <router-link :to="generate_path($route.query.q, {lang: 'nn'})" @click.native="language_link('nn')">{{$t('dicts.nn')}}</router-link> </p> <p class="below-notification" - v-if="lang=='nn'">{{$t('notifications.suggest_dict[0]')}}<br>{{$t('notifications.suggest_dict[1]')}} + v-if="lang=='nn' && suggest_other_dict">{{$t('notifications.suggest_dict[0]')}}<br>{{$t('notifications.suggest_dict[1]')}} <router-link :to="generate_path($route.query.q, {lang: 'nn'})" @click.native="language_link('bm')">{{$t('dicts_inline.bm')}}</router-link> </p> @@ -259,6 +259,11 @@ function navigate_to_query(self, word, keep_page) { self.error = null self.no_results = null self.waiting_for_articles = true + self.inflection_suggestions = [] + self.similar = [] + self.suggest_fulltext = false + self.suggest_other_dict = false + if (!self.event) { self.event = {match: word} } @@ -281,8 +286,6 @@ function navigate_to_query(self, word, keep_page) { self.handle_error(error) self.replace_history() }) - } else { - self.inflection_suggestions = [] } // Get article IDs @@ -300,11 +303,12 @@ function navigate_to_query(self, word, keep_page) { let bm_length = response.data.articles.bm ? response.data.articles.bm.length : 0 let nn_length = response.data.articles.nn ? response.data.articles.nn.length : 0 let total_length = bm_length + nn_length + let dict = self.lang // Similar if (bm_length == 0 || nn_length == 0) { if (!advanced_search) { - let dict = self.lang + if (dict == 'bm,nn' && total_length > 0) { dict = bm_length == 0? 'bm' : 'nn' } @@ -326,10 +330,30 @@ function navigate_to_query(self, word, keep_page) { if (total_length == 0) { self.waiting_for_articles = false self.no_results = true + if (!self.scope.includes('f')) { + let params = {q, dict, n: 1, dform: 'int', include: 'f', wc: self.pos_selected} + api.get('suggest?', {params}).then((response) => { + console.log(response.data.a) + self.suggest_fulltext = response.data.cnt > 0 + console.log(response.data.a.freetext) + console.log("suggest",self.suggest_fulltext) + }).catch(error => { + self.handle_error(error) + self.replace_history() + }) + } + if (dict != 'bm,nn') { + let params = {q, n: 1, dict: dict=='bm'?'nn':'bm', dform: 'int', include: 'e', wc: self.pos_selected} + api.get('suggest?', {params}).then((response) => { + self.suggest_other_dict = response.data.cnt > 0 && response.data.a.exact[0][0] == q + }).catch(error => { + self.handle_error(error) + self.replace_history() + }) + } self.replace_history() // fixes routing bug when going back from suggested search } else { - self.no_results = false Promise.all([ load_articles(self, query, offset, self.perPage, "bm"), @@ -369,7 +393,10 @@ export default { perPage: 10, inflection_suggestions: null, similar: null, - selected: null + selected: null, + suggest_fulltext: false, + suggest_other_dict: false + } }, computed: { @@ -400,7 +427,9 @@ export default { perPage: this.perPage, selected: this.selected, inflection_suggestions: this.inflection_suggestions, - similar: this.similar}, '') + similar: this.similar, + suggest_fulltext: this.suggest_fulltext, + suggest_other_dict: this.suggest_other_dict}, '') }, @@ -435,6 +464,8 @@ export default { this.search_results = {} this.inflection_suggestions = [] this.similar = [] + this.suggest_fulltext = false + this.suggest_other_dict = false if (error.response) { if (error.response.status == 404) { if (article) { @@ -672,7 +703,9 @@ export default { self.perPage = event.state.perPage self.selected = event.state.selected self.inflection_suggestions = event.state.inflection_suggestions, - self.similar = event.state.similar + self.similar = event.state.similar, + self.suggest_fulltext = event.state.suggest_fulltext, + self.suggest_other_dict = event.state.suggest_other_dict } } } -- GitLab