feat(app): add mock pages and some header feats

This commit is contained in:
tibing 2017-04-18 15:27:37 +03:00
parent 2cb6bf99e0
commit 58c9114ff9
20 changed files with 201 additions and 84 deletions

View file

@ -1,7 +1,7 @@
{ {
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": { "project": {
"name": "nga-demo" "name": "ngx-admin-demo"
}, },
"apps": [ "apps": [
{ {

View file

@ -38,6 +38,7 @@
"bootstrap": "4.0.0-alpha.6", "bootstrap": "4.0.0-alpha.6",
"core-js": "2.4.1", "core-js": "2.4.1",
"font-awesome": "4.7.0", "font-awesome": "4.7.0",
"immutable": "3.8.1",
"ionicons": "2.0.1", "ionicons": "2.0.1",
"normalize.css": "6.0.0", "normalize.css": "6.0.0",
"rxjs": "5.1.1", "rxjs": "5.1.1",

View file

@ -4,18 +4,61 @@
nga-layout-header > nav { nga-layout-header > nav {
justify-content: space-between; justify-content: space-between;
.logo { div {
font-size: 1.7rem; display: flex;
color: $nga-color-primary; align-items: center;
text-decoration: none; }
transition: all 0.2s ease;
span { .left {
color: $nga-color-secondary; > * {
padding: 0 1.25rem;
border-right: 1px solid rgba($nga-color-default, 0.2);
&:first-child {
padding-left: 0;
}
&:last-child {
border: none;
}
} }
&:hover span { i.menu-collapse {
color: $nga-color-primary; font-size: 2.8rem;
&:hover {
cursor: pointer;
color: $nga-color-secondary;
}
}
.logo {
font-size: 1.7rem;
text-decoration: none;
transition: all 0.2s ease;
span {
color: $nga-color-secondary;
}
&:hover span {
color: $nga-color-default;
}
}
}
.right {
> * {
padding: 0 1.25rem;
border-left: 1px solid rgba($nga-color-primary, 0.2);
&:first-child {
border: none;
}
&:last-child {
padding-left: 0;
}
} }
} }
} }

View file

@ -9,6 +9,7 @@
* */ * */
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { NgaSidebarService } from '@nga/theme/components/sidebar/sidebar.service';
@Component({ @Component({
selector: 'one-coll-layout', selector: 'one-coll-layout',
@ -16,10 +17,16 @@ import { Component } from '@angular/core';
template: ` template: `
<nga-layout> <nga-layout>
<nga-layout-header fixed> <nga-layout-header fixed>
<a href="/#/pages/dashboard" class="logo">NgX <span>Admin</span></a> <div class="left">
<i class="menu-collapse ion ion-navicon" (click)="toggleSidebar()"></i>
<a href="/#/pages/dashboard" class="logo">NgX <span>Admin</span></a>
</div>
<div class="right">
</div>
</nga-layout-header> </nga-layout-header>
<nga-sidebar left> <nga-sidebar>
<nga-sidebar-content> <nga-sidebar-content>
<ng-content select="nga-menu"></ng-content> <ng-content select="nga-menu"></ng-content>
</nga-sidebar-content> </nga-sidebar-content>
@ -29,10 +36,16 @@ import { Component } from '@angular/core';
<ng-content select="router-outlet"></ng-content> <ng-content select="router-outlet"></ng-content>
</nga-layout-column> </nga-layout-column>
<nga-layout-footer> <nga-layout-footer fixed>
</nga-layout-footer> </nga-layout-footer>
</nga-layout> </nga-layout>
`, `,
}) })
export class OneCollLayoutComponent { export class OneCollLayoutComponent {
constructor(private sidebarService: NgaSidebarService) {
}
toggleSidebar() {
this.sidebarService.toggle(true);
}
} }

View file

@ -1,34 +0,0 @@
:host /deep/ {
color: $nga-color-default;
nga-layout {
nga-layout-header > nav {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
}
nga-sidebar {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
ul {
li a {
color: $nga-color-primary;
transition: all 0.2s ease;
padding: .87rem 0 .87rem 1rem;
&:hover {
background: $nga-color-default;
}
&.active {
font-weight: bold;
}
}
}
}
nga-layout-footer > nav {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
border: none !important;
}
}
}

View file

@ -1,15 +1,18 @@
@import '~@nga/theme/styles/themes/nga.theme.default'; @import '~@nga/theme/styles/themes/nga.theme.default';
$nga-color-primary: #7d85b2; $nga-color-primary: #edf1f7;
$nga-color-default: #edf1f7; $nga-color-default: #7d85b2;
$nga-color-secondary: #b5bbd5; $nga-color-secondary: #b5bbd5;
$nga-background: white; $nga-background: white;
$nga-layout-background: $nga-color-default; $nga-layout-background: $nga-color-primary;
$nga-layout-foreground: $nga-color-default;
$nga-header-height: 4.725rem; $nga-header-height: 4.725rem;
$nga-header-background: $nga-background; $nga-header-background: $nga-background;
$nga-header-foreground: $nga-color-default;
$nga-header-padding: 1.25rem;
$nga-footer-height: $nga-header-height; $nga-footer-height: $nga-header-height;
$nga-footer-background: $nga-background; $nga-footer-background: $nga-background;
@ -18,3 +21,46 @@ $nga-user-picture-background: $nga-color-default;
$nga-sidebar-background: $nga-background; $nga-sidebar-background: $nga-background;
$nga-sidebar-width: 16.25rem; $nga-sidebar-width: 16.25rem;
:host /deep/ {
color: $nga-color-default;
nga-layout {
nga-layout-header > nav {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
}
nga-sidebar {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
ul li a {
display: flex;
align-items: center;
transition: all 0.2s ease;
padding: .375rem 0 .375rem 1rem;
&:hover {
background: $nga-color-primary;
color: $nga-color-default;
}
&.active {
font-weight: bold;
color: $nga-color-default;
background: $nga-color-primary;
}
i {
font-size: 2rem;
margin-right: 1.25rem;
}
}
}
nga-layout-footer > nav {
box-shadow: 0 4px 12px 0 rgba(33, 57, 161, 0.08);
border: none !important;
}
}
}

View file

@ -1,6 +1,5 @@
@import '~@nga/theme/styles/themes/nga.theme.default'; @import '~@nga/theme/styles/themes/nga.theme.default';
@import 'pure.redefines'; @import 'pure.redefines';
@import 'pure.custom';
@include nga-theme(); @include nga-theme();

View file

@ -0,0 +1,3 @@
<p>
components works!
</p>

View file

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-components',
templateUrl: './components.component.html',
styleUrls: ['./components.component.scss']
})
export class ComponentsComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}

View file

@ -0,0 +1,3 @@
<p>
dashboard works!
</p>

View file

@ -0,0 +1,3 @@
<p>
maps works!
</p>

View file

View file

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-maps',
templateUrl: './maps.component.html',
styleUrls: ['./maps.component.scss']
})
export class MapsComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}

