From 66da36dc7eeede597ff787339aa8c5ea6a126b96 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 15 Aug 2024 06:53:18 +0000 Subject: [PATCH] show visibility toggle on content modules administration page only for courses, fixes #4420 Closes #4420 Merge request studip/studip!3244 --- app/controllers/course/contentmodules.php | 3 +++ resources/vue/components/ContentModules.vue | 1 + resources/vue/components/ContentModulesEditTiles.vue | 2 +- resources/vue/components/ContentmodulesEditTable.vue | 3 +-- resources/vue/mixins/ContentModulesMixin.js | 8 ++++++++ 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/controllers/course/contentmodules.php b/app/controllers/course/contentmodules.php index 2d4268fc498..77676a15a61 100644 --- a/app/controllers/course/contentmodules.php +++ b/app/controllers/course/contentmodules.php @@ -85,6 +85,9 @@ class Course_ContentmodulesController extends AuthenticatedController $this->render_vue_app( Studip\VueApp::create('ContentModules') + ->withProps([ + 'range-type' => get_class($this->sem), + ]) ->withStore('ContentModulesStore', 'contentmodules', [ 'setCategories' => $this->categories, 'setHighlighted' => $this->highlighted_modules, diff --git a/resources/vue/components/ContentModules.vue b/resources/vue/components/ContentModules.vue index a48dd9d6909..e6164900787 100644 --- a/resources/vue/components/ContentModules.vue +++ b/resources/vue/components/ContentModules.vue @@ -36,6 +36,7 @@ <component :is="displayComponent" :modules="modules" :filtercategory="filterCategory" + :range-type="rangeType" ></component> <MountingPortal mount-to="#tool-view-switch .sidebar-widget-content .widget-list" name="sidebar-switch"> diff --git a/resources/vue/components/ContentModulesEditTiles.vue b/resources/vue/components/ContentModulesEditTiles.vue index 7407632c40a..ae9324c4e7a 100644 --- a/resources/vue/components/ContentModulesEditTiles.vue +++ b/resources/vue/components/ContentModulesEditTiles.vue @@ -61,7 +61,7 @@ href="#" class="toggle_visibility" role="checkbox" - v-if="!module.mandatory" + v-if="showVisibilityToggle(module)" :aria-checked="module.visibility !== 'tutor' ? 'true' : 'false'" @click.prevent="toggleModuleVisibility(module)" > diff --git a/resources/vue/components/ContentmodulesEditTable.vue b/resources/vue/components/ContentmodulesEditTable.vue index 0a8a0aa6f38..39835a7007e 100644 --- a/resources/vue/components/ContentmodulesEditTable.vue +++ b/resources/vue/components/ContentmodulesEditTable.vue @@ -59,7 +59,7 @@ <td class="actions"> <a href="#" - v-if="module.active && !module.mandatory" + v-if="showVisibilityToggle(module)" role="checkbox" :aria-checked="module.visibility !== 'tutor' ? 'true' : 'false'" @click.prevent="toggleModuleVisibility(module)" @@ -121,7 +121,6 @@ import ContentModulesMixin from '../mixins/ContentModulesMixin.js'; export default { name: 'contentmodules-edit-table', - mixins: [ContentModulesMixin], }; </script> diff --git a/resources/vue/mixins/ContentModulesMixin.js b/resources/vue/mixins/ContentModulesMixin.js index 86a29ffb52a..b02561d9ee1 100644 --- a/resources/vue/mixins/ContentModulesMixin.js +++ b/resources/vue/mixins/ContentModulesMixin.js @@ -5,6 +5,9 @@ export default { components: { draggable, }, + props: { + rangeType: String, + }, data: () => ({ order: [], }), @@ -132,5 +135,10 @@ export default { return classes.join(' '); }, + showVisibilityToggle(module) { + return this.rangeType !== 'Institute' + && module.active + && !module.mandatory; + } }, }; -- GitLab