From 47d087856018ecf1ecef76697821b5ccd8b861dc Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Sat, 21 Oct 2023 09:58:15 +0200
Subject: [PATCH] Revert "fix #3019"

This reverts commit 185ab4a1919f137e99c72addf98790e0e5f833d2.
---
 app/views/contents/courseware/courseware.php  |  1 +
 .../courseware/shared_content_courseware.php  |  1 +
 app/views/course/courseware/courseware.php    |  1 +
 lib/classes/JsonApi/Models/Studip.php         |  2 --
 .../courseware/CoursewareExportWidget.vue     |  4 ++--
 .../CoursewareStructuralElement.vue           |  7 +++----
 resources/vue/courseware-index-app.js         | 16 ++++++----------
 .../vue/store/courseware/courseware.module.js | 19 ++++++++++++-------
 8 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/app/views/contents/courseware/courseware.php b/app/views/contents/courseware/courseware.php
index 338c6b2c7bd..683f07e4748 100644
--- a/app/views/contents/courseware/courseware.php
+++ b/app/views/contents/courseware/courseware.php
@@ -5,6 +5,7 @@
         entry-type="users"
         entry-id="<?= htmlReady($user_id) ?>"
         unit-id="<?= htmlReady($unit_id) ?>"
+        oer-enabled='<?= htmlReady($oer_enabled) ?>'
         licenses='<?= htmlReady($licenses) ?>'
         >
     </div>
diff --git a/app/views/contents/courseware/shared_content_courseware.php b/app/views/contents/courseware/shared_content_courseware.php
index 05ed3cc0fbf..f9590593b15 100755
--- a/app/views/contents/courseware/shared_content_courseware.php
+++ b/app/views/contents/courseware/shared_content_courseware.php
@@ -3,6 +3,7 @@
     entry-element-id="<?= $entry_element_id ?>"
     entry-type="sharedusers"
     entry-id="<?= $entry_element_id ?>"
+    oer-enabled='<?= $oer_enabled ?>'
     oer-title="<?= Config::get()->OER_TITLE ?>"
     licenses='<?= $licenses ?>'
     >
diff --git a/app/views/course/courseware/courseware.php b/app/views/course/courseware/courseware.php
index 2dadc86a667..1abb48a667f 100644
--- a/app/views/course/courseware/courseware.php
+++ b/app/views/course/courseware/courseware.php
@@ -5,6 +5,7 @@
         entry-type="courses"
         entry-id="<?= htmlReady(Context::getId()) ?>"
         unit-id="<?= htmlReady($unit_id) ?>"
+        oer-enabled='<?= htmlReady($oer_enabled) ?>'
         licenses='<?= htmlReady($licenses) ?>'
         >
     </div>
