From 4be9192728a8343780e6c939266cdb5debac3da4 Mon Sep 17 00:00:00 2001 From: Henrik Askjer <henrik.askjer@uib.no> Date: Tue, 16 Nov 2021 09:59:49 +0100 Subject: [PATCH] display number of results --- src/components/DictionaryView.vue | 16 ++++++++++------ src/components/SearchResults.vue | 18 +++++++++++++++++- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue index d66da6fa..3c22eef5 100644 --- a/src/components/DictionaryView.vue +++ b/src/components/DictionaryView.vue @@ -38,6 +38,7 @@ <SearchResults :hits="search_results" :lang="lang" :key="lang" + :meta="this.meta" @article-click="article_link_click" @details-click="details_click" v-if="search_results.length && ! waiting && ! article" /> @@ -125,7 +126,7 @@ function navigate_to_article(self, source) { }) .then(function(response){ self.waiting_for_articles = false - history.replaceState({article: self.article, search_results: [], lang: self.lang, error: self.error}, '') + history.replaceState({article: self.article, search_results: [], lang: self.lang, error: self.error, meta: self.meta}, '') if (source) { self.$plausible.trackEvent('internal link incoming', {props: {origin: source}}) } @@ -166,7 +167,8 @@ function navigate_to_query(self, word) { // Get article IDs api.get('articles?', {params: {w: query.match || query.q, dict: self.lang, scope: "w"}}).then((response) => { - let article_ids = response.data + self.meta = response.data.meta + let article_ids = response.data["articles"] let unwrapped = [] for (const d in article_ids) { article_ids[d].forEach(i => unwrapped.push({ @@ -218,7 +220,8 @@ function navigate_to_query(self, word) { article: self.article, search_results: self.search_results, lang: self.lang, - error: self.error + error: self.error, + meta: self.meta }, '') }) }).catch(error =>{ @@ -242,6 +245,7 @@ export default { monthly_nn: null, event: null, previous: this.$route.fullPath, + meta: null } }, computed: { @@ -304,7 +308,7 @@ export default { article_link_click: function(item) { if (this.article && this.article.article_id == item.article_id){ this.article_key++ - history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang, error: this.error}, '') + history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang, error: this.error, meta: this.meta}, '') }else{ navigate_to_article(this, item.source) } @@ -312,7 +316,7 @@ export default { details_click: function(item) { item.article.source = this.previous this.article = item.article - history.replaceState({article: this.article, search_results: [], lang: this.lang, error: null}, '') + history.replaceState({article: this.article, search_results: [], lang: this.lang, error: null, meta: this.meta}, '') }, return_to_results: function() { this.article = null @@ -351,7 +355,7 @@ export default { else { 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}, '') + history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang, error: self.error, meta: self.meta}, '') } // words of the month diff --git a/src/components/SearchResults.vue b/src/components/SearchResults.vue index 18b15f64..a3330519 100644 --- a/src/components/SearchResults.vue +++ b/src/components/SearchResults.vue @@ -2,6 +2,7 @@ <section id="search_results"> <div class="flex-container" :class="$vuetify.breakpoint.name"> <ul class="hits" v-if="results_bm.length"> + <li class="results-count">Treff i Bokmålsordboka: {{count_bm}}</li> <li class="article_container" v-for="(result, index) in results_bm" :key="index + results_hash" tabindex="-1"> <Article :article="result" @@ -11,6 +12,7 @@ </li> </ul> <ul class="hits" v-if="results_nn.length"> + <li class="results-count">Treff i Nynorskorboka: {{count_nn}}</li> <li class="article_container" v-for="(result, index) in results_nn" :key="index + results_hash" tabindex="-1"> <Article :article="result" @@ -31,7 +33,8 @@ export default { name: 'SearchResults', props: { hits: Array, - lang: String + lang: String, + meta: Object }, computed: { right_col_class_name: function() { @@ -50,6 +53,13 @@ export default { }, results_hash: function(){ return this.hits.reduce((hash, hit) => (hash + hit.article_id) % 10000, 0) + }, + count_bm: function(){ + console.log(this.meta) + return this.meta["bm"]["total"] + }, + count_nn: function(){ + return this.meta["nn"]["total"] } }, methods: { @@ -90,6 +100,12 @@ export default { min-width: 50%; } + .results-count { + color: var(--v-primary-base); + margin-left: 24px; + + } + #search_results details.xs, #search_results details.sm { display: none; } -- GitLab