diff --git a/src/addons/block/block.module.ts b/src/addons/block/block.module.ts index fb0db615c..98738faf6 100644 --- a/src/addons/block/block.module.ts +++ b/src/addons/block/block.module.ts @@ -24,6 +24,7 @@ import { AddonBlockCalendarMonthModule } from './calendarmonth/calendarmonth.mod import { AddonBlockCalendarUpcomingModule } from './calendarupcoming/calendarupcoming.module'; import { AddonBlockCommentsModule } from './comments/comments.module'; import { AddonBlockCompletionStatusModule } from './completionstatus/completionstatus.module'; +import { AddonBlockCourseListModule } from './courselist/courselist.module'; import { AddonBlockGlossaryRandomModule } from './glossaryrandom/glossaryrandom.module'; import { AddonBlockHtmlModule } from './html/html.module'; import { AddonBlockLearningPlansModule } from './learningplans/learningplans.module'; @@ -53,6 +54,7 @@ import { AddonBlockTimelineModule } from './timeline/timeline.module'; AddonBlockCalendarUpcomingModule, AddonBlockCommentsModule, AddonBlockCompletionStatusModule, + AddonBlockCourseListModule, AddonBlockGlossaryRandomModule, AddonBlockHtmlModule, AddonBlockLearningPlansModule, diff --git a/src/addons/block/courselist/courselist.module.ts b/src/addons/block/courselist/courselist.module.ts new file mode 100644 index 000000000..e8ae2b06e --- /dev/null +++ b/src/addons/block/courselist/courselist.module.ts @@ -0,0 +1,36 @@ +// (C) Copyright 2015 Moodle Pty Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { TranslateModule } from '@ngx-translate/core'; +import { CoreBlockDelegate } from '@features/block/services/block-delegate'; +import { AddonBlockCourseListHandler } from './services/block-handler'; + +@NgModule({ + imports: [ + IonicModule, + TranslateModule.forChild(), + ], + providers: [ + { + provide: APP_INITIALIZER, + multi: true, + useValue: () => { + CoreBlockDelegate.registerHandler(AddonBlockCourseListHandler.instance); + }, + }, + ], +}) +export class AddonBlockCourseListModule {} diff --git a/src/addons/block/courselist/services/block-handler.ts b/src/addons/block/courselist/services/block-handler.ts new file mode 100644 index 000000000..fc4841f8f --- /dev/null +++ b/src/addons/block/courselist/services/block-handler.ts @@ -0,0 +1,49 @@ +// (C) Copyright 2015 Moodle Pty Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { Injectable } from '@angular/core'; +import { CoreBlockHandlerData } from '@features/block/services/block-delegate'; +import { CoreBlockOnlyTitleComponent } from '@features/block/components/only-title-block/only-title-block'; +import { CoreBlockBaseHandler } from '@features/block/classes/base-block-handler'; +import { makeSingleton } from '@singletons'; + +/** + * Block handler. + */ +@Injectable({ providedIn: 'root' }) +export class AddonBlockCourseListHandlerService extends CoreBlockBaseHandler { + + name = 'AddonBlockCourseList'; + blockName = 'course_list'; + + /** + * @inheritdoc + */ + getDisplayData(): CoreBlockHandlerData { + + return { + title: 'core.courses.mycourses', + class: 'addon-block-course-list', + component: CoreBlockOnlyTitleComponent, + link: 'courses/list', + linkParams: { mode: 'my' }, + navOptions: { + preferCurrentTab: false, + }, + }; + } + +} + +export const AddonBlockCourseListHandler = makeSingleton(AddonBlockCourseListHandlerService);