From 78f33395f6eb410a90fcb5375f82a6d72e237d4d Mon Sep 17 00:00:00 2001 From: Ron Lucke <lucke@elan-ev.de> Date: Thu, 14 Sep 2023 11:04:39 +0000 Subject: [PATCH] fix #3178 Closes #3178 and #3179 Merge request studip/studip!2155 --- .../courseware/CoursewareTasksDialogDistribute.vue | 10 +++++++++- resources/vue/components/courseware/TasksApp.vue | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue b/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue index 78d6d46d684..1e82d94c99b 100644 --- a/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue +++ b/resources/vue/components/courseware/CoursewareTasksDialogDistribute.vue @@ -327,6 +327,7 @@ export default { selectedGroups: [], bulkSelectGroups: false, requirements: [], + distributing: false, }; }, computed: { @@ -494,6 +495,7 @@ export default { copyStructuralElement: 'copyStructuralElement', companionError: 'companionError', companionSuccess: 'companionSuccess', + companionInfo: 'companionInfo', loadCourseMemberships: 'course-memberships/loadRelated', loadCourseStatusGroups: 'status-groups/loadRelated', createTaskGroup: 'createTaskGroup', @@ -515,6 +517,11 @@ export default { this.loadStructuralElement({ id: id, options: { include: 'children' } }); }, async distributeTask() { + if (this.distributing) { + this.companionInfo({ info: this.$gettext('Aufgaben werden bereits verteilt.') }); + return; + } + this.distributing = true; const taskGroup = { attributes: { title: this.taskTitle, @@ -548,11 +555,12 @@ export default { solvers = this.selectedGroups.map((id) => ({ type: 'status-groups', id })); } taskGroup.relationships.solvers.data = solvers; - await this.createTaskGroup({ taskGroup }); this.companionSuccess({ info: this.$gettext('Aufgaben wurden verteilt.') }); this.$emit('newtask'); + this.distributing = false; this.setShowTasksDistributeDialog(false); + }, validateSolvers() { if ( diff --git a/resources/vue/components/courseware/TasksApp.vue b/resources/vue/components/courseware/TasksApp.vue index 37ec927542c..7c149b828a3 100644 --- a/resources/vue/components/courseware/TasksApp.vue +++ b/resources/vue/components/courseware/TasksApp.vue @@ -7,13 +7,15 @@ <MountingPortal mountTo="#courseware-action-widget" name="sidebar-actions" v-if="userIsTeacher"> <courseware-tasks-action-widget /> </MountingPortal> + <courseware-companion-overlay /> </div> </template> <script> import CoursewareTasksActionWidget from './CoursewareTasksActionWidget.vue'; -import CoursewareDashboardTasks from './CoursewareDashboardTasks.vue' -import CoursewareDashboardStudents from './CoursewareDashboardStudents.vue' +import CoursewareDashboardTasks from './CoursewareDashboardTasks.vue'; +import CoursewareDashboardStudents from './CoursewareDashboardStudents.vue'; +import CoursewareCompanionOverlay from './CoursewareCompanionOverlay.vue'; import { mapGetters } from 'vuex'; export default { @@ -21,6 +23,7 @@ export default { CoursewareTasksActionWidget, CoursewareDashboardTasks, CoursewareDashboardStudents, + CoursewareCompanionOverlay, }, computed: { ...mapGetters({ -- GitLab