From 03b305662e3c479127c4180847e277f0b7922a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 16 May 2019 11:16:24 +0200 Subject: [PATCH] MOBILE-3002 block: Check if blocks are disabled in courses --- src/core/block/providers/course-option-handler.ts | 5 +++-- src/core/block/providers/delegate.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/core/block/providers/course-option-handler.ts b/src/core/block/providers/course-option-handler.ts index 7e38227f5..893904ed8 100644 --- a/src/core/block/providers/course-option-handler.ts +++ b/src/core/block/providers/course-option-handler.ts @@ -16,6 +16,7 @@ import { Injectable, Injector } from '@angular/core'; import { CoreCourseOptionsHandler, CoreCourseOptionsHandlerData } from '@core/course/providers/options-delegate'; import { CoreCourseProvider } from '@core/course/providers/course'; import { CoreBlockCourseBlocksComponent } from '../components/course-blocks/course-blocks'; +import { CoreBlockDelegate } from './delegate'; /** * Course nav handler. @@ -25,7 +26,7 @@ export class CoreBlockCourseBlocksCourseOptionHandler implements CoreCourseOptio name = 'CoreCourseBlocks'; priority = 700; - constructor(private courseProvider: CoreCourseProvider) {} + constructor(private courseProvider: CoreCourseProvider, private blockDelegate: CoreBlockDelegate) {} /** * Should invalidate the data to determine if the handler is enabled for a certain course. @@ -45,7 +46,7 @@ export class CoreBlockCourseBlocksCourseOptionHandler implements CoreCourseOptio * @return {boolean} Whether or not the handler is enabled on a site level. */ isEnabled(): boolean | Promise { - return this.courseProvider.canGetCourseBlocks(); + return this.courseProvider.canGetCourseBlocks() && !this.blockDelegate.areBlocksDisabledInCourses(); } /** diff --git a/src/core/block/providers/delegate.ts b/src/core/block/providers/delegate.ts index b4e6fcf40..7f0f245f3 100644 --- a/src/core/block/providers/delegate.ts +++ b/src/core/block/providers/delegate.ts @@ -117,6 +117,18 @@ export class CoreBlockDelegate extends CoreDelegate { return site.isFeatureDisabled('NoDelegate_SiteBlocks'); } + /** + * Check if blocks are disabled in a certain site for courses. + * + * @param {CoreSite} [site] Site. If not defined, use current site. + * @return {boolean} Whether it's disabled. + */ + areBlocksDisabledInCourses(site?: CoreSite): boolean { + site = site || this.sitesProvider.getCurrentSite(); + + return site.isFeatureDisabled('NoDelegate_CourseBlocks'); + } + /** * Check if blocks are disabled in a certain site. *