From 2b4550665650159de256b04cb6cdfbd98a987cca Mon Sep 17 00:00:00 2001
From: Petr Kalashnikov <pka065@it6100016.klientdrift.uib.no>
Date: Thu, 24 Jun 2021 11:33:18 +0200
Subject: [PATCH] Fjerne tomme blokker med forklaringer med titler

---
 src/components/Article.vue | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/components/Article.vue b/src/components/Article.vue
index aa96c988..5f23ab60 100644
--- a/src/components/Article.vue
+++ b/src/components/Article.vue
@@ -14,7 +14,7 @@
             <DefElement v-for="(element, index) in article.body.etymology" :dictionary="dictionary" :key="index" :body='element' @article-click="article_link_click" />
           </ul>
       </section>
-      <section class="definitions">
+      <section class="definitions" v-if="has_content">
         <h3>{{def_label}}</h3>
         <ol>
           <Definition v-for="definition in article.body.definitions" :dictionary="dictionary" :level="1" :key="definition.id" :body='definition' @article-click="article_link_click" />
@@ -55,6 +55,20 @@ function find_sub_articles(definition) {
   return sub_art_list
 }
 
+function find_content(definition) {
+  let content_list = []
+  let sub_definitions = definition.elements.filter(el => el.type_ == 'definition')
+
+  sub_definitions.forEach((subdef, i) => {
+    content_list = content_list.concat(find_content(subdef))
+  })
+
+  let content_nodes = definition.elements.filter(el => ['explanation', 'example', 'compound_list'].includes(el.type_))
+  content_list = content_list.concat(content_nodes)
+
+  return content_list
+}
+
 export default {
   name: 'Article',
   props: {
@@ -78,6 +92,9 @@ export default {
     },
     sub_articles: function() {
       return this.article.body.definitions.reduce((acc, val) => acc.concat(find_sub_articles(val)), []).sort((s1, s2) => s1.lemmas[0].localeCompare(s2.lemmas[0]))
+    },
+    has_content: function() {
+      return this.article.body.definitions.reduce((acc, val) => acc.concat(find_content(val)), []).length > 0
     }
   },
   components: {
@@ -189,4 +206,4 @@ ul li.definition {
   vertical-align: sub;
 }
 
-</style>
+</style>
\ No newline at end of file
-- 
GitLab