diff --git a/resources/vue/components/courseware/CoursewareDashboardStudents.vue b/resources/vue/components/courseware/CoursewareDashboardStudents.vue index d03ed986d69e9b92387b9e1d8c5461f987a6d3f1..5878705789d27fc649b4984cdc25c44e29909631 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 e1329baebb6c3bc3a61ed10b77238dba5441ff9a..6535272b4b4ece1d957f17f69ba02bf6a50a50c2 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 ecf4ff304921c3456d2a117dff14b47b6612ae61..9f9fdb37cdc96d36846966ea12f2c02a64383f62 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();