MOBILE-3021 calendar: Fix calendar block links
parent
31c92398b3
commit
d7d565086b
|
@ -16,6 +16,7 @@ import { Injectable, Injector } from '@angular/core';
|
||||||
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
|
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
|
||||||
import { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
|
import { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
|
||||||
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
||||||
|
import { AddonCalendarProvider } from '@addon/calendar/providers/calendar';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block handler.
|
* Block handler.
|
||||||
|
@ -25,7 +26,7 @@ export class AddonBlockCalendarMonthHandler extends CoreBlockBaseHandler {
|
||||||
name = 'AddonBlockCalendarMonth';
|
name = 'AddonBlockCalendarMonth';
|
||||||
blockName = 'calendar_month';
|
blockName = 'calendar_month';
|
||||||
|
|
||||||
constructor() {
|
constructor(private calendarProvider: AddonCalendarProvider) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,12 +42,19 @@ export class AddonBlockCalendarMonthHandler extends CoreBlockBaseHandler {
|
||||||
getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number)
|
getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number)
|
||||||
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
|
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
|
||||||
|
|
||||||
|
let link = 'AddonCalendarListPage';
|
||||||
|
const linkParams: any = contextLevel == 'course' ? { courseId: instanceId } : {};
|
||||||
|
|
||||||
|
if (this.calendarProvider.canViewMonthInSite()) {
|
||||||
|
link = 'AddonCalendarIndexPage';
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: 'addon.block_calendarmonth.pluginname',
|
title: 'addon.block_calendarmonth.pluginname',
|
||||||
class: 'addon-block-calendar-month',
|
class: 'addon-block-calendar-month',
|
||||||
component: CoreBlockOnlyTitleComponent,
|
component: CoreBlockOnlyTitleComponent,
|
||||||
link: 'AddonCalendarListPage',
|
link: link,
|
||||||
linkParams: contextLevel == 'course' ? { courseId: instanceId } : null
|
linkParams: linkParams
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { Injectable, Injector } from '@angular/core';
|
||||||
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
|
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
|
||||||
import { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
|
import { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
|
||||||
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
||||||
|
import { AddonCalendarProvider } from '@addon/calendar/providers/calendar';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block handler.
|
* Block handler.
|
||||||
|
@ -25,7 +26,7 @@ export class AddonBlockCalendarUpcomingHandler extends CoreBlockBaseHandler {
|
||||||
name = 'AddonBlockCalendarUpcoming';
|
name = 'AddonBlockCalendarUpcoming';
|
||||||
blockName = 'calendar_upcoming';
|
blockName = 'calendar_upcoming';
|
||||||
|
|
||||||
constructor() {
|
constructor(private calendarProvider: AddonCalendarProvider) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,12 +42,20 @@ export class AddonBlockCalendarUpcomingHandler extends CoreBlockBaseHandler {
|
||||||
getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number)
|
getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number)
|
||||||
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
|
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
|
||||||
|
|
||||||
|
let link = 'AddonCalendarListPage';
|
||||||
|
const linkParams: any = contextLevel == 'course' ? { courseId: instanceId } : {};
|
||||||
|
|
||||||
|
if (this.calendarProvider.canViewMonthInSite()) {
|
||||||
|
link = 'AddonCalendarIndexPage';
|
||||||
|
linkParams.upcoming = true;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: 'addon.block_calendarupcoming.pluginname',
|
title: 'addon.block_calendarupcoming.pluginname',
|
||||||
class: 'addon-block-calendar-upcoming',
|
class: 'addon-block-calendar-upcoming',
|
||||||
component: CoreBlockOnlyTitleComponent,
|
component: CoreBlockOnlyTitleComponent,
|
||||||
link: 'AddonCalendarListPage',
|
link: link,
|
||||||
linkParams: contextLevel == 'course' ? { courseId: instanceId } : null
|
linkParams: linkParams
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue