diff --git a/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts b/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts index 6a993338..63076545 100644 --- a/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts +++ b/docs/app/pages/docs/page/ngx-admin-landing-page.component.ts @@ -6,7 +6,6 @@ import { Component, Inject, NgZone, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { Title } from '@angular/platform-browser'; import { filter, map, @@ -21,6 +20,7 @@ import { fromEvent } from 'rxjs'; import { NgxStructureService } from '../../../@theme/services/structure.service'; import { NgxTocStateService } from '../../../@theme/services/toc-state.service'; +import {MetadataService} from '../../../../../src/app/@core/utils/metadata.service'; @Component({ selector: 'ngx-admin-landing-page', @@ -38,7 +38,7 @@ export class NgxAdminLandingPageComponent implements OnDestroy, OnInit { private activatedRoute: ActivatedRoute, private structureService: NgxStructureService, private tocState: NgxTocStateService, - private titleService: Title) { + private metaDataService: MetadataService) { } get showSettings() { @@ -63,7 +63,8 @@ export class NgxAdminLandingPageComponent implements OnDestroy, OnInit { }), filter(item => item), tap((item: any) => { - this.titleService.setTitle(`Nebular - ${item.name}`); + this.metaDataService.updateTitle(`Nebular - ${item.name}`); + this.metaDataService.updateDescription(item.description); }), publishReplay(), refCount(), diff --git a/docs/structure.ts b/docs/structure.ts index 7f22939f..5fc31f1d 100644 --- a/docs/structure.ts +++ b/docs/structure.ts @@ -17,6 +17,7 @@ export const structure = [ { type: 'page', name: 'Installation Guidelines', + description: 'A guideline to install ngx-admin on your machine: backend integration, tools you need to be installed.', children: [ { type: 'block', @@ -28,6 +29,7 @@ export const structure = [ { type: 'page', name: 'Server deployment', + description: 'How to set up your web-server to better serve the application on Angular.', children: [ { type: 'block', @@ -45,6 +47,7 @@ export const structure = [ { type: 'page', name: 'Theme System', + description: 'Theme System in is a set of rules we put into how SCSS files and variables are organized. Theme Map | Component Variables | Built-in-Themes', children: [ { type: 'block', @@ -56,6 +59,7 @@ export const structure = [ { type: 'page', name: 'Change Theme', + description: 'How to change the current theme in ngx-admin. Switch from Cosmic to Default. Runtime Theme Switch.', children: [ { type: 'block', @@ -67,6 +71,7 @@ export const structure = [ { type: 'page', name: 'Backend integration', + description: 'Approaches of integration of ngx-admin application with backend API. Integration with JSON REST server, angular-cli/webpack-dev-server setup.', children: [ { type: 'block', diff --git a/src/app/pages/dashboard/dashboard.component.ts b/src/app/pages/dashboard/dashboard.component.ts index 5ed736e0..bb23df09 100644 --- a/src/app/pages/dashboard/dashboard.component.ts +++ b/src/app/pages/dashboard/dashboard.component.ts @@ -3,6 +3,7 @@ import { NbThemeService } from '@nebular/theme'; import { takeWhile } from 'rxjs/operators' ; import { SolarData } from '../../@core/data/solar'; import { AbService } from '../../@core/utils/ab.service'; +import {MetadataService} from '../../@core/utils/metadata.service'; interface CardSettings { title: string; @@ -85,6 +86,7 @@ export class DashboardComponent implements OnInit, OnDestroy { }; constructor(private themeService: NbThemeService, + private metaDataService: MetadataService, private solarService: SolarData, private abService: AbService) { this.themeService.getJsTheme() @@ -101,6 +103,8 @@ export class DashboardComponent implements OnInit, OnDestroy { } ngOnInit() { + this.metaDataService.updateTitle('Ngx-admin IoT dashboard on Angular 9+ and Nebular.'); + this.abService.onAbEvent(AbService.VARIANT_HIDE_CALL_ACTION) .pipe(takeWhile(() => this.alive)) .subscribe(() => this.showCallAction = false ); diff --git a/src/app/pages/e-commerce/e-commerce.component.ts b/src/app/pages/e-commerce/e-commerce.component.ts index 228949cb..360d5c8b 100644 --- a/src/app/pages/e-commerce/e-commerce.component.ts +++ b/src/app/pages/e-commerce/e-commerce.component.ts @@ -1,6 +1,7 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { takeWhile } from 'rxjs/operators'; import { AbService } from '../../@core/utils/ab.service'; +import {MetadataService} from '../../@core/utils/metadata.service'; @Component({ selector: 'ngx-ecommerce', @@ -11,9 +12,12 @@ export class ECommerceComponent implements OnInit, OnDestroy { private alive = true; showCallAction = true; - constructor (private abService: AbService) {} + constructor (private abService: AbService, + private metaDataService: MetadataService) {} ngOnInit() { + this.metaDataService.updateTitle('Ngx-admin e-commerce dashboard on Angular 9+ and Nebular.'); + this.abService.onAbEvent(AbService.VARIANT_HIDE_CALL_ACTION) .pipe(takeWhile(() => this.alive)) .subscribe(() => this.showCallAction = false ); diff --git a/src/app/pages/pages.component.ts b/src/app/pages/pages.component.ts index 856a59e5..6faf388b 100644 --- a/src/app/pages/pages.component.ts +++ b/src/app/pages/pages.component.ts @@ -1,18 +1,27 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, OnDestroy, OnInit} from '@angular/core'; -import { MENU_ITEMS } from './pages-menu'; +import {MENU_ITEMS} from './pages-menu'; +import {NbMenuItem, NbMenuService} from '@nebular/theme'; +import {takeUntil} from 'rxjs/operators'; +import {Subject} from 'rxjs'; +import {MetadataService} from '../@core/utils/metadata.service'; @Component({ selector: 'ngx-pages', styleUrls: ['pages.component.scss'], template: ` - - - - + + + + `, }) -export class PagesComponent implements OnInit { +export class PagesComponent implements OnInit, OnDestroy { + destroy$: Subject = new Subject(); + + constructor(private menuService: NbMenuService, + private metaDataService: MetadataService) { + } menu = MENU_ITEMS; @@ -20,5 +29,19 @@ export class PagesComponent implements OnInit { if (window['dataLayer']) { window['dataLayer'].push({'event': 'optimize.activate'}); } + + this.menuService + .onItemSelect() + .pipe(takeUntil(this.destroy$)) + .subscribe((data: { tag: string; item: NbMenuItem }) => { + if (data.item.title !== 'E-commerce' && data.item.title !== 'IoT Dashboard') + this.metaDataService.updateTitle(`Ngx-admin dashboard by Akveo| ${data.item.title}`); + }); } + + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + } + }