MOBILE-3002 block: Check if blocks are disabled in courses

main
Pau Ferrer Ocaña 2019-05-16 11:16:24 +02:00
parent a549e70d5f
commit 03b305662e
2 changed files with 15 additions and 2 deletions

View File

@ -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<boolean> {
return this.courseProvider.canGetCourseBlocks();
return this.courseProvider.canGetCourseBlocks() && !this.blockDelegate.areBlocksDisabledInCourses();
}
/**

View File

@ -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.
*