Commit c07156f3 authored by i317280's avatar i317280

update

parents be295278 54f2ba6a
...@@ -38,15 +38,26 @@ server.run = function (options) { ...@@ -38,15 +38,26 @@ server.run = function (options) {
var app = express(); var app = express();
var server = http.createServer(app); var server = http.createServer(app);
var apis = express.Router();
app.use("/", express.static(__dirname + '/dist/')); // 创建服务端 app.use("/", express.static(__dirname + '/dist/')); // 创建服务端
app.use("/socket.io/", express.static(__dirname + '/api/')); // 创建服务端 // app.use("/socket.io/", express.static(__dirname + '/api/')); // 创建服务端
// let term.js handle req/res // let term.js handle req/res
// app.use(terminal.middleware()); // app.use(terminal.middleware());
apis.route('/checklogin')
.post(function (req, res) {
res.json({logined: true, id: 1, username: "liuzheng", name: "liuzheng"})
})
.get(function (req, res) {
res.json({logined: false})
});
app.use("/api", apis);
// let server listen on the port // let server listen on the port
options = options || {}; options = options || {};
server.listen(options.port || 8080); server.listen(options.port || 3000);
// let socket.io handle sockets // let socket.io handle sockets
io = io.listen(server, {log: false}); io = io.listen(server, {log: false});
...@@ -77,6 +88,6 @@ server.run = function (options) { ...@@ -77,6 +88,6 @@ server.run = function (options) {
}; };
server.run({port: 8888}); server.run({port: 3000});
console.log('Please open your browser with http://127.0.0.1:8888'); console.log('Please open your browser with http://127.0.0.1:3000');
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build", "build": "ng build",
"test": "ng test", "test": "ng test",
"lint": "ng lint", "lint": "ng lint",
......
{
"/api": {
"target": "http://localhost:3000",
"secure": false
},
"/socket.io/": {
"target": "http://localhost:3000",
"secure": 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;
...@@ -40,20 +60,25 @@ export class User { ...@@ -40,20 +60,25 @@ export class User {
date_joined: string; date_joined: string;
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,39 +206,44 @@ export class AppService { ...@@ -181,39 +206,44 @@ 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'] = '';
this._logger.log(user); this._logger.log(User);
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 '后端错误,请重试';
}, },
() => { () => {
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 {
this._router.navigate([DataStore.Path['name'], DataStore.Path['res']]); this._router.navigate([DataStore.Path['name'], DataStore.Path['res']]);
} }
} else { } else {
DataStore.error['login'] = '请检查用户名和密码';
this._router.navigate(['login']); this._router.navigate(['login']);
DataStore.error['login'] = '请检查用户名和密码';
return '请检查用户名和密码';
} }
// jQuery('angular2').show(); // jQuery('angular2').show();
}); });
} else { } else {
DataStore.error['login'] = '请检查用户名和密码'; DataStore.error['login'] = '请检查用户名和密码';
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>
......
...@@ -13,25 +13,24 @@ declare let jQuery: any; ...@@ -13,25 +13,24 @@ 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';
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(f: NgForm) { onSubmit(f: NgForm) {
if (f.valid) { if (f.valid) {
this.user.username = f.value.email; this._appService.login();
this.user.password = f.value.password;
this._appService.login(this.user);
} else { } else {
this._logger.error("the form not valid") this._logger.error("the form not valid")
} }
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<h2 class="form-signin-heading">Please sign in</h2> <h2 class="form-signin-heading">Please sign in</h2>
<label for="inputEmail" class="sr-only">Email address</label> <label for="inputEmail" class="sr-only">Email address</label>
<input type="email" id="inputEmail" class="form-control" placeholder="Email address" <input type="email" id="inputEmail" class="form-control" placeholder="Email address"
name="email" ngModel #email="ngModel" required autofocus pattern="^\w+([.-]?\w+)*@\w+([.-]?\w+)*(.\w{2,3})+$"> name="email" [(ngModel)]="User.username" required autofocus pattern="^\w+([.-]?\w+)*@\w+([.-]?\w+)*(.\w{2,3})+$">
<label for="inputPassword" class="sr-only">Password</label> <label for="inputPassword" class="sr-only">Password</label>
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required <input type="password" id="inputPassword" class="form-control" placeholder="Password" required
name="password" ngModel #password="ngModel" (ngEnter)="onSubmit(f)"> name="password" [(ngModel)]="User.password" (ngEnter)="onSubmit(f)">
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox" value="remember-me"> Remember me <input type="checkbox" value="remember-me"> Remember me
......
/** /**
* Created by liuzheng on 2017/8/31. * Created by liuzheng on 2017/8/31.
*/ */
import {Component} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {AppService} from './app.service'; import {AppService, DataStore, User} from './app.service';
@Component({ @Component({
templateUrl: './welcome.html', templateUrl: './welcome.html',
providers: [AppService], providers: [AppService]
// directives: [LeftbarComponent, TermComponent] // directives: [LeftbarComponent, TermComponent]
}) })
export class WelcomeComponent { export class WelcomeComponent {
// DataStore = DataStore; // DataStore = DataStore;
User = User;
// 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!</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