From 6ffefb606a0c957ec1fba736205ed0156f9f0b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 25 Oct 2018 11:15:30 +0200 Subject: [PATCH] MOBILE-2700 blocks: Check if blocks are disabled in site --- .../addon-block-activitymodules.html | 6 +++--- .../providers/block-handler.ts | 20 ++++++------------- .../myoverview/addon-block-myoverview.html | 8 ++++---- .../myoverview/providers/block-handler.ts | 17 +++++++++------- .../addon-block-sitemainmenu.html | 6 +++--- .../sitemainmenu/providers/block-handler.ts | 20 ++++++------------- .../timeline/addon-block-timeline.html | 6 +++--- .../block/timeline/providers/block-handler.ts | 20 ++++++++++++------- .../block/providers/default-block-handler.ts | 2 +- src/core/block/providers/delegate.ts | 2 ++ 10 files changed, 51 insertions(+), 56 deletions(-) diff --git a/src/addon/block/activitymodules/components/activitymodules/addon-block-activitymodules.html b/src/addon/block/activitymodules/components/activitymodules/addon-block-activitymodules.html index 02986ea4d..8d42ff51c 100644 --- a/src/addon/block/activitymodules/components/activitymodules/addon-block-activitymodules.html +++ b/src/addon/block/activitymodules/components/activitymodules/addon-block-activitymodules.html @@ -1,7 +1,7 @@ + +

{{ 'addon.block_activitymodules.pluginname' | translate }}

+
- -

{{ 'addon.block_activitymodules.pluginname' | translate }}

-
diff --git a/src/addon/block/activitymodules/providers/block-handler.ts b/src/addon/block/activitymodules/providers/block-handler.ts index df211ecec..0024324c9 100644 --- a/src/addon/block/activitymodules/providers/block-handler.ts +++ b/src/addon/block/activitymodules/providers/block-handler.ts @@ -13,28 +13,20 @@ // limitations under the License. import { Injectable, Injector } from '@angular/core'; -import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; +import { CoreBlockHandlerData } from '@core/block/providers/delegate'; import { AddonBlockActivityModulesComponent } from '../components/activitymodules/activitymodules'; +import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; /** - * Course nav handler. + * Block handler. */ @Injectable() -export class AddonBlockActivityModulesHandler implements CoreBlockHandler { - name = 'AddonBlockActivityModulesHandler'; +export class AddonBlockActivityModulesHandler extends CoreBlockBaseHandler { + name = 'AddonBlockActivityModules'; blockName = 'activity_modules'; constructor() { - // Nothing to do. - } - - /** - * Check if the handler is enabled on a site level. - * - * @return {boolean} Whether or not the handler is enabled on a site level. - */ - isEnabled(): boolean | Promise { - return true; + super(); } /** diff --git a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html index 07554c0ac..aad7b8ca0 100644 --- a/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -1,14 +1,14 @@ - + +

{{ 'addon.block_myoverview.pluginname' | translate }}

+
- -

{{ 'addon.block_myoverview.pluginname' | translate }}

-
diff --git a/src/addon/block/myoverview/providers/block-handler.ts b/src/addon/block/myoverview/providers/block-handler.ts index 995bd981c..5f723467c 100644 --- a/src/addon/block/myoverview/providers/block-handler.ts +++ b/src/addon/block/myoverview/providers/block-handler.ts @@ -13,20 +13,22 @@ // limitations under the License. import { Injectable, Injector } from '@angular/core'; -import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; +import { CoreSitesProvider } from '@providers/sites'; +import { CoreBlockHandlerData } from '@core/block/providers/delegate'; import { CoreCoursesProvider } from '@core/courses/providers/courses'; import { AddonBlockMyOverviewComponent } from '../components/myoverview/myoverview'; +import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; /** - * Course nav handler. + * Block handler. */ @Injectable() -export class AddonBlockMyOverviewHandler implements CoreBlockHandler { - name = 'AddonBlockMyOverviewHandler'; +export class AddonBlockMyOverviewHandler extends CoreBlockBaseHandler { + name = 'AddonBlockMyOverview'; blockName = 'myoverview'; - constructor(private coursesProvider: CoreCoursesProvider) { - // Nothing to do. + constructor(private coursesProvider: CoreCoursesProvider, private sitesProvider: CoreSitesProvider) { + super(); } /** @@ -35,7 +37,8 @@ export class AddonBlockMyOverviewHandler implements CoreBlockHandler { * @return {boolean} Whether or not the handler is enabled on a site level. */ isEnabled(): boolean | Promise { - return !this.coursesProvider.isMyCoursesDisabledInSite(); + return this.sitesProvider.getCurrentSite().isVersionGreaterEqualThan('3.6') || + !this.coursesProvider.isMyCoursesDisabledInSite(); } /** diff --git a/src/addon/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html b/src/addon/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html index 011ce4b9a..74ec899a7 100644 --- a/src/addon/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html +++ b/src/addon/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html @@ -1,7 +1,7 @@ + +

{{ 'addon.block_sitemainmenu.pluginname' | translate }}

+
- -

{{ 'addon.block_sitemainmenu.pluginname' | translate }}