View file

@ -5,43 +5,23 @@ import { List } from 'immutable';
export const menuItems: List<NgaMenuItem> = List([ export const menuItems: List<NgaMenuItem> = List([
{ {
title: 'Dashboard', title: 'Dashboard',
icon: 'ion ion-android-home', icon: 'ion ion-ios-home-outline',
link: '/pages/dashboard', link: '/pages/dashboard',
selected: true selected: true
}, },
{ {
title: 'Dashboard', title: 'UI Features',
icon: 'ion ion-android-home', icon: 'ion ion-ios-keypad-outline',
link: '/pages/dashboard', link: '/pages/ui-features'
}, },
{ {
title: 'Dashboard', title: 'Components',
icon: 'ion ion-android-home', icon: 'ion ion-ios-gear-outline',
link: '/pages/dashboard', link: '/pages/components'
}, },
{ {
title: 'Dashboard', title: 'Maps',
icon: 'ion ion-android-home', icon: 'ion ion-ios-location-outline',
link: '/pages/dashboard', link: '/pages/maps'
},
{
title: 'Dashboard',
icon: 'ion ion-android-home',
link: '/pages/dashboard',
},
{
title: 'Dashboard',
icon: 'ion ion-android-home',
link: '/pages/dashboard',
},
{
title: 'Dashboard',
icon: 'ion ion-android-home',
link: '/pages/dashboard',
},
{
title: 'Dashboard',
icon: 'ion ion-android-home',
link: '/pages/dashboard',
} }
]); ]);

View file

@ -3,14 +3,20 @@ import { NgModule } from '@angular/core';
import { PagesComponent } from './pages.component'; import { PagesComponent } from './pages.component';
import { DashboardComponent } from './dashboard/dashboard.component'; import { DashboardComponent } from './dashboard/dashboard.component';
import { UiFeaturesComponent } from './ui-features/ui-features.component';
import { ComponentsComponent } from './components/components.component';
import { MapsComponent } from './maps/maps.component';
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
component: PagesComponent, component: PagesComponent,
children: [ children: [
{path: '', redirectTo: 'dashboard', pathMatch: 'full'}, {path: 'dashboard', component: DashboardComponent},
{path: 'dashboard', component: DashboardComponent} {path: 'ui-features', component: UiFeaturesComponent},
{path: 'components', component: ComponentsComponent},
{path: 'maps', component: MapsComponent},
{path: '', redirectTo: 'dashboard', pathMatch: 'full'}
] ]
} }
]; ];

View file

@ -9,6 +9,9 @@ import { PagesComponent } from './pages.component';
import { DashboardComponent } from './dashboard/dashboard.component'; import { DashboardComponent } from './dashboard/dashboard.component';
import { PagesRoutingModule } from './pages-routing.module'; import { PagesRoutingModule } from './pages-routing.module';
import { ThemeModule } from '../@theme/theme.module'; import { ThemeModule } from '../@theme/theme.module';
import { UiFeaturesComponent } from './ui-features/ui-features.component';
import { MapsComponent } from './maps/maps.component';
import { ComponentsComponent } from './components/components.component';
@NgModule({ @NgModule({
imports: [ imports: [
@ -19,7 +22,10 @@ import { ThemeModule } from '../@theme/theme.module';
], ],
declarations: [ declarations: [
PagesComponent, PagesComponent,
DashboardComponent DashboardComponent,
UiFeaturesComponent,
MapsComponent,
ComponentsComponent
] ]
}) })
export class PagesModule { export class PagesModule {

View file

@ -0,0 +1,3 @@
<p>
ui-features works!
</p>

View file

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-ui-features',
templateUrl: './ui-features.component.html',
styleUrls: ['./ui-features.component.scss']
})
export class UiFeaturesComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}