MOBILE-2700 blocks: Check if blocks are disabled in site
This commit is contained in:
parent
cd52cfaf6d
commit
6ffefb606a
@ -1,7 +1,7 @@
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_activitymodules.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_activitymodules.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<a ion-item text-wrap *ngFor="let entry of entries" class="item-media" detail-none [navPush]="'CoreCourseListModTypePage'" [navParams]="{title: entry.name, courseId: instanceId, modName: entry.modName}">
|
||||
<img item-start [src]="entry.icon" alt="" role="presentation" class="core-module-icon">
|
||||
<core-format-text [text]="entry.name"></core-format-text>
|
||||
|
@ -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<boolean> {
|
||||
return true;
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,14 +1,14 @@
|
||||
<!-- Buttons to add to the header. -->
|
||||
<core-navbar-buttons end>
|
||||
<button [hidden]="!showFilterSwitchButton()" ion-button icon-only [attr.aria-label]="'core.courses.filtermycourses' | translate" (click)="switchFilter()">
|
||||
<button [hidden]="!loaded || !showFilterSwitchButton()" ion-button icon-only [attr.aria-label]="'core.courses.filtermycourses' | translate" (click)="switchFilter()">
|
||||
<ion-icon name="funnel"></ion-icon>
|
||||
</button>
|
||||
</core-navbar-buttons>
|
||||
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<div padding ion-row justify-content-end [hidden]="showFilter">
|
||||
<!-- "Time" selector. -->
|
||||
<ion-col [hidden]="!showSelectorFilter">
|
||||
|
@ -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<boolean> {
|
||||
return !this.coursesProvider.isMyCoursesDisabledInSite();
|
||||
return this.sitesProvider.getCurrentSite().isVersionGreaterEqualThan('3.6') ||
|
||||
!this.coursesProvider.isMyCoursesDisabledInSite();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_sitemainmenu.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_sitemainmenu.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<ion-item text-wrap *ngIf="block.summary">
|
||||
<core-format-text [text]="block.summary"></core-format-text>
|
||||
</ion-item>
|
||||
|
@ -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<boolean> {
|
||||
return true;
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_timeline.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||
<ion-item-divider color="light">
|
||||
<h2>{{ 'addon.block_timeline.pluginname' | translate }}</h2>
|
||||
</ion-item-divider>
|
||||
<div padding ion-row>
|
||||
<ion-col>
|
||||
<ion-select text-start [(ngModel)]="filter" (ngModelChange)="switchFilter()" interface="popover" class="core-button-select">
|
||||
|
@ -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<boolean> {
|
||||
return this.timelineProvider.isAvailable();
|
||||
return this.timelineProvider.isAvailable() && (this.sitesProvider.getCurrentSite().isVersionGreaterEqualThan('3.6') ||
|
||||
!this.coursesProvider.isMyCoursesDisabledInSite());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user