-
diff --git a/src/addon/block/sitemainmenu/providers/block-handler.ts b/src/addon/block/sitemainmenu/providers/block-handler.ts index 09a94796d..8c699aff0 100644 --- a/src/addon/block/sitemainmenu/providers/block-handler.ts +++ b/src/addon/block/sitemainmenu/providers/block-handler.ts @@ -13,28 +13,20 @@ // limitations under the License. import { Injectable, Injector } from '@angular/core'; -import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; +import { CoreBlockHandlerData } from '@core/block/providers/delegate'; import { AddonBlockSiteMainMenuComponent } from '../components/sitemainmenu/sitemainmenu'; +import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; /** - * Course nav handler. + * Block handler. */ @Injectable() -export class AddonBlockSiteMainMenuHandler implements CoreBlockHandler { - name = 'AddonBlockSiteMainMenuHandler'; +export class AddonBlockSiteMainMenuHandler extends CoreBlockBaseHandler { + name = 'AddonBlockSiteMainMenu'; blockName = 'site_main_menu'; constructor() { - // Nothing to do. - } - - /** - * Check if the handler is enabled on a site level. - * - * @return {boolean} Whether or not the handler is enabled on a site level. - */ - isEnabled(): boolean | Promise { - return true; + super(); } /** diff --git a/src/addon/block/timeline/components/timeline/addon-block-timeline.html b/src/addon/block/timeline/components/timeline/addon-block-timeline.html index 54682a729..50096c64f 100644 --- a/src/addon/block/timeline/components/timeline/addon-block-timeline.html +++ b/src/addon/block/timeline/components/timeline/addon-block-timeline.html @@ -1,7 +1,7 @@ + +

{{ 'addon.block_timeline.pluginname' | translate }}

+
- -

{{ 'addon.block_timeline.pluginname' | translate }}

-
diff --git a/src/addon/block/timeline/providers/block-handler.ts b/src/addon/block/timeline/providers/block-handler.ts index a05f8c01f..c0f60e7dd 100644 --- a/src/addon/block/timeline/providers/block-handler.ts +++ b/src/addon/block/timeline/providers/block-handler.ts @@ -13,20 +13,25 @@ // limitations under the License. import { Injectable, Injector } from '@angular/core'; -import { CoreBlockHandler, CoreBlockHandlerData } from '@core/block/providers/delegate'; +import { CoreSitesProvider } from '@providers/sites'; +import { CoreBlockHandlerData } from '@core/block/providers/delegate'; +import { CoreCoursesProvider } from '@core/courses/providers/courses'; import { AddonBlockTimelineProvider } from '@addon/block/timeline/providers/timeline'; import { AddonBlockTimelineComponent } from '../components/timeline/timeline'; +import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler'; /** - * Course nav handler. + * Block handler. */ @Injectable() -export class AddonBlockTimelineHandler implements CoreBlockHandler { - name = 'AddonBlockTimelineHandler'; +export class AddonBlockTimelineHandler extends CoreBlockBaseHandler { + name = 'AddonBlockTimeline'; blockName = 'timeline'; - constructor(private timelineProvider: AddonBlockTimelineProvider) { - // Nothing to do. + constructor(private timelineProvider: AddonBlockTimelineProvider, private coursesProvider: CoreCoursesProvider, + private sitesProvider: CoreSitesProvider) { + + super(); } /** @@ -35,7 +40,8 @@ export class AddonBlockTimelineHandler implements CoreBlockHandler { * @return {boolean} Whether or not the handler is enabled on a site level. */ isEnabled(): boolean | Promise { - return this.timelineProvider.isAvailable(); + return this.timelineProvider.isAvailable() && (this.sitesProvider.getCurrentSite().isVersionGreaterEqualThan('3.6') || + !this.coursesProvider.isMyCoursesDisabledInSite()); } /** diff --git a/src/core/block/providers/default-block-handler.ts b/src/core/block/providers/default-block-handler.ts index c4d04891f..23257b2c5 100644 --- a/src/core/block/providers/default-block-handler.ts +++ b/src/core/block/providers/default-block-handler.ts @@ -21,7 +21,7 @@ import { CoreBlockBaseHandler } from '../classes/base-block-handler'; @Injectable() export class CoreBlockDefaultHandler extends CoreBlockBaseHandler { name = 'CoreBlockDefault'; - type = 'default'; + blockName = 'default'; constructor() { super(); diff --git a/src/core/block/providers/delegate.ts b/src/core/block/providers/delegate.ts index b6d605bfa..363dff591 100644 --- a/src/core/block/providers/delegate.ts +++ b/src/core/block/providers/delegate.ts @@ -80,6 +80,8 @@ export class CoreBlockDelegate extends CoreDelegate { protected handlerNameProperty = 'blockName'; + protected featurePrefix = 'CoreBlockDelegate_'; + constructor(logger: CoreLoggerProvider, sitesProvider: CoreSitesProvider, eventsProvider: CoreEventsProvider, protected defaultHandler: CoreBlockDefaultHandler) { super('CoreBlockDelegate', logger, sitesProvider, eventsProvider);