diff --git a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html
index 4e53c8b1f22..d0a56559d64 100644
--- a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html
+++ b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html
@@ -164,7 +164,7 @@
+ size-xl="3" [attr.data-course-id]="course.id" [attr.data-category-id]="course.categoryid">
diff --git a/src/addons/block/timeline/components/events/events.ts b/src/addons/block/timeline/components/events/events.ts
index 9ec3a91dcdc..bea35e13505 100644
--- a/src/addons/block/timeline/components/events/events.ts
+++ b/src/addons/block/timeline/components/events/events.ts
@@ -34,6 +34,7 @@ import { CoreContentLinksHelper } from '@features/contentlinks/services/contentl
],
host: {
'[attr.data-course-id]': 'course()?.id ?? null',
+ '[attr.data-category-id]': 'course()?.categoryid ?? null',
},
})
export class AddonBlockTimelineEventsComponent implements OnInit {
diff --git a/src/core/features/course/components/course-index/course-index.ts b/src/core/features/course/components/course-index/course-index.ts
index 55f2c627bf3..99c11c32e4e 100644
--- a/src/core/features/course/components/course-index/course-index.ts
+++ b/src/core/features/course/components/course-index/course-index.ts
@@ -57,6 +57,10 @@ export class CoreCourseCourseIndexComponent implements OnInit {
return this.course?.id ?? null;
}
+ @HostBinding('attr.data-category-id') protected get courseCategoryId(): number | null {
+ return this.course?.categoryid ?? null;
+ }
+
/**
* @inheritdoc
*/
diff --git a/src/core/features/course/pages/contents/contents.ts b/src/core/features/course/pages/contents/contents.ts
index a9e26eff75e..e131a974a84 100644
--- a/src/core/features/course/pages/contents/contents.ts
+++ b/src/core/features/course/pages/contents/contents.ts
@@ -97,6 +97,10 @@ export default class CoreCourseContentsPage implements OnInit, OnDestroy, CoreRe
return this.course?.id ?? null;
}
+ @HostBinding('attr.data-category-id') protected get courseCategoryId(): number | null {
+ return this.course?.categoryid ?? null;
+ }
+
/**
* @inheritdoc
*/
diff --git a/src/core/features/course/pages/course-summary/course-summary.ts b/src/core/features/course/pages/course-summary/course-summary.ts
index 39467fc4d17..c8b97982179 100644
--- a/src/core/features/course/pages/course-summary/course-summary.ts
+++ b/src/core/features/course/pages/course-summary/course-summary.ts
@@ -91,6 +91,10 @@ export default class CoreCourseSummaryPage implements OnInit, OnDestroy {
return this.course?.id ?? null;
}
+ @HostBinding('attr.data-category-id') protected get courseCategoryId(): number | null {
+ return this.course?.categoryid ?? null;
+ }
+
constructor() {
// Refresh the view when the app is resumed.
this.appResumeSubscription = CorePlatform.resume.subscribe(() => {
diff --git a/src/core/features/course/pages/index/index.ts b/src/core/features/course/pages/index/index.ts
index 9d074cb6e2e..54713f1014d 100644
--- a/src/core/features/course/pages/index/index.ts
+++ b/src/core/features/course/pages/index/index.ts
@@ -80,6 +80,10 @@ export default class CoreCourseIndexPage implements OnInit, OnDestroy {
return this.course?.id ?? null;
}
+ @HostBinding('attr.data-category-id') protected get courseCategoryId(): number | null {
+ return this.course?.categoryid ?? null;
+ }
+
constructor() {
this.selectTabObserver = CoreEvents.on(CORE_COURSE_SELECT_TAB, (data) => {
const index = data.selectedTab
diff --git a/src/core/features/courses/components/course-list-item/course-list-item.ts b/src/core/features/courses/components/course-list-item/course-list-item.ts
index 6d12362ce21..a1c1e1eb352 100644
--- a/src/core/features/courses/components/course-list-item/course-list-item.ts
+++ b/src/core/features/courses/components/course-list-item/course-list-item.ts
@@ -63,6 +63,7 @@ import { CoreEnrolInfoIcon } from '@features/enrol/services/enrol-delegate';
],
host: {
'[attr.data-course-id]': 'course.id',
+ '[attr.data-category-id]': 'course.categoryid',
},
})
export class CoreCoursesCourseListItemComponent implements OnInit, OnDestroy, OnChanges {
diff --git a/src/core/features/grades/pages/course/course.ts b/src/core/features/grades/pages/course/course.ts
index eaddee78e0c..cc8615ac6c1 100644
--- a/src/core/features/grades/pages/course/course.ts
+++ b/src/core/features/grades/pages/course/course.ts
@@ -47,6 +47,9 @@ import { CoreSharedModule } from '@/core/shared.module';
imports: [
CoreSharedModule,
],
+ host: {
+ '[attr.data-course-id]': 'courseId ?? null',
+ },
})
export default class CoreGradesCoursePage implements AfterViewInit, OnDestroy {
diff --git a/src/core/features/grades/pages/courses/courses.html b/src/core/features/grades/pages/courses/courses.html
index ba24b083f57..6aa3454b092 100644
--- a/src/core/features/grades/pages/courses/courses.html
+++ b/src/core/features/grades/pages/courses/courses.html
@@ -20,7 +20,8 @@ {{ 'core.grades.grades' | translate }}
@for (course of courses.items; track course.courseid) {
+ [attr.data-course-id]="course.courseid" class="ion-text-wrap" button [detail]="true"
+ (click)="courses.select(course)">