From 495f3f560238d74ef5d05c237f7f1d28bc2bec92 Mon Sep 17 00:00:00 2001 From: Henrik Askjer <henrik.askjer@uib.no> Date: Fri, 7 Jan 2022 17:17:56 +0100 Subject: [PATCH] fix lemma group inclection codes --- src/components/Header.vue | 61 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/src/components/Header.vue b/src/components/Header.vue index 2faf9908..4a8cf890 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -29,8 +29,8 @@ <h2 class="secondary_header" v-if="secondary_header_text.length">{{secondary_header_text}}</h2> <span class="header_group_list" - v-if="group_list.length">{{lemma_group.description}}</span> - <span v-if="$store.state.showInflectionNo">{{inflection_classes}}</span> + v-if="lemma_group.description.length">{{lemma_group.description}}</span> + <span v-if="$store.state.showInflectionNo">{{lemma_group.inflection_classes}}</span> <SplitInf :lemmas="lemmas"/> <span v-if="!lemma_groups[1] && $parent.collapsed && $parent.snippet && $parent.has_content" class="definition_snippet"> @@ -88,7 +88,28 @@ export default { }, methods: { - roman_hgno: helpers.roman_hgno + roman_hgno: helpers.roman_hgno, + inflection_classes: function(lemmas) { + let inf_classes = new Set() + let ureg = false + lemmas.forEach((lemma, i) => { + if (lemma.inflection_class) inf_classes.add(lemma.inflection_class) + else ureg = true + }) + if (inf_classes.size){ + + let class_array = Array.from(inf_classes).sort() + if (ureg) class_array.push("ureg.") + let class_list + if (class_array.length < 3) { + class_list = class_array.join(" og ") + } + else { + class_list = class_array.slice(0, -1).join(", ") + " og " + class_array[class_array.length -1] + } + return " ("+ class_list +")" + } + } }, computed: { secondary_header_text: function() { @@ -123,7 +144,7 @@ export default { return helpers.group_list(this.lemmas, this.dictionary) }, lemma_groups: function() { - let groups + let groups = [{lemmas: this.lemmas}] if (this.lemmas[0].paradigm_info[0] && this.lemmas[0].paradigm_info[0].tags[0] != 'NOUN' && this.lemmas[0].paradigm_info[0].tags[0] != 'EXPR') { groups = [{description: helpers.mapping[this.dictionary][this.lemmas[0].paradigm_info[0].tags[0]], lemmas: this.lemmas}] } @@ -147,38 +168,16 @@ export default { else { genus_map[genus_description] = [lemma] } - }) groups = Object.keys(genus_map).map(key => { - return {description: 'substantiv ' + key, lemmas: genus_map[key]} + return {description: 'substantiv ' + key, lemmas: genus_map[key], } }) + groups.forEach((lemma_group, index) => { + groups[index]['inflection_classes'] = this.inflection_classes(lemma_group.lemmas) + }) } - return groups || [{lemmas: this.lemmas}] - }, - inflection_classes: function() { - let inf_classes = new Set() - let ureg = false - this.lemmas.forEach((lemma, i) => { - - if (lemma.inflection_class) inf_classes.add(lemma.inflection_class) - else ureg = true - - }) - if (inf_classes.size){ - - let class_array = Array.from(inf_classes).sort() - if (ureg) class_array.push("ureg.") - let class_list - if (class_array.length < 3) { - class_list = class_array.join(" og ") - } - else { - class_list = class_array.slice(0, -1).join(", ") + " og " + class_array[class_array.length -1] - } - - return " ("+ class_list +")" - } + return groups }, inflection_groups_by_lemma: function() { let components = Object.keys(this.$options.components) -- GitLab