Commit 0c6aade2 authored by liuzheng712's avatar liuzheng712

update

parent d70618ae
...@@ -352,6 +352,11 @@ ...@@ -352,6 +352,11 @@
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true "dev": true
}, },
"angular2-logger": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/angular2-logger/-/angular2-logger-0.6.0.tgz",
"integrity": "sha1-UBnEeSQn1/H0QslHABZX4QsuP2M="
},
"ansi-escapes": { "ansi-escapes": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
...@@ -1283,6 +1288,16 @@ ...@@ -1283,6 +1288,16 @@
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true "dev": true
}, },
"clipboard": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz",
"integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=",
"requires": {
"good-listener": "1.2.2",
"select": "1.1.2",
"tiny-emitter": "2.0.2"
}
},
"cliui": { "cliui": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
...@@ -1927,6 +1942,11 @@ ...@@ -1927,6 +1942,11 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "dev": true
}, },
"delegate": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.1.3.tgz",
"integrity": "sha1-moJRp3fXAl+qVXN7w7BxdCEnqf0="
},
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
...@@ -3965,6 +3985,14 @@ ...@@ -3965,6 +3985,14 @@
"minimatch": "3.0.4" "minimatch": "3.0.4"
} }
}, },
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"requires": {
"delegate": "3.1.3"
}
},
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
...@@ -5839,6 +5867,11 @@ ...@@ -5839,6 +5867,11 @@
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
"dev": true "dev": true
}, },
"ng2-cookies": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/ng2-cookies/-/ng2-cookies-1.0.12.tgz",
"integrity": "sha1-Pz5hPgE3sGSbcFxngHS0vQgUnMw="
},
"no-case": { "no-case": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz",
...@@ -7208,6 +7241,27 @@ ...@@ -7208,6 +7241,27 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true "dev": true
}, },
"pty.js": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/pty.js/-/pty.js-0.3.1.tgz",
"integrity": "sha1-gfW+0zLW5eeraFaI0boDc0ENUbU=",
"requires": {
"extend": "1.2.1",
"nan": "2.3.5"
},
"dependencies": {
"extend": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
"integrity": "sha1-oPX9bPyDpf5J72mNYOyKYk3UV2w="
},
"nan": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz",
"integrity": "sha1-gioNwmYpDOTNOhIoLKPn42Rmigg="
}
}
},
"public-encrypt": { "public-encrypt": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
...@@ -7810,6 +7864,11 @@ ...@@ -7810,6 +7864,11 @@
} }
} }
}, },
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
},
"select-hose": { "select-hose": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
...@@ -8754,6 +8813,11 @@ ...@@ -8754,6 +8813,11 @@
"setimmediate": "1.0.5" "setimmediate": "1.0.5"
} }
}, },
"tiny-emitter": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
"integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow=="
},
"tmp": { "tmp": {
"version": "0.0.31", "version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
......
...@@ -21,7 +21,11 @@ ...@@ -21,7 +21,11 @@
"@angular/platform-browser": "^4.2.4", "@angular/platform-browser": "^4.2.4",
"@angular/platform-browser-dynamic": "^4.2.4", "@angular/platform-browser-dynamic": "^4.2.4",
"@angular/router": "^4.2.4", "@angular/router": "^4.2.4",
"angular2-logger": "^0.6.0",
"clipboard": "^1.7.1",
"core-js": "^2.4.1", "core-js": "^2.4.1",
"ng2-cookies": "^1.0.12",
"pty.js": "^0.3.1",
"rxjs": "^5.4.2", "rxjs": "^5.4.2",
"zone.js": "^0.8.14" "zone.js": "^0.8.14"
}, },
......
/**
* Created by liuzheng on 2017/8/31.
*/
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {WelcomeComponent} from './welcome.component';
import {PageNotFoundComponent} from './not-found.component';
const appRoutes: Routes = [
// { path: 'crisis-center', component: CrisisListComponent },
{path: 'welcome', component: WelcomeComponent}, // <-- delete this line
{path: '', redirectTo: '/welcome', pathMatch: 'full'},
{path: '**', component: PageNotFoundComponent}
];
@NgModule({
imports: [
RouterModule.forRoot(
appRoutes,
{enableTracing: true} // <-- debugging purposes only
)
],
exports: [
RouterModule
]
})
export class AppRoutingModule {
}
import { NgModule } from '@angular/core'; /**
import { BrowserModule } from '@angular/platform-browser'; * Created by liuzheng on 2017/8/30.
import { FormsModule } from '@angular/forms'; // <-- NgModel lives here */
import { AppComponent } from './app.component'; import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms'; // <-- NgModel lives here
import {Logger, Options, Level as LoggerLevel} from 'angular2-logger/core';
import { HttpModule } from '@angular/http';
import {AppRoutingModule} from './app-routing.module';
import {IndexComponent} from './index.component';
import {WelcomeComponent} from './welcome.component';
import {NavComponent} from './nav.component';
import {PageNotFoundComponent} from './not-found.component';
@NgModule({ @NgModule({
imports: [ imports: [
BrowserModule, BrowserModule,
FormsModule // <-- import the FormsModule before binding with [(ngModel)] FormsModule,
AppRoutingModule,
HttpModule,
], ],
declarations: [ declarations: [
AppComponent IndexComponent,
WelcomeComponent,
NavComponent,
PageNotFoundComponent
// HeroListComponent,
// CrisisListComponent,
], ],
bootstrap: [ AppComponent ] bootstrap: [IndexComponent],
providers: [
{provide: Options, useValue: {store: false, level: LoggerLevel.WARN}},
Logger
]
}) })
export class AppModule { } export class AppModule {}
/**
* Created by liuzheng on 2017/8/30.
*/
import {Injectable, NgModule} from '@angular/core';
import {Http} from '@angular/http';
import {Cookie} from 'ng2-cookies/ng2-cookies';
// import {CookieService} from 'angular2-cookie/core'
import {Logger} from 'angular2-logger/core';
import 'rxjs/add/operator/map';
// import {DynamicRouteConfigurator} from './dynamicRouteConfigurator'
// import 'rxjs/add/operator/share';
// import 'rxjs/Rx';
// declare var jQuery: any;
// declare var Terminal: any;
// declare var Clipboard: any;
// declare var io: any;
// declare var layer: any;
// @Injectable()
// export class Logger {
// logs: string[] = []; // capture logs for testing
// log(message: string) {
// this.logs.push(message);
// console.log(message);
// }
// }
export interface 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 interface Group {
id: number;
name: string;
membercount: number;
comment: string;
}
export interface DataStore {
socket: any;
user: User;
Nav: Array<{}>;
logined: boolean;
lastNavigationAttempt: string;
route: Array<{}>;
activenav: {};
Path: {};
error: {};
msg: {};
leftbar: string;
leftbarrightclick: string;
loglevel: number;
term: Array<{}>;
termActive: number;
leftbarhide: boolean;
termlist: Array<string>;
windowsize: Array<number>;
}
// = {
// socket: io.connect(),
// user: new User,
// Nav: [{}],
// logined: false,
// lastNavigationAttempt: '',
// route: [{}],
// activenav: {},
// Path: {},
// error: {},
// msg: {},
// leftbar: '/api/leftbar',
// leftbarrightclick: '/api/leftbarrightclick',
// loglevel: 0,
// term: [],
// termActive: 0,
// leftbarhide: false,
// termlist: [],
// windowsize: [],
// };
@Injectable()
export class AppService {
// user:User = user ;
// searchrequest: any;
constructor(private http: Http,
private _logger: Logger) {
if (Cookie.get('loglevel')) {
// 0.- Level.OFF
// 1.- Level.ERROR
// 2.- Level.WARN
// 3.- Level.INFO
// 4.- Level.DEBUG
// 5.- Level.LOG
this._logger.level = parseInt(Cookie.get('loglevel'));
// this._logger.debug('Your debug stuff');
// this._logger.info('An info');
// this._logger.warn('Take care ');
// this._logger.error('Too late !');
// this._logger.log('log !');
} else {
Cookie.set('loglevel', '0', 99, '/', document.domain);
// this._logger.level = parseInt(Cookie.getCookie('loglevel'));
this._logger.level = 0;
}
// let vm = this;
// DataStore.socket.on('connect', function () {
// console.log('DatsStore socket connected');
// DataStore.socket.on('nav', function (data) {
// DataStore.Nav = JSON.parse(data);
// });
// DataStore.socket.on('leftbar', function (data) {
// if (data == 'changed')
// vm.ReloadLeftbar();
// });
// // DataStore.socket.on('popup', function (data) {
// // layer.msg(data);
// // });
//
// // DataStore.socket.emit('api', 'all');
// });
// // this.checklogin();
// }
//
// checklogin() {
// this._logger.log('service.ts:AppService,checklogin');
//
// if (DataStore.Path)
// if (DataStore.Path['name'] == 'FOF' || DataStore.Path['name'] == 'Forgot') {
// }
// // jQuery('angular2').show();
// else {
// if (DataStore.logined) {
// this._router.navigate([DataStore.Path['name']]);
// // jQuery('angular2').show();
// } else {
// this.http.get('/api/checklogin')
// .map(res => res.json())
// .subscribe(
// data => {
// DataStore.logined = data.logined;
// DataStore.user = data.user;
// },
// err => {
// this._logger.error(err);
// DataStore.logined = false;
// this._router.navigate(['Login']);
// },
// () => {
// if (DataStore.logined) {
// if (jQuery.isEmptyObject(DataStore.Path))
// this._router.navigate(['Index', '/']);
// else
// this._router.navigate([DataStore.Path['name'], DataStore.Path['res']]);
// }
// else
// this._router.navigate(['Login']);
// // jQuery('angular2').show();
// }
// );
// }
// }
// else {
// this._router.navigate(['FOF']);
// // jQuery('angular2').show();
// }
// }
//
// login(user: User) {
// this._logger.log('service.ts:AppService,login');
// DataStore.error['login'] = '';
// 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())
// .subscribe(
// data => {
// DataStore.logined = data.logined;
// DataStore.user = data.user;
// },
// err => {
// this._logger.error(err);
// DataStore.logined = false;
// this._router.navigate(['Login']);
// DataStore.error['login'] = '后端错误,请重试';
// },
// () => {
// if (DataStore.logined) {
// if (jQuery.isEmptyObject(DataStore.Path))
// this._router.navigate(['Index', '/']);
// else
// this._router.navigate([DataStore.Path['name'], DataStore.Path['res']]);
// } else {
// DataStore.error['login'] = '请检查用户名和密码';
// this._router.navigate(['Login']);
// }
// // jQuery('angular2').show();
//
// });
// else
// DataStore.error['login'] = '请检查用户名和密码';
//
// }
//
//
// HideLeft() {
// DataStore.leftbarhide = true;
//
// DataStore.Nav.map(function (value, i) {
// for (var ii in value['children']) {
// if (DataStore.Nav[i]['children'][ii]['id'] === 'HindLeftManager') {
// DataStore.Nav[i]['children'][ii] = {
// 'id': 'ShowLeftManager',
// 'click': 'ShowLeft',
// 'name': 'Show left manager'
// };
// }
// }
// });
//
// }
//
// ShowLeft() {
// DataStore.leftbarhide = false;
//
// DataStore.Nav.map(function (value, i) {
// for (var ii in value['children']) {
// if (DataStore.Nav[i]['children'][ii]['id'] === 'ShowLeftManager') {
// DataStore.Nav[i]['children'][ii] = {
// 'id': 'HindLeftManager',
// 'click': 'HideLeft',
// 'name': 'Hind left manager'
// };
// }
// }
// });
//
//
// }
//
// ReloadLeftbar() {
// jQuery('#left-bar').fancytree('getTree').reload();
// }
//
// // setMyinfo(user:User) {
// // // Update data store
// // this._dataStore.user = user;
// // this._logger.log("service.ts:AppService,setMyinfo");
// // this._logger.debug(user);
// // // Push the new list of todos into the Observable stream
// // // this._dataObserver.next(user);
// // // this.myinfo$ = new Observable(observer => this._dataObserver = observer).share()
// // }
//
// getMyinfo() {
// this._logger.log('service.ts:AppService,getMyinfo');
// return this.http.get('/api/userprofile')
// .map(res => res.json())
// .subscribe(response => {
// DataStore.user = response;
// // this._logger.warn(this._dataStore.user);
// // this._logger.warn(DataStore.user)
// });
// }
//
// getUser(id: string) {
// this._logger.log('service.ts:AppService,getUser');
// return this.http.get('/api/userprofile')
// .map(res => res.json());
// }
//
// gettest() {
// this._logger.log('service.ts:AppService,gettest');
// this.http.get('/api/userprofile')
// .map(res => res.json())
// .subscribe(res => {
// return res;
// });
// }
//
// getGrouplist() {
// this._logger.log('service.ts:AppService,getGrouplist');
// return this.http.get('/api/grouplist')
// .map(res => res.json());
// }
//
// getUserlist(id: string) {
// this._logger.log('service.ts:AppService,getUserlist');
// if (id)
// return this.http.get('/api/userlist/' + id)
// .map(res => res.json());
// else
// return this.http.get('/api/userlist')
// .map(res => res.json());
// }
//
// delGroup(id) {
//
// }
//
//
// copy() {
// var clipboard = new Clipboard('#Copy');
//
// clipboard.on('success', function (e) {
// console.info('Action:', e.action);
// console.info('Text:', e.text);
// console.info('Trigger:', e.trigger);
//
// e.clearSelection();
// });
// console.log('ffff');
// console.log(window.getSelection().toString());
//
// var copy = new Clipboard('#Copy', {
// text: function () {
// return window.getSelection().toString();
// }
// });
// copy.on('success', function (e) {
// layer.alert('Lucky Copyed!');
// });
//
// }
//
// // getMachineList() {
// // this._logger.log('service.ts:AppService,getMachineList');
// // return this.http.get('/api/leftbar')
// // .map(res => res.json())
// // .subscribe(response => {
// // DataStore.leftbar = response;
// // this._logger.debug("DataStore.leftbar:", DataStore.leftbar)
// //
// // // this._logger.warn(this._dataStore.user);
// // // this._logger.warn(DataStore.user)
// // });
// // }
// //
// // getLeftbarRightclick() {
// // this._logger.log('service.ts:AppService,getLeftbarRightclick');
// // return this.http.get('/api/leftbarrightclick')
// // .map(res => res.json())
// // .subscribe(response => {
// // DataStore.leftbarrightclick = response;
// // this._logger.debug("DataStore.leftbarrightclick:", DataStore.leftbarrightclick)
// // // this._logger.warn(this._dataStore.user);
// // // this._logger.warn(DataStore.user)
// // });
// //
// // }
// TerminalConnect(uuid) {
// var socket = io.connect();
// var vm = this;
//
// if (Cookie.get('cols')) {
// var cols = Cookie.get('cols');
// } else {
// var cols = '80';
// Cookie.set('cols', cols, 99, '/', document.domain);
// }
// if (Cookie.get('rows')) {
// var rows = Cookie.get('rows');
// } else {
// var rows = '24';
// Cookie.set('rows', rows, 99, '/', document.domain);
// }
// var id = DataStore.term.push({
// 'machine': 'localhost',
// 'nick': 'localhost',
// 'connected': true,
// 'socket': socket
// }) - 1;
// DataStore.termActive = id;
// DataStore.term[id]['term'] = new Terminal({
// cols: cols,
// rows: rows,
// useStyle: true,
// screenKeys: true
// });
//
// DataStore.term[id]['term'].on('title', function (title) {
// document.title = title;
// });
//
// DataStore.term[id]['term'].open(document.getElementById('term-' + id));
//
// DataStore.term[id]['term'].write('\x1b[31mWelcome to Jumpserver!\x1b[m\r\n');
//
// socket.on('connect', function () {
// socket.emit('machine', uuid);
//
// DataStore.term[id]['term'].on('data', function (data) {
// socket.emit('data', data);
// });
//
//
// socket.on('data', function (data) {
// DataStore.term[id]['term'].write(data);
// });
//
// socket.on('disconnect', function () {
// vm.TerminalDisconnect(id);
// // DataStore.term[id]["term"].destroy();
// // DataStore.term[id]["connected"] = false;
// });
//
// window.onresize = function () {
// var col = Math.floor(jQuery('#term').width() / jQuery('#liuzheng').width() * 8) - 3;
// var row = Math.floor(jQuery('#term').height() / jQuery('#liuzheng').height()) - 3;
// if (Cookie.get('rows')) {
// var rows = parseInt(Cookie.get('rows'));
// } else {
// var rows = 24;
// }
// if (Cookie.get('cols')) {
// var cols = parseInt(Cookie.get('cols'));
// } else {
// var cols = 80;
// }
// if (col < 80) col = 80;
// if (row < 24) row = 24;
// if (cols == col && row == rows) {
// } else {
// for (var termid in DataStore.term) {
// DataStore.term[termid]['socket'].emit('resize', [col, row]);
// DataStore.term[termid]['term'].resize(col, row);
// }
// Cookie.set('cols', String(col), 99, '/', document.domain);
// Cookie.set('rows', String(row), 99, '/', document.domain);
// }
// };
// });
//
// }
//
// TerminalDisconnect(i) {
// DataStore.term[i]['connected'] = false;
// DataStore.term[i]['socket'].destroy();
// DataStore.term[i]['term'].write('\r\n\x1b[31mBye Bye!\x1b[m\r\n');
// }
//
// TerminalDisconnectAll() {
// for (var i in DataStore.term) {
// this.TerminalDisconnect(i);
// // DataStore.term[i]["connected"] = false;
// // DataStore.term[i]["socket"].destroy();
// // DataStore.term[i]["term"].write('\r\n\x1b[31mBye Bye!\x1b[m\r\n');
// }
// }
//
// Search(q) {
// if (this.searchrequest) {
// this.searchrequest.unsubscribe();
// }
// this.searchrequest = this.http.get('/api/search?q=' + q)
// .map(res => res.json())
// .subscribe(
// data => {
// this._logger.log(data);
// },
// err => {
// this._logger.error(err);
// },
// () => {
// }
// );
// this._logger.log(q);
// }
}
}
//
// @Pipe({
// name: 'join'
// })
//
// export class Join {
// transform(value, args?) {
// if (typeof value === 'undefined')
// return 'undefined';
// return value.join(args)
// }
// }
/**
* Created by liuzheng on 2017/8/31.
*/
import {Component} from '@angular/core';
import {AppService} from './app.service';
@Component({
selector: 'app-root',
templateUrl: './index.html',
providers: [AppService],
// directives: [LeftbarComponent, TermComponent]
})
export class IndexComponent {
// DataStore = DataStore;
}
<app-nav></app-nav>
<div id="left-bar"></div>
<!--<term id="ngdiv" [ngClass]="{'hideleftbar':DataStore.leftbarhide}"></term>-->
<router-outlet></router-outlet>
/**
* Created by liuzheng on 2017/8/30.
*/
import {Component} from '@angular/core';
import {NgClass} from '@angular/common';
// import {ROUTER_DIRECTIVES} from '@angular/router-deprecated';
import {Logger} from 'angular2-logger/core';
// import 'rxjs/Rx';
// declare var jQuery: any;
// declare var Clipboard: any;
// declare var layer: any;
import {AppService, DataStore} from './app.service';
//noinspection TypeScriptValidateTypes
@Component({
selector: 'app-nav',
templateUrl: './nav.html',
// directives: [NgClass]
})
export class NavComponent {
// DataStore = DataStore;
constructor(private _appService: AppService,
private _logger: Logger) {
this._logger.log('nav.ts:NavComponent');
// this._appService.getnav()
}
// ngOnInit() {
//
// }
//
// click(event) {
// this._logger.debug('nav.ts:NavComponent,click', event);
// if (event === 'ReloadLeftbar') {
// this._appService.ReloadLeftbar();
// } else if (event === 'HideLeft') {
// this._appService.HideLeft();
// } else if (event === 'ShowLeft') {
// this._appService.ShowLeft();
// } else if (event === 'Copy') {
// this._appService.copy();
// } else if (event === 'Disconnect') {
// this._appService.TerminalDisconnect(DataStore.termActive);
// } else if (event === 'DisconnectAll') {
// this._appService.TerminalDisconnectAll();
// } else if (event === 'Website') {
// window.open('http://www.jumpserver.org');
// } else if (event === 'BBS') {
// window.open('http://bbs.jumpserver.org');
// } else if (event === 'EnterLicense') {
// this.EnterLicense();
// }
// }
//
// EnterLicense() {
// layer.prompt({
// formType: 2,
// maxlength: 500,
// title: 'Please Input Code',
// scrollbar: false,
// area: ['400px', '300px'],
// moveOut: true,
// moveType: 1
// }, function (value, index) {
// DataStore.socket.emit('key', value);
// // layer.msg(value); //得到value
// layer.close(index);
//
// });
// }
}
<div class="nav" >
nav
</div>
/**
* Created by liuzheng on 2017/8/31.
*/
import {Component} from '@angular/core';
@Component({
selector: 'app-root',
template: '<h2>Page not found</h2>'
})
export class PageNotFoundComponent {
}
/**
* Created by liuzheng on 2017/8/31.
*/
import {Component} from '@angular/core';
import {AppService} from './app.service';
@Component({
templateUrl: './welcome.html',
providers: [AppService],
// directives: [LeftbarComponent, TermComponent]
})
export class WelcomeComponent {
// DataStore = DataStore;
}
<h2>welcome</h2>
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.ico">
</head> </head>
<body> <body>
<app-root></app-root> <app-root></app-root>
</body> </body>
</html> </html>
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