From f0e8ebaaa2d88686468f821204cedd6a75b95bb5 Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Wed, 26 Jan 2022 07:49:16 +0000
Subject: [PATCH] fix #577

---
 .../assets/stylesheets/scss/courseware.scss   | 10 +++++++
 resources/vue/mixins/courseware/export.js     | 26 +++++++------------
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss
index aa31c438f54..524636c71af 100755
--- a/resources/assets/stylesheets/scss/courseware.scss
+++ b/resources/assets/stylesheets/scss/courseware.scss
@@ -2408,6 +2408,16 @@ m a n a g e r
     .progress-bar-wrapper {
         width: 100%;
         border: solid thin $content-color-40;
+
+        .progress-bar {
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            color: white;
+            text-align: center;
+            white-space: nowrap;
+            background-color: $base-color;
+        }
     }
 }
 
diff --git a/resources/vue/mixins/courseware/export.js b/resources/vue/mixins/courseware/export.js
index 90797cabe77..837b98c9f0c 100755
--- a/resources/vue/mixins/courseware/export.js
+++ b/resources/vue/mixins/courseware/export.js
@@ -96,7 +96,11 @@ export default {
             // load whole courseware nonetheless, only export relevant elements
             let elements = await this.$store.getters['courseware-structural-elements/all'];
             this.exportElementCounter = 0;
-            this.elementCounter = await this.countElements([root_element]);
+            if (withChildren) {
+                this.elementCounter = this.countElements(elements);
+            } else {
+                this.elementCounter = root_element.relationships.containers.length;
+            }
 
             root_element.containers = [];
             if (root_element.relationships.containers?.data?.length) {
@@ -135,23 +139,11 @@ export default {
             };
         },
 
-        countElements(element) {
+        countElements(elements) {
             let counter = 0;
-            if (element.length) {
-                for (var i = 0; i < element.length; i++) {
-                    counter++;
-                    if (element[i].relationships.children?.data?.length > 0) {
-                        let children = [];
-                        element[i].relationships.children?.data.forEach(child => {
-                            children.push(this.structuralElementById({id: child.id}));
-                        });
-                        counter += this.countElements(children);
-                    }
-
-                    if (element[i].relationships.containers?.data?.length > 0) {
-                        counter += element[i].relationships.containers.data.length
-                    }
-                }
+            for (var i = 0; i < elements.length; i++) {
+                counter++;
+                counter += elements[i].relationships.containers.data.length;
             }
 
             return counter;
-- 
GitLab