diff --git a/lib/classes/JsonApi/Models/Studip.php b/lib/classes/JsonApi/Models/Studip.php
index 1b5aed05124..ce5fa1cfb9f 100644
--- a/lib/classes/JsonApi/Models/Studip.php
+++ b/lib/classes/JsonApi/Models/Studip.php
@@ -13,8 +13,6 @@ class Studip
     {
         $properties = [
             new StudipProperty('studip-version', 'Stud.IP-Version', $GLOBALS['SOFTWARE_VERSION']),
-            new StudipProperty('oer-campus-enabled', 'OERCAMPUS_ENABLED', \Config::get()->OERCAMPUS_ENABLED),
-            new StudipProperty('oer-enable-suggestions', 'OER_ENABLE_SUGGESTIONS', \Config::get()->OER_ENABLE_SUGGESTIONS),
         ];
 
         $copyrightDialog = self::getConfigOption('COPYRIGHT_DIALOG_ON_UPLOAD');
diff --git a/resources/vue/components/courseware/CoursewareExportWidget.vue b/resources/vue/components/courseware/CoursewareExportWidget.vue
index a6473ca4687..89ecf1cbb83 100644
--- a/resources/vue/components/courseware/CoursewareExportWidget.vue
+++ b/resources/vue/components/courseware/CoursewareExportWidget.vue
@@ -40,7 +40,7 @@ export default {
     computed: {
         ...mapGetters({
             context: 'context',
-            oerCampusEnabled: 'oerCampusEnabled',
+            oerEnabled: 'oerEnabled',
             userIsTeacher: 'userIsTeacher',
         }),
         canEdit() {
@@ -64,7 +64,7 @@ export default {
             return this.canVisit;
         },
         showOer() {
-            if (!this.oerCampusEnabled) {
+            if (!this.oerEnabled) {
                 return false;
             }
 
diff --git a/resources/vue/components/courseware/CoursewareStructuralElement.vue b/resources/vue/components/courseware/CoursewareStructuralElement.vue
index eab4c6a54c2..57bdec9f3d8 100644
--- a/resources/vue/components/courseware/CoursewareStructuralElement.vue
+++ b/resources/vue/components/courseware/CoursewareStructuralElement.vue
@@ -802,8 +802,7 @@ export default {
             showSuggestOerDialog: 'showSuggestOerDialog',
             showPublicLinkDialog: 'showStructuralElementPublicLinkDialog',
             showRemoveLockDialog: 'showStructuralElementRemoveLockDialog',
-            oerCampusEnabled: 'oerCampusEnabled',
-            oerEnableSuggestions: 'oerEnableSuggestions',
+            oerEnabled: 'oerEnabled',
             licenses: 'licenses',
             exportState: 'exportState',
             exportProgress: 'exportProgress',
@@ -1043,9 +1042,9 @@ export default {
                 { id: 5, label: this.$gettext('Lesezeichen setzen'), icon: 'star', emit: 'setBookmark' },
             ];
 
-            if (this.oerEnableSuggestions) {
+            if (this.oerEnabled) {
                 menu.push(
-                    { id: 6, label: this.$gettext('Seite für OER Campus vorschlagen'), icon: 'oer-campus',
+                    { id: 6, label: this.$gettext('Lerninhalt für OER Campus vorschlagen'), icon: 'oer-campus',
                         emit: 'showSuggest' }
                 );
             }
diff --git a/resources/vue/courseware-index-app.js b/resources/vue/courseware-index-app.js
index 5e2ea1ff9a3..f25204bbdd4 100644
--- a/resources/vue/courseware-index-app.js
+++ b/resources/vue/courseware-index-app.js
@@ -24,6 +24,7 @@ const mountApp = async (STUDIP, createApp, element) => {
     let entry_id = null;
     let entry_type = null;
     let unit_id = null;
+    let oer_enabled = null;
     let licenses = null;
     let elem;
 
@@ -45,6 +46,9 @@ const mountApp = async (STUDIP, createApp, element) => {
                 unit_id = elem.attributes['unit-id'].value;
             }
 
+            if (elem.attributes['oer-enabled'] !== undefined) {
+                oer_enabled = elem.attributes['oer-enabled'].value;
+            }
             // we need a route for License SORM
             if (elem.attributes['licenses'] !== undefined) {
                 licenses = JSON.parse(elem.attributes['licenses'].value);
@@ -115,22 +119,13 @@ const mountApp = async (STUDIP, createApp, element) => {
                     'sem-classes',
                     'sem-types',
                     'terms-of-use',
-                    'user-data-field',
-                    'studip-properties'
+                    'user-data-field'
                 ],
                 httpClient,
             }),
         },
     });
 
-    axios.get(
-        STUDIP.URLHelper.getURL('jsonapi.php/v1/studip/properties', {}, true)
-    ).then(response => {
-        response.data.data.forEach(prop => {
-            store.dispatch('studip-properties/storeRecord', prop);
-        });
-    });
-
     store.dispatch('setUrlHelper', STUDIP.URLHelper);
     store.dispatch('setUserId', STUDIP.USER_ID);
     await store.dispatch('users/loadById', {id: STUDIP.USER_ID});
@@ -149,6 +144,7 @@ const mountApp = async (STUDIP, createApp, element) => {
 
     store.dispatch('coursewareCurrentElement', elem_id);
 
+    store.dispatch('oerEnabled', oer_enabled);
     store.dispatch('licenses', licenses);
     store.dispatch('courseware-templates/loadAll');
     store.dispatch('loadUserClipboards', STUDIP.USER_ID);
diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index 89d7da82d7e..0f56e3e7af8 100644
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -8,6 +8,7 @@ const getDefaultState = () => {
         context: {},
         courseware: {},
         currentElement: {},
+        oerEnabled: null,
         licenses: null, // we need a route for License SORM
         httpClient: null,
         lastElement: null,
@@ -102,6 +103,9 @@ const getters = {
     currentStructuralElementImageURL(state, getters) {
         return getters.currentStructuralElement?.relationships?.image?.meta?.['download-url'];
     },
+    oerEnabled(state) {
+        return state.oerEnabled;
+    },
     licenses(state) {
         return state.licenses;
     },
@@ -254,13 +258,6 @@ const getters = {
     },
     progresses(state) {
         return state.progresses;
-    },
-
-    oerCampusEnabled(state, getters, rootState, rootGetters) {
-        return rootGetters['studip-properties/byId']({ id: 'oer-campus-enabled'}).attributes?.value;
-    },
-    oerEnableSuggestions(state, getters, rootState, rootGetters) {
-        return getters.oerCampusEnabled && rootGetters['studip-properties/byId']({ id: 'oer-enable-suggestions'}).attributes?.value;
     }
 };
 
@@ -810,6 +807,10 @@ export const actions = {
         context.commit('coursewareContextSet', id);
     },
 
+    oerEnabled(context, enabled) {
+        context.commit('oerEnabledSet', enabled);
+    },
+
     licenses(context, licenses) {
         context.commit('licensesSet', licenses);
     },
@@ -1419,6 +1420,10 @@ export const mutations = {
         state.context = data;
     },
 
+    oerEnabledSet(state, data) {
+        state.oerEnabled = data;
+    },
+
     licensesSet(state, data) {
         state.licenses = data;
     },
-- 
GitLab