Merge pull request #2605 from crazyserver/MOBILE-3565
MOBILE-3565 courses: Add priority to dashboard
This commit is contained in:
		
						commit
						f581dbcc7c
					
				| @ -16,9 +16,7 @@ import { NgModule } from '@angular/core'; | |||||||
| import { Routes } from '@angular/router'; | import { Routes } from '@angular/router'; | ||||||
| import { CoreHomeRoutingModule } from '../mainmenu/pages/home/home-routing.module'; | import { CoreHomeRoutingModule } from '../mainmenu/pages/home/home-routing.module'; | ||||||
| import { CoreHomeDelegate } from '../mainmenu/services/home.delegate'; | import { CoreHomeDelegate } from '../mainmenu/services/home.delegate'; | ||||||
| import { CoreCoursesDashboardHandler } from './services/handlers/dashboard'; | import { CoreDashboardHomeHandler } from './services/handlers/dashboard.home'; | ||||||
| import { CoreCoursesDashboardPage } from './pages/dashboard/dashboard.page'; |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
|     { |     { | ||||||
| @ -32,14 +30,14 @@ const routes: Routes = [ | |||||||
|     imports: [CoreHomeRoutingModule.forChild(routes)], |     imports: [CoreHomeRoutingModule.forChild(routes)], | ||||||
|     exports: [CoreHomeRoutingModule], |     exports: [CoreHomeRoutingModule], | ||||||
|     providers: [ |     providers: [ | ||||||
|         CoreCoursesDashboardHandler, |         CoreDashboardHomeHandler, | ||||||
|     ], |     ], | ||||||
| }) | }) | ||||||
| export class CoreCoursesModule { | export class CoreCoursesModule { | ||||||
| 
 | 
 | ||||||
|     constructor( |     constructor( | ||||||
|         homeDelegate: CoreHomeDelegate, |         homeDelegate: CoreHomeDelegate, | ||||||
|         coursesDashboardHandler: CoreCoursesDashboardHandler, |         coursesDashboardHandler: CoreDashboardHomeHandler, | ||||||
|     ) { |     ) { | ||||||
|         homeDelegate.registerHandler(coursesDashboardHandler); |         homeDelegate.registerHandler(coursesDashboardHandler); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -13,13 +13,13 @@ | |||||||
| // limitations under the License.
 | // limitations under the License.
 | ||||||
| 
 | 
 | ||||||
| import { Injectable } from '@angular/core'; | import { Injectable } from '@angular/core'; | ||||||
| import { CoreHomeHandler, CoreHomeHandlerData } from '@core/mainmenu/services/home.delegate'; | import { CoreHomeHandler, CoreHomeHandlerToDisplay } from '@core/mainmenu/services/home.delegate'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Handler to add Home into main menu. |  * Handler to add Home into main menu. | ||||||
|  */ |  */ | ||||||
| Injectable(); | Injectable(); | ||||||
| export class CoreCoursesDashboardHandler implements CoreHomeHandler { | export class CoreDashboardHomeHandler implements CoreHomeHandler { | ||||||
| 
 | 
 | ||||||
|     name = 'CoreCoursesDashboard'; |     name = 'CoreCoursesDashboard'; | ||||||
|     priority = 1100; |     priority = 1100; | ||||||
| @ -50,12 +50,13 @@ export class CoreCoursesDashboardHandler implements CoreHomeHandler { | |||||||
|      * |      * | ||||||
|      * @return Data needed to render the handler. |      * @return Data needed to render the handler. | ||||||
|      */ |      */ | ||||||
|     getDisplayData(): CoreHomeHandlerData { |     getDisplayData(): CoreHomeHandlerToDisplay { | ||||||
|         return { |         return { | ||||||
|             title: 'core.courses.mymoodle', |             title: 'core.courses.mymoodle', | ||||||
|             page: 'home/dashboard', |             page: 'dashboard', | ||||||
|             class: 'core-courses-dashboard-handler', |             class: 'core-courses-dashboard-handler', | ||||||
|             icon: 'fa-tachometer-alt', |             icon: 'fas-tachometer-alt', | ||||||
|  |             selectPriority: 1000, | ||||||
|         }; |         }; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
							
								
								
									
										56
									
								
								src/app/core/mainmenu/pages/home/home-routing.module.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/app/core/mainmenu/pages/home/home-routing.module.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | |||||||
|  | // (C) Copyright 2015 Moodle Pty Ltd.
 | ||||||
|  | //
 | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||||
|  | // you may not use this file except in compliance with the License.
 | ||||||
|  | // You may obtain a copy of the License at
 | ||||||
|  | //
 | ||||||
|  | //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | //
 | ||||||
|  | // Unless required by applicable law or agreed to in writing, software
 | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||||
|  | // See the License for the specific language governing permissions and
 | ||||||
|  | // limitations under the License.
 | ||||||
|  | 
 | ||||||
|  | import { InjectionToken, Injector, ModuleWithProviders, NgModule } from '@angular/core'; | ||||||
|  | import { RouterModule, ROUTES, Routes } from '@angular/router'; | ||||||
|  | 
 | ||||||
|  | import { CoreArray } from '@/app/singletons/array'; | ||||||
|  | 
 | ||||||
|  | import { CoreHomePage } from './home.page'; | ||||||
|  | 
 | ||||||
|  | function buildHomeRoutes(injector: Injector): Routes { | ||||||
|  |     const routes = CoreArray.flatten(injector.get<Routes[]>(HOME_ROUTES, [])); | ||||||
|  | 
 | ||||||
|  |     return [ | ||||||
|  |         { | ||||||
|  |             path: '', | ||||||
|  |             component: CoreHomePage, | ||||||
|  |             children: [ | ||||||
|  |                 ...routes, | ||||||
|  |                 // @todo handle 404.
 | ||||||
|  |             ], | ||||||
|  |         }, | ||||||
|  |     ]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export const HOME_ROUTES = new InjectionToken('HOME_ROUTES'); | ||||||
|  | 
 | ||||||
|  | @NgModule({ | ||||||
|  |     providers: [ | ||||||
|  |         { provide: ROUTES, multi: true, useFactory: buildHomeRoutes, deps: [Injector] }, | ||||||
|  |     ], | ||||||
|  |     exports: [RouterModule], | ||||||
|  | }) | ||||||
|  | export class CoreHomeRoutingModule { | ||||||
|  | 
 | ||||||
|  |     static forChild(routes: Routes): ModuleWithProviders<CoreHomeRoutingModule> { | ||||||
|  |         return { | ||||||
|  |             ngModule: CoreHomeRoutingModule, | ||||||
|  |             providers: [ | ||||||
|  |                 { provide: HOME_ROUTES, multi: true, useValue: routes }, | ||||||
|  |             ], | ||||||
|  |         }; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user