From db61e7f9277f2eeaf5ebc8cbcb1f7d7a2bf0f60f Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Thu, 27 Apr 2023 12:15:07 +0000
Subject: [PATCH] fix #2584

Closes #2584

Merge request studip/studip!1743
---
 .../courseware/CoursewareDashboardStudents.vue    |  2 +-
 .../courseware/CoursewareDashboardTasks.vue       |  2 +-
 resources/vue/mixins/courseware/task-helper.js    | 15 +++++++--------
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/resources/vue/components/courseware/CoursewareDashboardStudents.vue b/resources/vue/components/courseware/CoursewareDashboardStudents.vue
index d03ed986d69..5878705789d 100644
--- a/resources/vue/components/courseware/CoursewareDashboardStudents.vue
+++ b/resources/vue/components/courseware/CoursewareDashboardStudents.vue
@@ -57,7 +57,7 @@
                         </span>
                     </td>
                     <td class="responsive-hidden">
-                        <a v-if="task.attributes.submitted" :href="getLinkToElement(element.id)">
+                        <a v-if="task.attributes.submitted" :href="getLinkToElement(element)">
                             {{ element.attributes.title }}
                         </a>
                         <span v-else>{{ element.attributes.title }}</span>
diff --git a/resources/vue/components/courseware/CoursewareDashboardTasks.vue b/resources/vue/components/courseware/CoursewareDashboardTasks.vue
index e1329baebb6..6535272b4b4 100644
--- a/resources/vue/components/courseware/CoursewareDashboardTasks.vue
+++ b/resources/vue/components/courseware/CoursewareDashboardTasks.vue
@@ -37,7 +37,7 @@
                         {{ taskGroup.attributes.title }}
                     </td>
                     <td>
-                        <a :href="getLinkToElement(element.id)">{{ element.attributes.title }}</a>
+                        <a :href="getLinkToElement(element)">{{ element.attributes.title }}</a>
                     </td>
                     <td>{{ task.attributes?.progress?.toFixed(2) || '-'}}%</td>
                     <td>{{ getReadableDate(task.attributes['submission-date']) }}</td>
diff --git a/resources/vue/mixins/courseware/task-helper.js b/resources/vue/mixins/courseware/task-helper.js
index ecf4ff30492..9f9fdb37cdc 100644
--- a/resources/vue/mixins/courseware/task-helper.js
+++ b/resources/vue/mixins/courseware/task-helper.js
@@ -50,14 +50,13 @@ export default {
 
             return status;
         },
-        getLinkToElement(elementId) {
-            return (
-                STUDIP.URLHelper.base_url +
-                'dispatch.php/course/courseware/?cid=' +
-                STUDIP.URLHelper.parameters.cid +
-                '#/structural_element/' +
-                elementId
-            );
+        getLinkToElement(element) {
+            const unitId = element.relationships?.unit?.data?.id;
+            if (!unitId) {
+                return '';
+            }
+
+            return `${STUDIP.URLHelper.base_url}dispatch.php/course/courseware/courseware/${unitId}?cid=${STUDIP.URLHelper.parameters.cid}#/structural_element/${element.id}`;
         },
         getReadableDate(date) {
             return new Date(date).toLocaleDateString();
-- 
GitLab