MOBILE-3021 calendar: Fix calendar block links
This commit is contained in:
		
							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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user