Merge pull request #2605 from crazyserver/MOBILE-3565
MOBILE-3565 courses: Add priority to dashboardmain
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,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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…
Reference in New Issue