Commit 54f2ba6a authored by liuzheng712's avatar liuzheng712

update

parent f37e79af
...@@ -47,10 +47,10 @@ server.run = function (options) { ...@@ -47,10 +47,10 @@ server.run = function (options) {
apis.route('/checklogin') apis.route('/checklogin')
.post(function (req, res) { .post(function (req, res) {
res.json({logined: true, user: {id: 1, username: "liuzheng", name: "liuzheng"}}) res.json({logined: true, id: 1, username: "liuzheng", name: "liuzheng"})
}) })
.get(function (req, res) { .get(function (req, res) {
res.json({logined: true, user: {id: 1, username: "liuzheng", name: "liuzheng"}}) res.json({logined: false})
}); });
......
...@@ -27,7 +27,27 @@ import * as io from 'socket.io-client'; ...@@ -27,7 +27,27 @@ import * as io from 'socket.io-client';
import {Router} from '@angular/router'; import {Router} from '@angular/router';
export class User { // export class User {
// id: number;
// name: string;
// username: string;
// password: string;
// phone: string;
// avatar: string;
// role: string;
// email: string;
// is_active: boolean;
// date_joined: string;
// last_login: string;
// groups: Array<string>;
// }
export class Group {
id: number;
name: string;
membercount: number;
comment: string;
}
export let User: {
id: number; id: number;
name: string; name: string;
username: string; username: string;
...@@ -41,19 +61,24 @@ export class User { ...@@ -41,19 +61,24 @@ export class User {
last_login: string; last_login: string;
groups: Array<string>; groups: Array<string>;
logined: boolean; logined: boolean;
} } = {
export class Group { id: 0,
id: number; name: 'nobody',
name: string; username: '',
membercount: number; password: '',
comment: string; phone: '',
} avatar: '',
role: '',
email: '',
is_active: false,
date_joined: '',
last_login: '',
groups: [],
logined: false,
};
export let DataStore: { export let DataStore: {
socket: any; socket: any;
user: User;
Nav: Array<{}>; Nav: Array<{}>;
logined: boolean;
lastNavigationAttempt: string; lastNavigationAttempt: string;
route: Array<{}>; route: Array<{}>;
activenav: {}; activenav: {};
...@@ -70,9 +95,7 @@ export let DataStore: { ...@@ -70,9 +95,7 @@ export let DataStore: {
windowsize: Array<number>; windowsize: Array<number>;
} = { } = {
socket: io.connect(), socket: io.connect(),
user: new User,
Nav: [{}], Nav: [{}],
logined: false,
lastNavigationAttempt: '', lastNavigationAttempt: '',
route: [{}], route: [{}],
activenav: {}, activenav: {},
...@@ -144,7 +167,7 @@ export class AppService { ...@@ -144,7 +167,7 @@ export class AppService {
if (DataStore.Path) { if (DataStore.Path) {
if (DataStore.Path['name'] === 'FOF' || DataStore.Path['name'] === 'Forgot') { if (DataStore.Path['name'] === 'FOF' || DataStore.Path['name'] === 'Forgot') {
} else { } else {
if (DataStore.logined) { if (User.logined) {
this._router.navigate([DataStore.Path['name']]); this._router.navigate([DataStore.Path['name']]);
// jQuery('angular2').show(); // jQuery('angular2').show();
} else { } else {
...@@ -152,16 +175,18 @@ export class AppService { ...@@ -152,16 +175,18 @@ export class AppService {
.map(res => res.json()) .map(res => res.json())
.subscribe( .subscribe(
data => { data => {
DataStore.logined = data.logined; User.name = data.name;
DataStore.user = data.user; User.username = data.username;
User.logined = data.logined;
this._logger.debug(User);
}, },
err => { err => {
this._logger.error(err); this._logger.error(err);
DataStore.logined = false; User.logined = false;
this._router.navigate(['login']); this._router.navigate(['login']);
}, },
() => { () => {
if (DataStore.logined) { if (User.logined) {
if (jQuery.isEmptyObject(DataStore.Path)) { if (jQuery.isEmptyObject(DataStore.Path)) {
this._router.navigate(['']); this._router.navigate(['']);
} else { } else {
...@@ -181,25 +206,27 @@ export class AppService { ...@@ -181,25 +206,27 @@ export class AppService {
} }
} }
login(user: User) { login() {
this._logger.log('service.ts:AppService,login'); this._logger.log('service.ts:AppService,login');
DataStore.error['login'] = ''; DataStore.error['login'] = '';
if (user.username.length > 0 && user.password.length > 6 && user.password.length < 100) { if (User.username.length > 0 && User.password.length > 6 && User.password.length < 100) {
this.http.post('/api/checklogin', JSON.stringify(user)).map(res => res.json()) this.http.post('/api/checklogin', JSON.stringify(User)).map(res => res.json())
.subscribe( .subscribe(
data => { data => {
DataStore.logined = data.logined; User.logined = data.logined;
DataStore.user = data.user; User.name = data.name;
User.username = data.username;
User.logined = data.logined;
}, },
err => { err => {
this._logger.error(err); this._logger.error(err);
DataStore.logined = false; User.logined = false;
this._router.navigate(['login']); this._router.navigate(['login']);
DataStore.error['login'] = '后端错误,请重试'; DataStore.error['login'] = '后端错误,请重试';
return '后端错误,请重试'; return '后端错误,请重试';
}, },
() => { () => {
if (DataStore.logined) { if (User.logined) {
if (jQuery.isEmptyObject(DataStore.Path)) { if (jQuery.isEmptyObject(DataStore.Path)) {
this._router.navigate(['welcome']); this._router.navigate(['welcome']);
} else { } else {
...@@ -215,7 +242,7 @@ export class AppService { ...@@ -215,7 +242,7 @@ export class AppService {
}); });
} else { } else {
DataStore.error['login'] = '请检查用户名和密码'; DataStore.error['login'] = '请检查用户名和密码';
return '请检查用户名和密码'; return '请检查用户名和密码';
} }
} }
......
...@@ -16,7 +16,8 @@ import {AppService, DataStore, User} from './app.service'; ...@@ -16,7 +16,8 @@ import {AppService, DataStore, User} from './app.service';
export class FooterComponent { export class FooterComponent {
// DataStore = DataStore; DataStore = DataStore;
User = User;
constructor(private _appService: AppService, constructor(private _appService: AppService,
private _logger: Logger) { private _logger: Logger) {
......
<div class="container"> <div class="container" *ngIf="User.logined">
<footer> <footer>
<p>© Company 2017</p> <p>© Company 2017</p>
</footer> </footer>
......
...@@ -12,23 +12,23 @@ declare let jQuery: any; ...@@ -12,23 +12,23 @@ declare let jQuery: any;
selector: 'app-root', selector: 'app-root',
templateUrl: './login.html', templateUrl: './login.html',
styleUrls: ['./login.css'], styleUrls: ['./login.css'],
providers: [AppService, User] providers: [AppService]
}) })
// ToDo: ngEnter and redirect to default page // ToDo: ngEnter and redirect to default page
export class LoginComponent implements OnInit { export class LoginComponent implements OnInit {
DataStore = DataStore; DataStore = DataStore;
User = User;
loginBotton = 'login to your account'; loginBotton = 'login to your account';
constructor(private _appService: AppService, constructor(private _appService: AppService,
private _logger: Logger, private _logger: Logger) {
public user: User) {
this._logger.log('login.ts:LoginComponent'); this._logger.log('login.ts:LoginComponent');
} }
onSubmit() { onSubmit() {
this._logger.error(this._appService.login(this.user)); this._logger.error(this._appService.login());
} }
ngOnInit() { ngOnInit() {
...@@ -37,7 +37,7 @@ export class LoginComponent implements OnInit { ...@@ -37,7 +37,7 @@ export class LoginComponent implements OnInit {
// jQuery('nav').hide(); // jQuery('nav').hide();
const vm = this; const vm = this;
window.onresize = function () { window.onresize = function () {
if (!DataStore.logined) { if (!User.logined) {
vm.background(); vm.background();
} }
}; };
...@@ -49,7 +49,7 @@ export class LoginComponent implements OnInit { ...@@ -49,7 +49,7 @@ export class LoginComponent implements OnInit {
timer() { timer() {
if (DataStore.windowsize[0] !== document.documentElement.clientWidth || if (DataStore.windowsize[0] !== document.documentElement.clientWidth ||
DataStore.windowsize[1] !== document.documentElement.clientHeight && DataStore.windowsize[1] !== document.documentElement.clientHeight &&
!DataStore.logined) { !User.logined) {
jQuery(window).trigger('resize'); jQuery(window).trigger('resize');
DataStore.windowsize = [document.documentElement.clientWidth, document.documentElement.clientHeight]; DataStore.windowsize = [document.documentElement.clientWidth, document.documentElement.clientHeight];
} }
......
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
<div class="form"> <div class="form">
<form (ngSubmit)="onSubmit()"> <form (ngSubmit)="onSubmit()">
<div class="from-group"> <div class="from-group">
<input type="text" name="username" id="username" placeholder="Username" [(ngModel)]="user.username" required> <input type="text" name="username" id="username" placeholder="Username" [(ngModel)]="User.username" required>
<span class="fa fa-user-secret form-control-feedback"></span> <span class="fa fa-user-secret form-control-feedback"></span>
</div> </div>
<div class="from-group"> <div class="from-group">
<input type="password" name="password" id="password" placeholder="password" [(ngModel)]="user.password" required <input type="password" name="password" id="password" placeholder="password" [(ngModel)]="User.password" required
(ngEnter)="onSubmit()"> (ngEnter)="onSubmit()">
<span class="fa fa-key form-control-feedback"></span> <span class="fa fa-key form-control-feedback"></span>
</div> </div>
......
...@@ -11,8 +11,8 @@ import {AppService, DataStore, User} from './app.service'; ...@@ -11,8 +11,8 @@ import {AppService, DataStore, User} from './app.service';
}) })
export class WelcomeComponent { export class WelcomeComponent {
DataStore = DataStore; // DataStore = DataStore;
User = User;
// DataStore = DataStore; // DataStore = DataStore;
} }
<div class="container"> <div class="container" *ngIf="User.logined">
<div class="row row-offcanvas row-offcanvas-right"> <div class="row row-offcanvas row-offcanvas-right">
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<button type="button" class="btn btn-primary btn-sm" data-toggle="offcanvas">Toggle nav</button> <button type="button" class="btn btn-primary btn-sm" data-toggle="offcanvas">Toggle nav</button>
</p> </p>
<div class="jumbotron"> <div class="jumbotron">
<h1>Hello, world! {{DataStore.user.username}}</h1> <h1>Hello, world! {{User.username}}</h1>
<p>This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some <p>This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some
responsive-range viewport sizes to see it in action.</p> responsive-range viewport sizes to see it in action.</p>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment