commit
385e209190
|
@ -13,27 +13,35 @@
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { Routes } from '@angular/router';
|
||||||
|
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 './handlers/dashboard';
|
import { CoreCoursesDashboardHandler } from './services/handlers/dashboard';
|
||||||
import { CoreCoursesDashboardPage } from './pages/dashboard/dashboard.page';
|
import { CoreCoursesDashboardPage } from './pages/dashboard/dashboard.page';
|
||||||
|
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{
|
{
|
||||||
path: 'dashboard',
|
path: 'dashboard',
|
||||||
component: CoreCoursesDashboardPage,
|
loadChildren: () =>
|
||||||
|
import('@core/courses/pages/dashboard/dashboard.page.module').then(m => m.CoreCoursesDashboardPageModule),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild(routes)],
|
imports: [CoreHomeRoutingModule.forChild(routes)],
|
||||||
declarations: [],
|
exports: [CoreHomeRoutingModule],
|
||||||
|
providers: [
|
||||||
|
CoreCoursesDashboardHandler,
|
||||||
|
],
|
||||||
})
|
})
|
||||||
export class CoreCoursesModule {
|
export class CoreCoursesModule {
|
||||||
|
|
||||||
constructor(homeDelegate: CoreHomeDelegate) {
|
constructor(
|
||||||
homeDelegate.registerHandler(new CoreCoursesDashboardHandler());
|
homeDelegate: CoreHomeDelegate,
|
||||||
|
coursesDashboardHandler: CoreCoursesDashboardHandler,
|
||||||
|
) {
|
||||||
|
homeDelegate.registerHandler(coursesDashboardHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,13 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
import { CoreHomeHandler, CoreHomeHandlerData } from '@core/mainmenu/services/home.delegate';
|
import { CoreHomeHandler, CoreHomeHandlerData } from '@core/mainmenu/services/home.delegate';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to add Home into main menu.
|
* Handler to add Home into main menu.
|
||||||
*/
|
*/
|
||||||
|
Injectable();
|
||||||
export class CoreCoursesDashboardHandler implements CoreHomeHandler {
|
export class CoreCoursesDashboardHandler implements CoreHomeHandler {
|
||||||
|
|
||||||
name = 'CoreCoursesDashboard';
|
name = 'CoreCoursesDashboard';
|
|
@ -26,7 +26,7 @@ import { CoreMainMenuDelegate } from './services/mainmenu.delegate';
|
||||||
import { CoreMainMenuRoutingModule } from './mainmenu-routing.module';
|
import { CoreMainMenuRoutingModule } from './mainmenu-routing.module';
|
||||||
import { CoreMainMenuPage } from './pages/menu/menu.page';
|
import { CoreMainMenuPage } from './pages/menu/menu.page';
|
||||||
import { CoreMainMenuMorePage } from './pages/more/more.page';
|
import { CoreMainMenuMorePage } from './pages/more/more.page';
|
||||||
import { CoreHomeMainMenuHandler } from './handlers/mainmenu';
|
import { CoreHomeMainMenuHandler } from './services/handlers/mainmenu';
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
@ -42,11 +42,17 @@ import { CoreHomeMainMenuHandler } from './handlers/mainmenu';
|
||||||
CoreMainMenuPage,
|
CoreMainMenuPage,
|
||||||
CoreMainMenuMorePage,
|
CoreMainMenuMorePage,
|
||||||
],
|
],
|
||||||
|
providers: [
|
||||||
|
CoreHomeMainMenuHandler,
|
||||||
|
],
|
||||||
})
|
})
|
||||||
export class CoreMainMenuModule {
|
export class CoreMainMenuModule {
|
||||||
|
|
||||||
constructor(mainMenuDelegate: CoreMainMenuDelegate) {
|
constructor(
|
||||||
mainMenuDelegate.registerHandler(new CoreHomeMainMenuHandler());
|
mainMenuDelegate: CoreMainMenuDelegate,
|
||||||
|
homeMainMenuHandler: CoreHomeMainMenuHandler,
|
||||||
|
) {
|
||||||
|
mainMenuDelegate.registerHandler(homeMainMenuHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,12 +16,10 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<!-- @todo -->
|
<!-- @todo -->
|
||||||
<core-loading [hideUntil]="loaded" *ngIf="tabs.length > 0">
|
<core-loading [hideUntil]="loaded">
|
||||||
<core-tabs [selectedIndex]="selectedTab" [hideUntil]="loaded" [tabs]="tabs"></core-tabs>
|
<core-tabs *ngIf="tabs.length > 0" [selectedIndex]="selectedTab" [hideUntil]="loaded" [tabs]="tabs"></core-tabs>
|
||||||
<ng-container *ngIf="tabs.length == 0">
|
<ng-container *ngIf="tabs.length == 0">
|
||||||
<core-empty-box icon="fa-home" [message]="'core.courses.nocourses' | translate">
|
<core-empty-box icon="fas-home" [message]="'core.courses.nocourses' | translate"></core-empty-box>
|
||||||
<div>Home page</div>
|
|
||||||
</core-empty-box>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
|
||||||
import { IonicModule } from '@ionic/angular';
|
import { IonicModule } from '@ionic/angular';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
|
||||||
|
@ -22,33 +21,19 @@ import { CoreComponentsModule } from '@components/components.module';
|
||||||
import { CoreDirectivesModule } from '@directives/directives.module';
|
import { CoreDirectivesModule } from '@directives/directives.module';
|
||||||
|
|
||||||
import { CoreHomePage } from './home.page';
|
import { CoreHomePage } from './home.page';
|
||||||
|
import { CoreHomeRoutingModule } from './home-routing.module';
|
||||||
const routes: Routes = [
|
|
||||||
{
|
|
||||||
path: '',
|
|
||||||
component: CoreHomePage,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'dashboard', // @todo: Add this route dynamically.
|
|
||||||
loadChildren: () =>
|
|
||||||
import('@core/courses/pages/dashboard/dashboard.page.module').then(m => m.CoreCoursesDashboardPageModule),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild(routes),
|
|
||||||
CommonModule,
|
CommonModule,
|
||||||
IonicModule,
|
IonicModule,
|
||||||
TranslateModule.forChild(),
|
TranslateModule.forChild(),
|
||||||
CoreComponentsModule,
|
CoreComponentsModule,
|
||||||
CoreDirectivesModule,
|
CoreDirectivesModule,
|
||||||
|
CoreHomeRoutingModule,
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
CoreHomePage,
|
CoreHomePage,
|
||||||
],
|
],
|
||||||
exports: [RouterModule],
|
|
||||||
})
|
})
|
||||||
export class CoreHomePageModule {}
|
export class CoreHomePageModule {}
|
||||||
|
|
|
@ -55,6 +55,8 @@ export class CoreHomePage implements OnInit {
|
||||||
initHandlers(handlers: CoreHomeHandlerToDisplay[]): void {
|
initHandlers(handlers: CoreHomeHandlerToDisplay[]): void {
|
||||||
// Re-build the list of tabs. If a handler is already in the list, use existing object to prevent re-creating the tab.
|
// Re-build the list of tabs. If a handler is already in the list, use existing object to prevent re-creating the tab.
|
||||||
const newTabs: CoreHomeHandlerToDisplay[] = handlers.map((handler) => {
|
const newTabs: CoreHomeHandlerToDisplay[] = handlers.map((handler) => {
|
||||||
|
handler.page = '/home/' + handler.page;
|
||||||
|
|
||||||
// Check if the handler is already in the tabs list. If so, use it.
|
// Check if the handler is already in the tabs list. If so, use it.
|
||||||
const tab = this.tabs.find((tab) => tab.title == handler.title);
|
const tab = this.tabs.find((tab) => tab.title == handler.title);
|
||||||
|
|
||||||
|
@ -63,9 +65,10 @@ export class CoreHomePage implements OnInit {
|
||||||
// Sort them by priority so new handlers are in the right position.
|
// Sort them by priority so new handlers are in the right position.
|
||||||
.sort((a, b) => (b.priority || 0) - (a.priority || 0));
|
.sort((a, b) => (b.priority || 0) - (a.priority || 0));
|
||||||
|
|
||||||
if (typeof this.selectedTab == 'undefined') {
|
if (typeof this.selectedTab == 'undefined' && newTabs.length > 0) {
|
||||||
let maxPriority = 0;
|
let maxPriority = 0;
|
||||||
let maxIndex = 0;
|
let maxIndex = 0;
|
||||||
|
|
||||||
newTabs.forEach((tab, index) => {
|
newTabs.forEach((tab, index) => {
|
||||||
if ((tab.selectPriority || 0) > maxPriority) {
|
if ((tab.selectPriority || 0) > maxPriority) {
|
||||||
maxPriority = tab.selectPriority || 0;
|
maxPriority = tab.selectPriority || 0;
|
||||||
|
|
|
@ -12,11 +12,13 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
import { CoreMainMenuHandler, CoreMainMenuHandlerData } from '../services/mainmenu.delegate';
|
import { Injectable } from '@angular/core';
|
||||||
|
import { CoreMainMenuHandler, CoreMainMenuHandlerData } from '../mainmenu.delegate';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to add Home into main menu.
|
* Handler to add Home into main menu.
|
||||||
*/
|
*/
|
||||||
|
Injectable();
|
||||||
export class CoreHomeMainMenuHandler implements CoreMainMenuHandler {
|
export class CoreHomeMainMenuHandler implements CoreMainMenuHandler {
|
||||||
|
|
||||||
name = 'CoreHome';
|
name = 'CoreHome';
|
|
@ -17,8 +17,9 @@ import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';
|
||||||
import { CoreSites } from '@services/sites';
|
import { CoreSites } from '@services/sites';
|
||||||
import { CoreDomUtils } from '@services/utils/dom';
|
import { CoreDomUtils } from '@services/utils/dom';
|
||||||
import { CoreUtils } from '@services/utils/utils';
|
import { CoreUtils } from '@services/utils/utils';
|
||||||
import { CoreSearchHistory, CoreSearchHistoryItem } from '../../services/search-history';
|
import { CoreSearchHistory } from '../../services/search-history';
|
||||||
import { Translate } from '@singletons/core.singletons';
|
import { Translate } from '@singletons/core.singletons';
|
||||||
|
import { CoreSearchHistoryDBRecord } from '../../services/search.history.db';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component to display a "search box".
|
* Component to display a "search box".
|
||||||
|
@ -59,7 +60,7 @@ export class CoreSearchBoxComponent implements OnInit {
|
||||||
|
|
||||||
searched = ''; // Last search emitted.
|
searched = ''; // Last search emitted.
|
||||||
searchText = '';
|
searchText = '';
|
||||||
history: CoreSearchHistoryItem[] = [];
|
history: CoreSearchHistoryDBRecord[] = [];
|
||||||
historyShown = false;
|
historyShown = false;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|
Loading…
Reference in New Issue