diff --git a/src/addons/block/courselist/services/block-handler.ts b/src/addons/block/courselist/services/block-handler.ts index 1e58cf26064..7ad62c296dd 100644 --- a/src/addons/block/courselist/services/block-handler.ts +++ b/src/addons/block/courselist/services/block-handler.ts @@ -16,6 +16,8 @@ import { Injectable } from '@angular/core'; import { CoreBlockHandlerData } from '@features/block/services/block-delegate'; import { CoreBlockBaseHandler } from '@features/block/classes/base-block-handler'; import { makeSingleton } from '@singletons'; +import { CoreCourses } from '@features/courses/services/courses'; +import { CoreSites } from '@services/sites'; /** * Block handler. @@ -32,6 +34,22 @@ export class AddonBlockCourseListHandlerService extends CoreBlockBaseHandler { async getDisplayData(): Promise { const { CoreBlockOnlyTitleComponent } = await import('@features/block/components/only-title-block/only-title-block'); + let showCategories = CoreSites.getRequiredCurrentSite().isAdmin(); + if (!showCategories) { + const courses = await CoreCourses.getUserCourses(); + + showCategories = courses.length === 0; + } + + if (showCategories) { // Admins and users without courses, show categories. + return { + title: 'core.courses.categories', + class: 'addon-block-course-list', + component: CoreBlockOnlyTitleComponent, + link: 'courses/categories', + }; + } + return { title: 'core.courses.mycourses', class: 'addon-block-course-list',