Skeleton Structure V1.0

This commit is contained in:
Trinity X Solution 2023-02-03 15:39:10 +08:00
parent 0ea69519c0
commit b66f3720cf
12 changed files with 315 additions and 309 deletions

View file

@ -1,5 +1,8 @@
{ {
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"analytics": false
},
"version": 1, "version": 1,
"newProjectRoot": "projects", "newProjectRoot": "projects",
"projects": { "projects": {

View file

@ -3,27 +3,13 @@
<a (click)="toggleSidebar()" href="#" class="sidebar-toggle"> <a (click)="toggleSidebar()" href="#" class="sidebar-toggle">
<nb-icon icon="menu-2-outline"></nb-icon> <nb-icon icon="menu-2-outline"></nb-icon>
</a> </a>
<a class="logo" href="#" (click)="navigateHome()">ngx-<span>admin</span></a> <a class="logo" href="#" (click)="navigateHome()">Klikx-<span>admin</span></a>
</div> </div>
<nb-select [selected]="currentTheme" (selectedChange)="changeTheme($event)" status="primary">
<nb-option *ngFor="let theme of themes" [value]="theme.value"> {{ theme.name }}</nb-option>
</nb-select>
</div> </div>
<div class="header-container"> <div class="header-container">
<nb-actions size="small"> <nb-actions size="small">
<nb-action class="control-item">
<nb-search type="rotate-layout"></nb-search>
</nb-action>
<nb-action class="control-item" icon="email-outline"></nb-action> <nb-action class="control-item" icon="email-outline"></nb-action>
<nb-action class="control-item" icon="bell-outline"></nb-action> <nb-action class="control-item" icon="bell-outline"></nb-action>
<nb-action class="user-action" *nbIsGranted="['view', 'user']" >
<nb-user [nbContextMenu]="userMenu"
[onlyPicture]="userPictureOnly"
[name]="user?.name"
[picture]="user?.picture">
</nb-user>
</nb-action>
</nb-actions> </nb-actions>
</div> </div>

View file

@ -77,7 +77,7 @@ export class HeaderComponent implements OnInit, OnDestroy {
} }
changeTheme(themeName: string) { changeTheme(themeName: string) {
this.themeService.changeTheme(themeName); this.themeService.changeTheme('Corporate');
} }
toggleSidebar(): boolean { toggleSidebar(): boolean {

View file

@ -16,10 +16,6 @@ import { Component } from '@angular/core';
<nb-layout-column> <nb-layout-column>
<ng-content select="router-outlet"></ng-content> <ng-content select="router-outlet"></ng-content>
</nb-layout-column> </nb-layout-column>
<nb-layout-footer fixed>
<ngx-footer></ngx-footer>
</nb-layout-footer>
</nb-layout> </nb-layout>
`, `,
}) })

View file

@ -22,10 +22,6 @@ import { Component } from '@angular/core';
<nb-layout-column class="small"> <nb-layout-column class="small">
</nb-layout-column> </nb-layout-column>
<nb-layout-footer fixed>
<ngx-footer></ngx-footer>
</nb-layout-footer>
</nb-layout> </nb-layout>
`, `,
}) })

View file

@ -20,10 +20,6 @@ import { Component } from '@angular/core';
<ng-content select="router-outlet"></ng-content> <ng-content select="router-outlet"></ng-content>
</nb-layout-column> </nb-layout-column>
<nb-layout-footer fixed>
<ngx-footer></ngx-footer>
</nb-layout-footer>
</nb-layout> </nb-layout>
`, `,
}) })

View file

