Skip to content
Snippets Groups Projects
Commit fd13a3d9 authored by Ron Lucke's avatar Ron Lucke Committed by David Siegfried
Browse files

Courseware Lesezeichen BIESTer

Closes #3075, #3074, and #3083

Merge request studip/studip!2062
parent 718eb953
No related branches found
No related tags found
No related merge requests found
<template>
<select v-model="bookmarkFilter" class="sidebar-selectlist">
<option value="all">
<translate>alle</translate>
{{ $gettext('alle') }}
</option>
<option value="contents">
{{ $gettext('Arbeitsplatz') }}
</option>
<option v-for="course in courses" :key="course.id" :value="course.id">
{{ course.attributes.title }}
......
......@@ -14,9 +14,7 @@
:style="getChildStyle(bookmark)"
></div>
<div class="description">
<header
:class="[bookmark.attributes.purpose !== '' ? 'description-icon-' + bookmark.attributes.purpose : '']"
>
<header>
{{ bookmark.attributes.title }}
</header>
<div class="description-text-wrapper">
......@@ -27,7 +25,7 @@
<studip-icon shape="seminar" role="info_alt"/> {{ getCourseName(bookmark.relationships.course.data.id) }}
</span>
<span v-if="bookmark.relationships.user">
<studip-icon shape="headache" role="info_alt"/> {{ getUserName(bookmark.relationships.user.data.id) }}
<studip-icon shape="content2" role="info_alt"/> {{ $gettext('Arbeitsplatz') }}
</span>
</footer>
</div>
......@@ -58,8 +56,13 @@ export default {
if (this.bookmarkFilter === 'all') {
return this.bookmarks;
}
if (this.bookmarkFilter === 'contents') {
return this.bookmarks.filter(bookmark => {
return bookmark.relationships.user?.data;
});
}
return this.bookmarks.filter(bookmark => {
return bookmark.relationships.course.data.id === this.bookmarkFilter;
return bookmark.relationships.course?.data?.id === this.bookmarkFilter;
});
}
return [];
......@@ -81,12 +84,14 @@ export default {
return user.attributes['formatted-name'];
},
getElementUrl(element) {
if (element.relationships.course.data) {
let cid = element.relationships.course.data.id;
return STUDIP.URLHelper.base_url + 'dispatch.php/course/courseware/?cid='+ cid +'#/structural_element/' + element.id;
const unitId = element.relationships.unit.data.id;
if (element.relationships?.course?.data) {
const cid = element.relationships.course.data.id;
return STUDIP.URLHelper.base_url + 'dispatch.php/course/courseware/courseware/' + unitId + '?cid='+ cid +'#/structural_element/' + element.id;
}
return STUDIP.URLHelper.base_url + 'dispatch.php/contents/courseware/courseware#/structural_element/' + element.id;
return STUDIP.URLHelper.base_url + 'dispatch.php/contents/courseware/courseware/' + unitId + '#/structural_element/' + element.id;
},
getChildStyle(element) {
let url = element.relationships?.image?.meta?.['download-url'];
......
......@@ -21,7 +21,7 @@ const mountApp = (STUDIP, createApp, element) => {
...mapResourceModules({
names: [
'activities',
'users',
'file-refs',
'courses',
'course-memberships',
'courseware-blocks',
......@@ -30,14 +30,15 @@ const mountApp = (STUDIP, createApp, element) => {
'courseware-containers',
'courseware-instances',
'courseware-structural-elements',
'courseware-units',
'courseware-user-data-fields',
'courseware-user-progresses',
'users',
'institutes',
'semesters',
'sem-classes',
'sem-types',
'status-groups',
'users',
],
httpClient,
}),
......@@ -78,4 +79,4 @@ const mountApp = (STUDIP, createApp, element) => {
return app;
}
export default mountApp;
\ No newline at end of file
export default mountApp;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment