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();
+ }
+
}