MOBILE-3021 calendar: Fix calendar block links

main
Dani Palou 2019-07-19 09:07:53 +02:00
parent 31c92398b3
commit d7d565086b
2 changed files with 23 additions and 6 deletions

View File

@ -16,6 +16,7 @@ import { Injectable, Injector } from '@angular/core';
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
import { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
import { AddonCalendarProvider } from '@addon/calendar/providers/calendar';
/**
* Block handler.
@ -25,7 +26,7 @@ export class AddonBlockCalendarMonthHandler extends CoreBlockBaseHandler {
name = 'AddonBlockCalendarMonth';
blockName = 'calendar_month';
constructor() {
constructor(private calendarProvider: AddonCalendarProvider) {
super();
}
@ -41,12 +42,19 @@ export class AddonBlockCalendarMonthHandler extends CoreBlockBaseHandler {
getDisplayData(injector: Injector, block: any, contextLevel: string, instanceId: number)
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
let link = 'AddonCalendarListPage';
const linkParams: any = contextLevel == 'course' ? { courseId: instanceId } : {};
if (this.calendarProvider.canViewMonthInSite()) {
link = 'AddonCalendarIndexPage';
}
return {
title: 'addon.block_calendarmonth.pluginname',
class: 'addon-block-calendar-month',
component: CoreBlockOnlyTitleComponent,
link: 'AddonCalendarListPage',
linkParams: contextLevel == 'course' ? { courseId: instanceId } : null
link: link,
linkParams: linkParams
};
}
}

View File

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