@ -17,7 +17,6 @@ import { NbEvaIconsModule } from '@nebular/eva-icons';
import { NbSecurityModule } from '@nebular/security'; import { NbSecurityModule } from '@nebular/security';
import { import {
FooterComponent,
HeaderComponent, HeaderComponent,
SearchInputComponent, SearchInputComponent,
TinyMCEComponent, TinyMCEComponent,
@ -55,7 +54,6 @@ const NB_MODULES = [
]; ];
const COMPONENTS = [ const COMPONENTS = [
HeaderComponent, HeaderComponent,
FooterComponent,
SearchInputComponent, SearchInputComponent,
TinyMCEComponent, TinyMCEComponent,
OneColumnLayoutComponent, OneColumnLayoutComponent,

View file

@ -7,36 +7,5 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-xxxl-3 col-xxl-4 col-lg-5 col-md-6">
<ngx-temperature></ngx-temperature>
</div>
<div class="col-xxxl-9 col-xxl-8 col-lg-7 col-md-6">
<ngx-electricity></ngx-electricity>
</div>
</div>
<div class="row">
<div class="col-xxxl-9 col-xl-12">
<ngx-rooms></ngx-rooms>
</div>
<div class="col-xxxl-3 col-xxl-4 col-lg-7 col-md-6">
<ngx-contacts></ngx-contacts>
</div>
<div class="col-xxxl-3 col-xxl-4 col-lg-5 col-md-6">
<ngx-solar [chartValue]="solarValue"></ngx-solar>
<ngx-kitten></ngx-kitten>
</div>
<div class="col-xxxl-3 col-xxl-4 col-md-5">
<ngx-traffic></ngx-traffic>
<ngx-weather></ngx-weather>
</div>
<div class="col-xxxl-6 col-xxl-12 col-md-7">
<ngx-security-cameras></ngx-security-cameras>
</div>
</div> </div>

View file

@ -19,34 +19,34 @@ export class DashboardComponent implements OnDestroy {
private alive = true; private alive = true;
solarValue: number; solarValue: number;
lightCard: CardSettings = { apiserip: CardSettings = {
title: 'Light', title: 'SERP API',
iconClass: 'nb-lightbulb', iconClass: 'nb-play',
type: 'primary',
};
rollerShadesCard: CardSettings = {
title: 'Roller Shades',
iconClass: 'nb-roller-shades',
type: 'success', type: 'success',
}; };
wirelessAudioCard: CardSettings = { apicrawler: CardSettings = {
title: 'Wireless Audio', title: 'Crawler API',
iconClass: 'nb-audio', iconClass: 'nb-play',
type: 'info', type: 'success',
}; };
coffeeMakerCard: CardSettings = { imagescoring: CardSettings = {
title: 'Coffee Maker', title: 'Image Analysis',
iconClass: 'nb-coffee-maker', iconClass: 'nb-play',
type: 'warning', type: 'success',
};
keywordscoring: CardSettings = {
title: 'Keywords Analysis',
iconClass: 'nb-play',
type: 'success',
}; };
statusCards: string; statusCards: string;
commonStatusCardsSet: CardSettings[] = [ commonStatusCardsSet: CardSettings[] = [
this.lightCard, this.apiserip,
this.rollerShadesCard, this.apicrawler,
this.wirelessAudioCard, this.imagescoring,
this.coffeeMakerCard, this.keywordscoring,
]; ];
statusCardsByThemes: { statusCardsByThemes: {
@ -59,20 +59,20 @@ export class DashboardComponent implements OnDestroy {
cosmic: this.commonStatusCardsSet, cosmic: this.commonStatusCardsSet,
corporate: [ corporate: [
{ {
...this.lightCard, ...this.apiserip,
type: 'warning',
},
{
...this.rollerShadesCard,
type: 'primary', type: 'primary',
}, },
{ {
...this.wirelessAudioCard, ...this.apicrawler,
type: 'danger', type: 'primary',
}, },
{ {
...this.coffeeMakerCard, ...this.imagescoring,
type: 'info', type: 'primary',
},
{
...this.keywordscoring,
type: 'primary',
}, },
], ],
dark: this.commonStatusCardsSet, dark: this.commonStatusCardsSet,

View file

@ -0,0 +1,247 @@
import { NbMenuItem } from '@nebular/theme';
export const MENU_ITEMS: NbMenuItem[] = [
{
title: 'E-commerce',
icon: 'shopping-cart-outline',
link: '/pages/dashboard',
home: true,
},
{
title: 'IoT Dashboard',
icon: 'home-outline',
link: '/pages/iot-dashboard',
},
{
title: 'FEATURES',
group: true,
},
{
title: 'Layout',
icon: 'layout-outline',
children: [
{
title: 'Stepper',
link: '/pages/layout/stepper',
},
{
title: 'List',
link: '/pages/layout/list',
},
{
title: 'Infinite List',
link: '/pages/layout/infinite-list',
},
{
title: 'Accordion',
link: '/pages/layout/accordion',
},
{
title: 'Tabs',
pathMatch: 'prefix',
link: '/pages/layout/tabs',
},
],
},
{
title: 'Forms',
icon: 'edit-2-outline',
children: [
{
title: 'Form Inputs',
link: '/pages/forms/inputs',
},
{
title: 'Form Layouts',
link: '/pages/forms/layouts',
},
{
title: 'Buttons',
link: '/pages/forms/buttons',
},
{
title: 'Datepicker',
link: '/pages/forms/datepicker',
},
],
},
{
title: 'UI Features',
icon: 'keypad-outline',
link: '/pages/ui-features',
children: [
{
title: 'Grid',
link: '/pages/ui-features/grid',
},
{
title: 'Icons',
link: '/pages/ui-features/icons',
},
{
title: 'Typography',
link: '/pages/ui-features/typography',
},
{
title: 'Animated Searches',
link: '/pages/ui-features/search-fields',
},
],
},
{
title: 'Modal & Overlays',
icon: 'browser-outline',
children: [
{
title: 'Dialog',
link: '/pages/modal-overlays/dialog',
},
{
title: 'Window',
link: '/pages/modal-overlays/window',
},
{
title: 'Popover',
link: '/pages/modal-overlays/popover',
},
{
title: 'Toastr',
link: '/pages/modal-overlays/toastr',
},
{
title: 'Tooltip',
link: '/pages/modal-overlays/tooltip',
},
],
},
{
title: 'Extra Components',
icon: 'message-circle-outline',
children: [
{
title: 'Calendar',
link: '/pages/extra-components/calendar',
},
{
title: 'Progress Bar',
link: '/pages/extra-components/progress-bar',
},
{
title: 'Spinner',
link: '/pages/extra-components/spinner',
},
{
title: 'Alert',
link: '/pages/extra-components/alert',
},
{
title: 'Calendar Kit',
link: '/pages/extra-components/calendar-kit',
},
{
title: 'Chat',
link: '/pages/extra-components/chat',
},
],
},
{
title: 'Maps',
icon: 'map-outline',
children: [
{
title: 'Google Maps',
link: '/pages/maps/gmaps',
},
{
title: 'Leaflet Maps',
link: '/pages/maps/leaflet',
},
{
title: 'Bubble Maps',
link: '/pages/maps/bubble',
},
{
title: 'Search Maps',
link: '/pages/maps/searchmap',
},
],
},
{
title: 'Charts',
icon: 'pie-chart-outline',
children: [
{
title: 'Echarts',
link: '/pages/charts/echarts',
},
{
title: 'Charts.js',
link: '/pages/charts/chartjs',
},
{
title: 'D3',
link: '/pages/charts/d3',
},
],
},
{
title: 'Editors',
icon: 'text-outline',
children: [
{
title: 'TinyMCE',
link: '/pages/editors/tinymce',
},
{
title: 'CKEditor',
link: '/pages/editors/ckeditor',
},
],
},
{
title: 'Tables & Data',
icon: 'grid-outline',
children: [
{
title: 'Smart Table',
link: '/pages/tables/smart-table',
},
{
title: 'Tree Grid',
link: '/pages/tables/tree-grid',
},
],
},
{
title: 'Miscellaneous',
icon: 'shuffle-2-outline',
children: [
{
title: '404',
link: '/pages/miscellaneous/404',
},
],
},
{
title: 'Auth',
icon: 'lock-outline',
children: [
{
title: 'Login',
link: '/auth/login',
},
{
title: 'Register',
link: '/auth/register',
},
{
title: 'Request Password',
link: '/auth/request-password',
},
{
title: 'Reset Password',
link: '/auth/reset-password',
},
],
},
];

View file

@ -2,246 +2,61 @@ import { NbMenuItem } from '@nebular/theme';
export const MENU_ITEMS: NbMenuItem[] = [ export const MENU_ITEMS: NbMenuItem[] = [
{ {
title: 'E-commerce', title: 'Dashboard',
icon: 'shopping-cart-outline',
link: '/pages/dashboard',
home: true,
},
{
title: 'IoT Dashboard',
icon: 'home-outline', icon: 'home-outline',
link: '/pages/iot-dashboard', link: '/pages/iot-dashboard',
}, },
{ {
title: 'FEATURES', title: 'Detection List',
icon: 'list-outline',
link: '',
},
{
title: 'Report',
group: true, group: true,
}, },
{ {
title: 'Layout', title: 'SERP & Keywords',
icon: 'layout-outline', icon: 'file-text-outline',
children: [ link: '',
{
title: 'Stepper',
link: '/pages/layout/stepper',
},
{
title: 'List',
link: '/pages/layout/list',
},
{
title: 'Infinite List',
link: '/pages/layout/infinite-list',
},
{
title: 'Accordion',
link: '/pages/layout/accordion',
},
{
title: 'Tabs',
pathMatch: 'prefix',
link: '/pages/layout/tabs',
},
],
}, },
{ {
title: 'Forms', title: 'Crawler Status',
icon: 'edit-2-outline', icon: 'file-text-outline',
children: [ link: '',
{
title: 'Form Inputs',
link: '/pages/forms/inputs',
},
{
title: 'Form Layouts',
link: '/pages/forms/layouts',
},
{
title: 'Buttons',
link: '/pages/forms/buttons',
},
{
title: 'Datepicker',
link: '/pages/forms/datepicker',
},
],
}, },
{ {
title: 'UI Features', title: 'Scoring Analysis',
icon: 'keypad-outline', icon: 'file-text-outline',
link: '/pages/ui-features', link: '',
children: [
{
title: 'Grid',
link: '/pages/ui-features/grid',
},
{
title: 'Icons',
link: '/pages/ui-features/icons',
},
{
title: 'Typography',
link: '/pages/ui-features/typography',
},
{
title: 'Animated Searches',
link: '/pages/ui-features/search-fields',
},
],
}, },
{ {
title: 'Modal & Overlays', title: 'Settings',
icon: 'browser-outline', group: true,
children: [
{
title: 'Dialog',
link: '/pages/modal-overlays/dialog',
},
{
title: 'Window',
link: '/pages/modal-overlays/window',
},
{
title: 'Popover',
link: '/pages/modal-overlays/popover',
},
{
title: 'Toastr',
link: '/pages/modal-overlays/toastr',
},
{
title: 'Tooltip',
link: '/pages/modal-overlays/tooltip',
},
],
}, },
{ {
title: 'Extra Components', title: 'Keywords Dictionary',
icon: 'message-circle-outline', icon: 'book-outline',
children: [ link: '',
{
title: 'Calendar',
link: '/pages/extra-components/calendar',
},
{
title: 'Progress Bar',
link: '/pages/extra-components/progress-bar',
},
{
title: 'Spinner',
link: '/pages/extra-components/spinner',
},
{
title: 'Alert',
link: '/pages/extra-components/alert',
},
{
title: 'Calendar Kit',
link: '/pages/extra-components/calendar-kit',
},
{
title: 'Chat',
link: '/pages/extra-components/chat',
},
],
}, },
{ {
title: 'Maps', title: 'Image Similarity',
icon: 'map-outline', icon: 'image-outline',
children: [ link: '/pages/ui-features/icons',
{
title: 'Google Maps',
link: '/pages/maps/gmaps',
},
{
title: 'Leaflet Maps',
link: '/pages/maps/leaflet',
},
{
title: 'Bubble Maps',
link: '/pages/maps/bubble',
},
{
title: 'Search Maps',
link: '/pages/maps/searchmap',
},
],
}, },
{ {
title: 'Charts', title: 'SERP',
icon: 'pie-chart-outline', icon: 'settings-2-outline',
children: [ link: '/pages/ui-features/icons',
{
title: 'Echarts',
link: '/pages/charts/echarts',
},
{
title: 'Charts.js',
link: '/pages/charts/chartjs',
},
{
title: 'D3',
link: '/pages/charts/d3',
},
],
}, },
{ {
title: 'Editors', title: 'Crawler',
icon: 'text-outline', icon: 'settings-2-outline',
children: [ link: '/pages/ui-features/icons',
{
title: 'TinyMCE',
link: '/pages/editors/tinymce',
},
{
title: 'CKEditor',
link: '/pages/editors/ckeditor',
},
],
}, },
{ {
title: 'Tables & Data', title: 'Api Account',
icon: 'grid-outline', icon: 'people-outline',
children: [ link: '/pages/ui-features/icons',
{
title: 'Smart Table',
link: '/pages/tables/smart-table',
},
{
title: 'Tree Grid',
link: '/pages/tables/tree-grid',
},
],
},
{
title: 'Miscellaneous',
icon: 'shuffle-2-outline',
children: [
{
title: '404',
link: '/pages/miscellaneous/404',
},
],
},
{
title: 'Auth',
icon: 'lock-outline',
children: [
{
title: 'Login',
link: '/auth/login',
},
{
title: 'Register',
link: '/auth/register',
},
{
title: 'Request Password',
link: '/auth/request-password',
},
{
title: 'Reset Password',
link: '/auth/reset-password',
},
],
}, },
]; ];

View file

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>ngx-admin Demo Application</title> <title>Klikx SEO Admin Portal</title>
<base href="/"> <base href="/">