diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss
index 8d8ac67246479e6c4fa783db34fc0a61ae1c3089..195ee15a2be96e44adc42cdd06a7f3c7d0df3c05 100644
--- a/resources/assets/stylesheets/scss/courseware.scss
+++ b/resources/assets/stylesheets/scss/courseware.scss
@@ -2578,14 +2578,9 @@ d a s h b o a r d  e n d
 * * * * * * * * * * * */
 .cw-unit-progress {
     .cw-unit-progress-breadcrumb {
-        padding: 10px;
-        span {
-            color: $base-color;
-            cursor: pointer;
-
-            &:hover {
-                color: $active-color;
-            }
+        padding: 10px 0;
+        a img {
+            vertical-align: top;
         }
     }
 
@@ -2615,7 +2610,7 @@ d a s h b o a r d  e n d
         border-top: solid thin $content-color-40;
         padding: 0 1em 0 1em;
 
-        .cw-dashboard-empty-info {
+        .cw-unit-empty-info {
             margin-top: 10px;
         }
     }
diff --git a/resources/vue/components/courseware/CoursewareTile.vue b/resources/vue/components/courseware/CoursewareTile.vue
index 6976acec1d7a24b904315db5223b44dbf1a116b0..f396769eb937457500120e0116e76f0d885224c6 100644
--- a/resources/vue/components/courseware/CoursewareTile.vue
+++ b/resources/vue/components/courseware/CoursewareTile.vue
@@ -40,6 +40,8 @@
 </template>
 
 <script>
+import { mapGetters } from 'vuex';
+
 export default {
     name: "courseware-tile",
     props: {
@@ -103,6 +105,9 @@ export default {
         }
     },
     computed: {
+        ...mapGetters({
+            userIsTeacher: 'userIsTeacher'
+        }),
         hasImage() {
             return this.imageUrl !== "" && this.imageUrl !== undefined;
         },
@@ -121,7 +126,10 @@ export default {
             }
         },
         progressTitle() {
-            return this.$gettextInterpolate(this.$gettext("Fortschritt: %{progress}%"), { progress: this.progress });
+            if (this.userIsTeacher) {
+                return this.$gettextInterpolate(this.$gettext("Fortschritt aller Teilnehmenden: %{progress}%"), { progress: this.progress });    
+            }
+            return this.$gettextInterpolate(this.$gettext("Mein Fortschritt: %{progress}%"), { progress: this.progress });
         },
         hasDescriptionLink() {
             return this.descriptionLink !== '';
@@ -134,4 +142,4 @@ export default {
         }
     },
 }
-</script>
\ No newline at end of file
+</script>
diff --git a/resources/vue/components/courseware/CoursewareUnitItem.vue b/resources/vue/components/courseware/CoursewareUnitItem.vue
index 67c1279031bef487370b77eccc01b4d88ff15afe..91b94a2e6b1508d69d0973344f3d5011631cd95f 100644
--- a/resources/vue/components/courseware/CoursewareUnitItem.vue
+++ b/resources/vue/components/courseware/CoursewareUnitItem.vue
@@ -15,6 +15,7 @@
                     class="cw-unit-action-menu"
                     :items="menuItems"  
                     :context="title"
+                    :collapseAt="0"
                     @showDelete="openDeleteDialog"
                     @showExport="openExportDialog"
                     @showProgress="openProgressDialog"
@@ -41,7 +42,7 @@
 
         <studip-dialog
             v-if="showProgressDialog"
-            :title="$gettext('Fortschritt')"
+            :title="userIsTeacher ? $gettext('Fortschritt aller Teilnehmenden') : $gettext('Mein Fortschritt')"
             :closeText="$gettext('Schließen')"
             closeClass="cancel"
             width="800"
@@ -49,7 +50,7 @@
             @close="closeProgressDialog"
         >
             <template v-slot:dialogContent>
-                <courseware-unit-progress :progressData="progresses" :unitId="unit.id" :rootId="unitElement.id"/>
+                <courseware-unit-progress :progressData="progresses" :unitId="unit.id" :rootId="parseInt(unitElement.id)"/>
             </template>
         </studip-dialog>
 
diff --git a/resources/vue/components/courseware/CoursewareUnitProgress.vue b/resources/vue/components/courseware/CoursewareUnitProgress.vue
index 61b53500a6bab95915c07676cf3881569d2bb5a2..6c7528ff2813601d1e066459fe73be0548980f90 100644
--- a/resources/vue/components/courseware/CoursewareUnitProgress.vue
+++ b/resources/vue/components/courseware/CoursewareUnitProgress.vue
@@ -1,29 +1,29 @@
 <template>
     <div class="cw-unit-progress">
+        <p v-if="userIsTeacher">
+            {{
+                $gettext('Die Fortschrittsanzeige bezieht sich auf den Anteil der Teilnehmenden, die eine Seite aufgerufen haben.')
+            }}
+        </p>
         <nav aria-label="Breadcrumb" class="cw-unit-progress-breadcrumb">
-            <a
-                v-if="parent"
-                href="#"
-                :title="$gettext('Hauptseite')"
-                @click="visitRoot"
-            >
+            <a v-if="parent" href="#" :title="$gettext('Hauptseite')" @click="visitRoot">
                 <studip-icon shape="home" />
             </a>
-            <a
-                v-if="parent"
-                href="#"
-                :title="parent.name"
-                @click="selectChapter(parent.id)"
-            >
-                / {{ parent.name }}
+            <a v-if="parent && parent.id !== rootId" href="#" :title="parent.name" @click="selectChapter(parent.id)">
+                | {{ parent.name }}
             </a>
         </nav>
         <div v-if="selected" class="cw-unit-progress-chapter">
-            <a :href="chapterUrl" :title="$gettextInterpolate('%{ pageTitle } öffnen', {pageTitle: selected.name})">
-                <h1>{{ selected.name }}</h1>
-            </a>
+            <h1>
+                <a
+                    :href="chapterUrl"
+                    :title="$gettextInterpolate('%{ pageTitle } öffnen', { pageTitle: selected.name })"
+                >
+                    {{ selected.name }}
+                </a>
+            </h1>
             <courseware-progress-circle
-                :title="$gettext('diese Seite inkl. darunter liegende Seiten')"
+                :title="selected.id === rootId ? $gettext('Gesamtes Lernmaterial') : $gettext('diese Seite inkl. darunter liegender Seiten')"
                 :value="parseInt(selected.progress.cumulative)"
             />
             <courseware-progress-circle
@@ -32,7 +32,7 @@
                 :value="parseInt(selected.progress.self)"
             />
         </div>
-        <div class="cw-unit-progress-subchapter-list">
+        <div v-if="children.length > 0" class="cw-unit-progress-subchapter-list">
             <courseware-unit-progress-item
                 v-for="chapter in children"
                 :key="chapter.id"
@@ -41,12 +41,12 @@
                 :chapterId="chapter.id"
                 @selectChapter="selectChapter"
             />
-            <div v-if="!children.length" class="cw-unit-empty-info">
-                <courseware-companion-box 
-                    mood="sad"
-                    :msgCompanion="$gettext('Diese Seite enthält keine darunter liegenden Seiten.')"
-                />
-            </div>
+        </div>
+        <div v-else class="cw-unit-empty-info">
+            <courseware-companion-box
+                mood="sad"
+                :msgCompanion="$gettext('Diese Seite enthält keine darunter liegenden Seiten.')"
+            />
         </div>
     </div>
 </template>
@@ -57,6 +57,8 @@ import CoursewareUnitProgressItem from './CoursewareUnitProgressItem.vue';
 import CoursewareProgressCircle from './CoursewareProgressCircle.vue';
 import StudipIcon from '../StudipIcon.vue';
 
+import { mapGetters } from 'vuex';
+
 export default {
     name: 'courseware-unit-progress',
     components: {
@@ -68,7 +70,7 @@ export default {
     props: {
         progressData: Object,
         unitId: String,
-        rootId: String
+        rootId: Number,
     },
     data() {
         return {
@@ -76,13 +78,12 @@ export default {
         };
     },
     computed: {
+        ...mapGetters({
+            userIsTeacher: 'userIsTeacher',
+        }),
         chapterUrl() {
             return (
-                STUDIP.URLHelper.base_url +
-                'dispatch.php/course/courseware/courseware/'+
-                this.unitId +
-                '?cid=' +
-                STUDIP.URLHelper.parameters.cid +
+                STUDIP.URLHelper.getURL('dispatch.php/course/courseware/courseware/' + this.unitId) +
                 '#/structural_element/' +
                 this.selected.id
             );