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