From 76e978f35bf9dbecca4200fbe2a032df68a28e34 Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Thu, 14 Oct 2021 12:38:16 +0000
Subject: [PATCH] fixes #318

---
 .../Routes/Courseware/StructuralElementsUpdate.php       | 9 +++++++--
 .../components/courseware/CoursewareCourseManager.vue    | 1 +
 .../components/courseware/CoursewareManagerElement.vue   | 2 ++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
index 78855bde26e..33ba9a3f9bc 100755
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
@@ -119,8 +119,13 @@ class StructuralElementsUpdate extends JsonApiController
                 }
             }
 
-            $resource->release_date = $json['data']['attributes']['release-date'];
-            $resource->withdraw_date = $json['data']['attributes']['withdraw-date'];
+            if (isset($json['data']['attributes']['release-date'])) {
+                $resource->release_date = $json['data']['attributes']['release-date'];
+            }
+
+            if (isset($json['data']['attributes']['withdraw-date'])) {
+                $resource->withdraw_date = $json['data']['attributes']['withdraw-date'];
+            }
 
             // update parent
             if (self::arrayHas($json, 'data.relationships.parent')) {
diff --git a/resources/vue/components/courseware/CoursewareCourseManager.vue b/resources/vue/components/courseware/CoursewareCourseManager.vue
index 4f3f4575c9d..e039ca59d3a 100755
--- a/resources/vue/components/courseware/CoursewareCourseManager.vue
+++ b/resources/vue/components/courseware/CoursewareCourseManager.vue
@@ -6,6 +6,7 @@
                     type="current"
                     :currentElement="currentElement"
                     @selectElement="setCurrentId"
+                    @reloadElement="reloadElements"
                 />
             </courseware-tab>
             <courseware-tab :name="$gettext('Export')">
diff --git a/resources/vue/components/courseware/CoursewareManagerElement.vue b/resources/vue/components/courseware/CoursewareManagerElement.vue
index b703e8da78f..76b464c11c8 100755
--- a/resources/vue/components/courseware/CoursewareManagerElement.vue
+++ b/resources/vue/components/courseware/CoursewareManagerElement.vue
@@ -312,6 +312,7 @@ export default {
                 });
                 await this.unlockObject({ id: element.id, type: 'courseware-structural-elements' });
                 this.loadStructuralElement(this.currentElement.id);
+                this.$emit('reloadElement');
                 this.$store.dispatch('cwManagerFilingData', {});
             } else if(source === 'remote' || source === 'own') {
                 //create Element
@@ -341,6 +342,7 @@ export default {
                     structuralElementId: this.currentElement.id
                 });
                 await this.unlockObject({id: container.id, type: 'courseware-containers'});
+                this.$emit('reloadElement');
                 this.$store.dispatch('cwManagerFilingData', {});
             } else if (source === 'remote' || source === 'own') {
                 let parentId = this.filingData.parentItem.id;
-- 
GitLab