From 30fa93d1b4e201d020a57720f5ad979386cf04b2 Mon Sep 17 00:00:00 2001 From: Alfonso Salces Date: Tue, 28 Oct 2025 14:05:54 +0100 Subject: [PATCH] MOBILE-4921 courses: Add course category id and course id in data attributes --- .../components/myoverview/addon-block-myoverview.html | 2 +- src/addons/block/timeline/components/events/events.ts | 1 + .../features/course/components/course-index/course-index.ts | 4 ++++ src/core/features/course/pages/contents/contents.ts | 4 ++++ .../features/course/pages/course-summary/course-summary.ts | 4 ++++ src/core/features/course/pages/index/index.ts | 4 ++++ .../courses/components/course-list-item/course-list-item.ts | 1 + src/core/features/grades/pages/course/course.ts | 3 +++ src/core/features/grades/pages/courses/courses.html | 3 ++- 9 files changed, 24 insertions(+), 2 deletions(-) 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)">