Commit dc876107 authored by 周小侠's avatar 周小侠 Committed by ibuler

grunt config

parent 93a208d7
......@@ -67,7 +67,7 @@ module.exports = function(grunt) {
main: {
dest: 'luna/dist/main.min.js',
src: 'luna/src/js/main.js'
// files: [
// files: [
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/luna/src/ts/index.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.ts' },
......@@ -76,28 +76,46 @@ module.exports = function(grunt) {
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.ts' },
// { filter: 'isFile', dest: 'luna/dist/', src: 'luna/src/js/main.js' },
// { filter: 'isFile', dest: 'luna/dist/', src: 'luna/src/js/main.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js.map' }
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js.map' }
// ]
},
// ts: {
// dest: 'luna/dist/ts/**',
// src: 'luna/src/ts/**'
// }
ts: {
dest: 'luna/dist/',
src: 'luna/src/ts/**'
files: [{
expand: true,
filter: 'isFile',
cwd: 'luna/src/ts',
src: '**',
dest: 'luna/dist/ts/'
}]
},
fonts: {
files: [{
expand: true,
filter: 'isFile',
cwd: 'luna/src/fonts',
src: '**',
dest: 'luna/dist/fonts'
}]
}
},
......
No preview for this file type
/**
* Created by liuzheng on 7/12/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
var SomeComponent = (function () {
function SomeComponent(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this.DataStore = service_1.DataStore;
this._logger.log('SomeComponent.ts:SomeComponent');
}
SomeComponent.prototype.ngOnInit = function () {
};
SomeComponent = __decorate([
core_1.Component({
selector: 'ng-div',
template: "<div><p >{{DataStore.logined}}</p></div>",
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], SomeComponent);
return SomeComponent;
}());
exports.SomeComponent = SomeComponent;
//# sourceMappingURL=copy-model.js.map
\ No newline at end of file
{"version":3,"file":"copy-model.js","sourceRoot":"","sources":["copy-model.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;;;;;AAEH,qBAAwB,eAAe,CAAC,CAAA;AAGxC,qBAAqB,sBAAsB,CAAC,CAAA;AAE5C,QAAQ,SAAS,CAAC,CAAA;AAGlB,wBAAoC,WAGpC,CAAC,CAH8C;AAS/C;IAGI,uBAAoB,WAAsB,EACtB,OAAc;QADd,gBAAW,GAAX,WAAW,CAAW;QACtB,YAAO,GAAP,OAAO,CAAO;QAHlC,cAAS,GAAG,mBAAS,CAAC;QAIlB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACvD,CAAC;IAED,gCAAQ,GAAR;IAEA,CAAC;IAhBL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,0CAA0C;SACvD,CAAC;;qBAAA;IAeF,oBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,qBAAa,gBAYzB,CAAA"}
\ No newline at end of file
/**
* Created by liuzheng on 7/12/16.
*/
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;
import {AppService, DataStore} from './service'
@Component({
selector: 'ng-div',
template: `<div><p >{{DataStore.logined}}</p></div>`,
})
export class SomeComponent {
DataStore = DataStore;
constructor(private _appService:AppService,
private _logger:Logger) {
this._logger.log('SomeComponent.ts:SomeComponent');
}
ngOnInit() {
}
}
\ No newline at end of file
/**
* Created by liuzheng on 7/12/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
var HostEditComponent = (function () {
function HostEditComponent(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this.DataStore = service_1.DataStore;
this._logger.log('SomeComponent.ts:SomeComponent');
}
HostEditComponent.prototype.ngOnInit = function () {
};
HostEditComponent = __decorate([
core_1.Component({
selector: 'div',
template: "<div style=\"background-color: #fff;\">\n<table class=\"ui red table\">\n <thead>\n <tr><th>Food</th>\n <th>Calories</th>\n <th>Protein</th>\n </tr></thead><tbody>\n <tr>\n <td>Apples</td>\n <td>200</td>\n <td>0g</td>\n </tr>\n <tr>\n <td>Orange</td>\n <td>310</td>\n <td>0g</td>\n </tr>\n </tbody>\n</table>\n</div>",
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], HostEditComponent);
return HostEditComponent;
}());
exports.HostEditComponent = HostEditComponent;
//# sourceMappingURL=hostedit.js.map
\ No newline at end of file
{"version":3,"file":"hostedit.js","sourceRoot":"","sources":["hostedit.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;;;;;AAEH,qBAAwB,eAAe,CAAC,CAAA;AAGxC,qBAAqB,sBAAsB,CAAC,CAAA;AAE5C,QAAQ,SAAS,CAAC,CAAA;AAGlB,wBAAoC,WAGpC,CAAC,CAH8C;AA4B/C;IAGI,2BAAoB,WAAsB,EACtB,OAAc;QADd,gBAAW,GAAX,WAAW,CAAW;QACtB,YAAO,GAAP,OAAO,CAAO;QAHlC,cAAS,GAAG,mBAAS,CAAC;QAIlB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACvD,CAAC;IAED,oCAAQ,GAAR;IAEA,CAAC;IAnCL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,oXAmBP;SACN,CAAC;;yBAAA;IAeF,wBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,yBAAiB,oBAY7B,CAAA"}
\ No newline at end of file
/**
* Created by liuzheng on 7/12/16.
*/
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;
import {AppService, DataStore} from './service'
@Component({
selector: 'div',
template: `<div style="background-color: #fff;">
<table class="ui red table">
<thead>
<tr><th>Food</th>
<th>Calories</th>
<th>Protein</th>
</tr></thead><tbody>
<tr>
<td>Apples</td>
<td>200</td>
<td>0g</td>
</tr>
<tr>
<td>Orange</td>
<td>310</td>
<td>0g</td>
</tr>
</tbody>
</table>
</div>`,
})
export class HostEditComponent {
DataStore = DataStore;
constructor(private _appService:AppService,
private _logger:Logger) {
this._logger.log('SomeComponent.ts:SomeComponent');
}
ngOnInit() {
}
}
\ No newline at end of file
/**
* Created by liuzheng on 4/7/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var platform_browser_dynamic_1 = require('@angular/platform-browser-dynamic');
var http_1 = require('@angular/http');
var core_1 = require('@angular/core');
var router_deprecated_1 = require('@angular/router-deprecated');
require('rxjs/Rx');
var core_2 = require("angular2-logger/core");
var service_1 = require('./service');
var nav_1 = require('./nav');
var leftbar_1 = require('./leftbar');
// import {SomeComponent} from './copy-model';
var terminal_1 = require('./terminal');
var login_1 = require('./login');
var hostedit_1 = require('./hostedit');
//noinspection TypeScriptValidateTypes
var WorkboardComponent = (function () {
function WorkboardComponent() {
this.DataStore = service_1.DataStore;
}
WorkboardComponent = __decorate([
core_1.Component({
selector: "div",
template: "<div id=\"left-bar\" [ngClass]=\"{'hideleftbar':DataStore.leftbarhide}\"></div>\n<term id=\"ngdiv\" [ngClass]=\"{'hideleftbar':DataStore.leftbarhide}\"></term>",
directives: [leftbar_1.LeftbarComponent, terminal_1.TermComponent]
}),
__metadata('design:paramtypes', [])
], WorkboardComponent);
return WorkboardComponent;
}());
exports.WorkboardComponent = WorkboardComponent;
//noinspection TypeScriptValidateTypes
var IndexComponent = (function () {
function IndexComponent() {
this.DataStore = service_1.DataStore;
}
IndexComponent = __decorate([
core_1.Component({
selector: "div",
// template: `<div style="background-color: white">Thank you for using <a [routerLink]="['WorkboardComponent']">Bifrost</a></div>`,
template: "<div id=\"left-bar\" *ngIf=\"!DataStore.leftbarhide\"></div>\n<term id=\"ngdiv\" [ngClass]=\"{'hideleftbar':DataStore.leftbarhide}\"></term>",
directives: [leftbar_1.LeftbarComponent, terminal_1.TermComponent]
}),
__metadata('design:paramtypes', [])
], IndexComponent);
return IndexComponent;
}());
exports.IndexComponent = IndexComponent;
// const routes:RouterConfig = [
// {path: '', component: IndexComponent},
// {path: 'aaa', component: IndexComponent}
// ];
// export const appRouterProviders = [
// provideRouter(routes)
// ];
//noinspection TypeScriptValidateTypes
var AppComponent = (function () {
function AppComponent() {
this.DataStore = service_1.DataStore;
}
AppComponent = __decorate([
core_1.Component({
selector: 'body',
template: "<nav></nav>\n<span id=\"liuzheng\" style=\"display:none\">liuzheng</span>\n<router-outlet></router-outlet>",
directives: [nav_1.NavComponent, router_deprecated_1.ROUTER_DIRECTIVES],
providers: [service_1.AppService, router_deprecated_1.ROUTER_PROVIDERS]
}),
router_deprecated_1.RouteConfig([
{ path: '/login', name: 'Login', component: login_1.LoginComponent },
{ path: '/', name: 'Index', component: IndexComponent },
{ path: '/aaa', name: 'Aaaa', component: IndexComponent },
{ path: '/bifrost', name: 'WorkboardComponent', component: WorkboardComponent },
{ path: '/hostedit', name: 'HostEdit', component: hostedit_1.HostEditComponent },
]),
__metadata('design:paramtypes', [])
], AppComponent);
return AppComponent;
}());
exports.AppComponent = AppComponent;
platform_browser_dynamic_1.bootstrap(AppComponent, [
http_1.HTTP_PROVIDERS,
core_2.Logger,
service_1.AppService
]);
//# sourceMappingURL=index.js.map
\ No newline at end of file
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;;;;;AAEH,yCAA2B,mCAAmC,CAAC,CAAA;AAC/D,qBAAqC,eAAe,CAAC,CAAA;AACrD,qBAAgC,eAAe,CAAC,CAAA;AAChD,kCAA+D,4BAA4B,CAAC,CAAA;AAE5F,QAAQ,SAAS,CAAC,CAAA;AAElB,qBAAqB,sBAAsB,CAAC,CAAA;AAC5C,wBAA0C,WAAW,CAAC,CAAA;AACtD,oBAA2B,OAAO,CAAC,CAAA;AACnC,wBAA+B,WAAW,CAAC,CAAA;AAC3C,8CAA8C;AAC9C,yBAA4B,YAAY,CAAC,CAAA;AACzC,sBAA6B,SAAS,CAAC,CAAA;AACvC,yBAAgC,YAAY,CAAC,CAAA;AAG7C,sCAAsC;AAOtC;IAAA;QACI,cAAS,GAAG,mBAAS,CAAC;IAC1B,CAAC;IARD;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,iKAC6D;YACvE,UAAU,EAAE,CAAC,0BAAgB,EAAE,wBAAa,CAAC;SAChD,CAAC;;0BAAA;IAGF,yBAAC;AAAD,CAAC,AAFD,IAEC;AAFY,0BAAkB,qBAE9B,CAAA;AACD,sCAAsC;AAStC;IAAA;QACI,cAAS,GAAG,mBAAS,CAAC;IAC1B,CAAC;IAVD;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,KAAK;YACf,mIAAmI;YACnI,QAAQ,EAAE,8IAC6D;YACvE,UAAU,EAAE,CAAC,0BAAgB,EAAE,wBAAa,CAAC;SAChD,CAAC;;sBAAA;IAIF,qBAAC;AAAD,CAAC,AAFD,IAEC;AAFY,sBAAc,iBAE1B,CAAA;AAED,gCAAgC;AAChC,6CAA6C;AAC7C,+CAA+C;AAC/C,KAAK;AACL,sCAAsC;AACtC,4BAA4B;AAC5B,KAAK;AAGL,sCAAsC;AAsBtC;IAAA;QACI,cAAS,GAAG,mBAAS,CAAC;IAO1B,CAAC;IA7BD;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,4GAEkB;YAC5B,UAAU,EAAE,CAAC,kBAAY,EAAE,qCAAiB,CAAC;YAC7C,SAAS,EAAE,CAAC,oBAAU,EAAE,oCAAgB,CAAC;SAC5C,CAAC;QAGD,+BAAW,CAAC;YACT,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAc,EAAC;YAC1D,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAC;YACrD,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAC;YACvD,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAAC;YAC7E,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,4BAAiB,EAAC;SAKtE,CAAC;;oBAAA;IASF,mBAAC;AAAD,CAAC,AARD,IAQC;AARY,oBAAY,eAQxB,CAAA;AAED,oCAAS,CAAC,YAAY,EAAE;IACpB,qBAAc;IACd,aAAM;IACN,oBAAU;CACb,CAAC,CAAC"}
\ No newline at end of file
/**
* Created by liuzheng on 4/7/16.
*/
import {bootstrap} from '@angular/platform-browser-dynamic';
import {Http, HTTP_PROVIDERS} from '@angular/http';
import {Component} from '@angular/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from '@angular/router-deprecated';
import 'rxjs/Rx';
declare var jQuery:any;
import {Logger} from "angular2-logger/core";
import {AppService, User, DataStore} from './service';
import {NavComponent} from './nav';
import {LeftbarComponent} from './leftbar';
// import {SomeComponent} from './copy-model';
import {TermComponent} from './terminal';
import {LoginComponent} from './login';
import {HostEditComponent} from './hostedit';
//noinspection TypeScriptValidateTypes
@Component({
selector: "div",
template: `<div id="left-bar" [ngClass]="{'hideleftbar':DataStore.leftbarhide}"></div>
<term id="ngdiv" [ngClass]="{'hideleftbar':DataStore.leftbarhide}"></term>`,
directives: [LeftbarComponent, TermComponent]
})
export class WorkboardComponent {
DataStore = DataStore;
}
//noinspection TypeScriptValidateTypes
@Component({
selector: "div",
// template: `<div style="background-color: white">Thank you for using <a [routerLink]="['WorkboardComponent']">Bifrost</a></div>`,
template: `<div id="left-bar" *ngIf="!DataStore.leftbarhide"></div>
<term id="ngdiv" [ngClass]="{'hideleftbar':DataStore.leftbarhide}"></term>`,
directives: [LeftbarComponent, TermComponent]
})
export class IndexComponent {
DataStore = DataStore;
}
// const routes:RouterConfig = [
// {path: '', component: IndexComponent},
// {path: 'aaa', component: IndexComponent}
// ];
// export const appRouterProviders = [
// provideRouter(routes)
// ];
//noinspection TypeScriptValidateTypes
@Component({
selector: 'body',
template: `<nav></nav>
<span id="liuzheng" style="display:none">liuzheng</span>
<router-outlet></router-outlet>`,
directives: [NavComponent, ROUTER_DIRECTIVES],
providers: [AppService, ROUTER_PROVIDERS]
})
//noinspection TypeScriptValidateTypes
@RouteConfig([
{path: '/login', name: 'Login', component: LoginComponent},
{path: '/', name: 'Index', component: IndexComponent},
{path: '/aaa', name: 'Aaaa', component: IndexComponent},
{path: '/bifrost', name: 'WorkboardComponent', component: WorkboardComponent},
{path: '/hostedit', name: 'HostEdit', component: HostEditComponent},
// {path: '/kkk', name: 'Kkk', component: KkkComponent},
// {path: '/kkk', name: 'Kkk', component: KkkComponent},
])
export class AppComponent {
DataStore = DataStore;
// constructor(
// private _appService:AppService,
// private _logger:Logger) {
//
// }
}
bootstrap(AppComponent, [
HTTP_PROVIDERS,
Logger,
AppService
]);
/**
* Created by liuzheng on 7/12/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
var SearchBar = (function () {
function SearchBar(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this._logger.log('LeftbarComponent.ts:SearchBar');
}
SearchBar.prototype.ngOnChanges = function (changes) {
this.q = changes.input.currentValue;
};
SearchBar.prototype.modelChange = function ($event) {
this._appService.Search(this.q);
};
__decorate([
core_1.Input(),
__metadata('design:type', Object)
], SearchBar.prototype, "input", void 0);
SearchBar = __decorate([
core_1.Component({
selector: 'search-bar',
template: "<input class=\"left-search\" placeholder=\" Search ...\" maxlength=\"2048\" name=\"q\" autocomplete=\"off\" title=\"Search\"\n type=\"text\" tabindex=\"1\" spellcheck=\"false\" autofocus [(ngModel)]=\"q\" (keyup.enter)=\"search()\"\n (ngModelChange)=\"modelChange($event)\">"
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], SearchBar);
return SearchBar;
}());
var LeftbarComponent = (function () {
function LeftbarComponent(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this.DataStore = service_1.DataStore;
this._logger.log('LeftbarComponent.ts:LeftbarComponent');
this._logger.debug("check DataStroe.leftbar", service_1.DataStore.leftbar);
}
LeftbarComponent.prototype.ngOnInit = function () {
this._logger.log('LeftbarComponent.ts:LeftbarComponent,ngOnInit');
};
LeftbarComponent.prototype.ngAfterViewInit = function () {
this._logger.log('LeftbarComponent.ts:LeftbarComponent,ngAfterViewInit');
jQuery("#left-bar").fancytree({
extensions: ["glyph"],
glyph: {
map: {
checkbox: "fa fa-square-o",
checkboxSelected: "fa fa-check-square-o",
checkboxUnknown: "fa fa-square",
dragHelper: "fa fa-arrow-right",
dropMarker: "fa fa-long-arrow-right",
error: "fa fa-warning",
expanderClosed: "fa fa-caret-right",
expanderLazy: "fa fa-angle-right",
expanderOpen: "fa fa-caret-down",
nodata: "fa fa-meh-o",
loading: "fa fa-spinner fa-pulse",
// Default node icons.
// (Use tree.options.icon callback to define custom icons based on node data)
doc: "fa fa-cube",
docOpen: "fa fa-cube",
folder: "fa fa-cubes",
folderOpen: "fa fa-cubes"
}
},
source: { url: service_1.DataStore.leftbar },
activeVisible: true,
aria: true,
autoActivate: true,
autoCollapse: true,
autoScroll: true,
clickFolderMode: 3,
checkbox: true,
debugLevel: 0,
disabled: false,
focusOnSelect: true,
escapeTitles: false,
generateIds: true,
idPrefix: "ft_",
icon: true,
// icon: function (event, data) {
// if (data.node.isFolder()) {
// return "glyphicon glyphicon-book";
// }
// },
keyboard: false,
keyPathSeparator: "/",
minExpandLevel: 1,
quicksearch: true,
selectMode: 3,
tabindex: "0",
titlesTabbable: false,
dblclick: function (event, data) {
console.log('leftbar dbclick', event, data);
if (!data.node.folder) {
var param = {
'assetId': data.node.data.id,
'sysUserId': data.node.data.system_users[0].id,
};
service_1.DataStore.termlist.push(param);
}
},
});
jQuery("#left-bar").contextmenu({
delegate: "span.fancytree-title",
hide: { effect: "explode", duration: "slow" },
menu: [
{
"title": "Cut",
"cmd": "cut",
"uiIcon": "fa fa-cut fa-size-1p3em"
},
{
"title": "Copy",
"cmd": "copy",
"uiIcon": "fa fa-copy fa-size-1p3em"
},
{
"title": "Paste",
"cmd": "paste",
"uiIcon": "fa fa-paste fa-size-1p3em",
"disabled": false
},
{
"title": "----"
},
{
"title": "Edit",
"cmd": "edit",
"uiIcon": "fa fa-edit fa-size-1p3em",
"disabled": true
},
{
"title": "Delete",
"cmd": "delete",
"uiIcon": "fa fa-trash fa-size-1p3em",
"disabled": true
},
{
"title": "More",
"uiIcon": "fa fa-caret-right fa-size-1p3em",
"children": [
{
"title": "Sub 1",
"cmd": "sub1"
},
{
"title": "Sub 2",
"cmd": "sub1"
}
]
}
],
beforeOpen: function (event, ui) {
var node = jQuery.ui.fancytree.getNode(ui.target[0]);
// Modify menu entries depending on node status
jQuery("#left-bar").contextmenu("enableEntry", "paste", node.isFolder());
// Show/hide single entries
// Activate node on right-click
node.setActive();
},
select: function (event, ui) {
var node = jQuery.ui.fancytree.getNode(ui.target[0]);
alert("select " + ui.cmd + " on " + node);
}
});
};
LeftbarComponent.prototype.getSelect = function () {
jQuery('#left-bar').fancytree('getTree').getSelectedNodes();
};
LeftbarComponent.prototype.Hide = function () {
this._appService.HideLeft();
};
LeftbarComponent = __decorate([
core_1.Component({
selector: 'div',
template: "<div style=\"height:30px;width:100%;background-color: #00b3ee\">\n <search-bar></search-bar></div>",
directives: [SearchBar],
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], LeftbarComponent);
return LeftbarComponent;
}());
exports.LeftbarComponent = LeftbarComponent;
//# sourceMappingURL=leftbar.js.map
\ No newline at end of file
{"version":3,"file":"leftbar.js","sourceRoot":"","sources":["leftbar.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
/**
* Created by liuzheng on 7/12/16.
*/
import {Component, OnChanges, Input} 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;
import {AppService, DataStore} from './service'
@Component({
selector: 'search-bar',
template: `<input class="left-search" placeholder=" Search ..." maxlength="2048" name="q" autocomplete="off" title="Search"
type="text" tabindex="1" spellcheck="false" autofocus [(ngModel)]="q" (keyup.enter)="search()"
(ngModelChange)="modelChange($event)">`
})
class SearchBar implements OnChanges {
@Input() input;
q:string;
constructor(private _appService:AppService,
private _logger:Logger) {
this._logger.log('LeftbarComponent.ts:SearchBar');
}
ngOnChanges(changes) {
this.q = changes.input.currentValue;
}
modelChange($event) {
this._appService.Search(this.q)
}
}
@Component({
selector: 'div',
template: `<div style="height:30px;width:100%;background-color: #00b3ee">
<search-bar></search-bar></div>`,
directives: [SearchBar],
})
export class LeftbarComponent {
DataStore = DataStore;
constructor(private _appService:AppService,
private _logger:Logger) {
this._logger.log('LeftbarComponent.ts:LeftbarComponent');
this._logger.debug("check DataStroe.leftbar", DataStore.leftbar);
}
ngOnInit() {
this._logger.log('LeftbarComponent.ts:LeftbarComponent,ngOnInit');
}
ngAfterViewInit() {
this._logger.log('LeftbarComponent.ts:LeftbarComponent,ngAfterViewInit');
jQuery("#left-bar").fancytree({
extensions: ["glyph"],
glyph: {
map: {
checkbox: "fa fa-square-o",
checkboxSelected: "fa fa-check-square-o",
checkboxUnknown: "fa fa-square",
dragHelper: "fa fa-arrow-right",
dropMarker: "fa fa-long-arrow-right",
error: "fa fa-warning",
expanderClosed: "fa fa-caret-right",
expanderLazy: "fa fa-angle-right",
expanderOpen: "fa fa-caret-down",
nodata: "fa fa-meh-o",
loading: "fa fa-spinner fa-pulse",
// Default node icons.
// (Use tree.options.icon callback to define custom icons based on node data)
doc: "fa fa-cube",
docOpen: "fa fa-cube",
folder: "fa fa-cubes",
folderOpen: "fa fa-cubes"
}
},
source: {url: DataStore.leftbar},
activeVisible: true, // Make sure, active nodes are visible (expanded).
aria: true, // Enable WAI-ARIA support.
autoActivate: true, // Automatically activate a node when it is focused (using keys).
autoCollapse: true, // Automatically collapse all siblings, when a node is expanded.
autoScroll: true, // Automatically scroll nodes into visible area.
clickFolderMode: 3, // 1:activate, 2:expand, 3:activate and expand, 4:activate (dblclick expands)
checkbox: true, // Show checkboxes.
debugLevel: 0, // 0:quiet, 1:normal, 2:debug
disabled: false, // Disable control
focusOnSelect: true, // Set focus when node is checked by a mouse click
escapeTitles: false, // Escape `node.title` content for display
generateIds: true, // Generate id attributes like <span id='fancytree-id-KEY'>
idPrefix: "ft_", // Used to generate node id´s like <span id='fancytree-id-<key>'>.
icon: true, // Display node icons.
// icon: function (event, data) {
// if (data.node.isFolder()) {
// return "glyphicon glyphicon-book";
// }
// },
keyboard: false, // Support keyboard navigation.
keyPathSeparator: "/", // Used by node.getKeyPath() and tree.loadKeyPath().
minExpandLevel: 1, // 1: root node is not collapsible
quicksearch: true, // Navigate to next node by typing the first letters.
selectMode: 3, // 1:single, 2:multi, 3:multi-hier
tabindex: "0", // Whole tree behaves as one single control
titlesTabbable: false, // Node titles can receive keyboard focus
dblclick: function (event, data) {
console.log('leftbar dbclick', event, data);
if (!data.node.folder) {
let param = {
'assetId': data.node.data.id,
'sysUserId': data.node.data.system_users[0].id,
};
DataStore.termlist.push(param);
// DataStore.termActive = DataStore.term.push({
// "machine": data.node.data.machine,
// "nick": data.node.title
// }) - 1;
}
},
});
jQuery("#left-bar").contextmenu({
delegate: "span.fancytree-title",
hide: {effect: "explode", duration: "slow"},
menu: [
{
"title": "Cut",
"cmd": "cut",
"uiIcon": "fa fa-cut fa-size-1p3em"
},
{
"title": "Copy",
"cmd": "copy",
"uiIcon": "fa fa-copy fa-size-1p3em"
},
{
"title": "Paste",
"cmd": "paste",
"uiIcon": "fa fa-paste fa-size-1p3em",
"disabled": false
},
{
"title": "----"
},
{
"title": "Edit",
"cmd": "edit",
"uiIcon": "fa fa-edit fa-size-1p3em",
"disabled": true
},
{
"title": "Delete",
"cmd": "delete",
"uiIcon": "fa fa-trash fa-size-1p3em",
"disabled": true
},
{
"title": "More",
"uiIcon": "fa fa-caret-right fa-size-1p3em",
"children": [
{
"title": "Sub 1",
"cmd": "sub1"
},
{
"title": "Sub 2",
"cmd": "sub1"
}
]
}
],
beforeOpen: function (event, ui) {
var node = jQuery.ui.fancytree.getNode(ui.target[0]);
// Modify menu entries depending on node status
jQuery("#left-bar").contextmenu("enableEntry", "paste", node.isFolder());
// Show/hide single entries
// Activate node on right-click
node.setActive();
},
select: function (event, ui) {
var node = jQuery.ui.fancytree.getNode(ui.target[0]);
alert("select " + ui.cmd + " on " + node);
}
});
}
getSelect() {
jQuery('#left-bar').fancytree('getTree').getSelectedNodes();
}
Hide() {
this._appService.HideLeft()
}
}
/**
* Created by liuzheng on 7/12/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
var LoginComponent = (function () {
function LoginComponent(_appService, _logger, user) {
this._appService = _appService;
this._logger = _logger;
this.user = user;
this.DataStore = service_1.DataStore;
this._logger.log('login.ts:LoginComponent');
}
LoginComponent.prototype.onSubmit = function () {
this._logger.log(service_1.DataStore);
this._appService.login(this.user);
};
LoginComponent.prototype.ngOnInit = function () {
jQuery("#form").fadeIn("slow");
if (window.location.pathname != "/login") {
window.location.href = "/login";
}
// jQuery('nav').hide();
var vm = this;
window.onresize = function () {
if (!service_1.DataStore.logined) {
vm.background();
}
};
this.timer();
};
LoginComponent.prototype.timer = function () {
var _this = this;
if (service_1.DataStore.windowsize[0] != document.documentElement.clientWidth || service_1.DataStore.windowsize[1] != document.documentElement.clientHeight && !service_1.DataStore.logined) {
jQuery(window).trigger('resize');
service_1.DataStore.windowsize = [document.documentElement.clientWidth, document.documentElement.clientHeight];
}
setTimeout(function () {
_this.timer();
}, 33);
};
LoginComponent.prototype.background = function () {
var q = jQuery('#q')[0];
var width = q.width = document.documentElement.clientWidth;
var height = q.height = document.documentElement.clientHeight;
var letters = [];
for (var i = 0; i < 256; i++) {
letters.push(Math.round(Math.random() * i * 33));
}
var draw = function () {
q.getContext('2d').fillStyle = 'rgba(0,0,0,.05)';
q.getContext('2d').fillRect(0, 0, width, height);
q.getContext('2d').fillStyle = '#0F0';
letters.map(function (y_pos, index) {
var text = String.fromCharCode(65 + Math.random() * 26);
var x_pos = index * 10;
q.getContext('2d').fillText(text, x_pos, y_pos);
letters[index] = (y_pos > 758 + Math.random() * 1e4) ? 0 : y_pos + 10;
});
};
setInterval(draw, 33);
};
LoginComponent = __decorate([
core_1.Component({
selector: 'div',
template: "<div style=\"position: fixed;top: 0;left:0;width:100%;height:100%;z-index: 5;background-color: #000000;\"></div>\n<canvas id=\"q\" style=\"position:fixed;top: 0;z-index: 5;\"></canvas>\n<div id=\"form\" style=\"z-index: 9;display: none;\">\n<form (ngSubmit)=\"onSubmit()\"style=\"z-index:9;\" >\n <div class=\"from-group\">\n <input type=\"text\" name=\"username\" id=\"username\" placeholder=\"Username\" [(ngModel)]=\"user.username\" required>\n <span class=\"fa fa-user-secret form-control-feedback\"></span>\n </div>\n <div class=\"from-group\">\n <input type=\"password\" name=\"password\" id=\"password\" placeholder=\"password\" [(ngModel)]=\"user.password\" required (ngEnter)=\"onSubmit()\">\n <span class=\"fa fa-key form-control-feedback\"></span>\n </div>\n <button type=\"submit\">login to your account</button>\n</form>\n</div>",
providers: [service_1.AppService, service_1.User]
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger, service_1.User])
], LoginComponent);
return LoginComponent;
}());
exports.LoginComponent = LoginComponent;
//# sourceMappingURL=login.js.map
\ No newline at end of file
{"version":3,"file":"login.js","sourceRoot":"","sources":["login.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
/**
* Created by liuzheng on 7/12/16.
*/
import {Component} from '@angular/core';
import {NgClass} from '@angular/common';
import {ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from '@angular/router-deprecated';
import {Logger} from "angular2-logger/core";
import 'rxjs/Rx';
declare var jQuery:any;
import {AppService, DataStore, User} from './service'
@Component({
selector: 'div',
template: `<div style="position: fixed;top: 0;left:0;width:100%;height:100%;z-index: 5;background-color: #000000;"></div>
<canvas id="q" style="position:fixed;top: 0;z-index: 5;"></canvas>
<div id="form" style="z-index: 9;display: none;">
<form (ngSubmit)="onSubmit()"style="z-index:9;" >
<div class="from-group">
<input type="text" name="username" id="username" placeholder="Username" [(ngModel)]="user.username" required>
<span class="fa fa-user-secret form-control-feedback"></span>
</div>
<div class="from-group">
<input type="password" name="password" id="password" placeholder="password" [(ngModel)]="user.password" required (ngEnter)="onSubmit()">
<span class="fa fa-key form-control-feedback"></span>
</div>
<button type="submit">login to your account</button>
</form>
</div>`,
providers: [AppService, User]
})
// ToDo: ngEnter and redirect to default page
export class LoginComponent {
DataStore = DataStore;
constructor(private _appService:AppService,
private _logger:Logger,
private user:User) {
this._logger.log('login.ts:LoginComponent');
}
onSubmit() {
this._logger.log(DataStore);
this._appService.login(this.user)
}
ngOnInit() {
jQuery("#form").fadeIn("slow");
if (window.location.pathname != "/login") {
window.location.href = "/login"
}
// jQuery('nav').hide();
var vm = this;
window.onresize = function () {
if (!DataStore.logined) {
vm.background();
}
};
this.timer();
}
timer() {
if (DataStore.windowsize[0] != document.documentElement.clientWidth || DataStore.windowsize[1] != document.documentElement.clientHeight && !DataStore.logined) {
jQuery(window).trigger('resize');
DataStore.windowsize = [document.documentElement.clientWidth, document.documentElement.clientHeight]
}
setTimeout(()=> {
this.timer()
}, 33)
}
background() {
var q = jQuery('#q')[0];
var width = q.width = document.documentElement.clientWidth;
var height = q.height = document.documentElement.clientHeight;
var letters = [];
for (var i = 0; i < 256; i++) {
letters.push(Math.round(Math.random() * i * 33))
}
var draw = function () {
q.getContext('2d').fillStyle = 'rgba(0,0,0,.05)';
q.getContext('2d').fillRect(0, 0, width, height);
q.getContext('2d').fillStyle = '#0F0';
letters.map(function (y_pos, index) {
var text = String.fromCharCode(65 + Math.random() * 26);
var x_pos = index * 10;
q.getContext('2d').fillText(text, x_pos, y_pos);
letters[index] = (y_pos > 758 + Math.random() * 1e4) ? 0 : y_pos + 10;
});
};
setInterval(draw, 33);
}
}
\ No newline at end of file
/**
* Created by liuzheng on 4/7/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var common_1 = require('@angular/common');
var router_deprecated_1 = require('@angular/router-deprecated');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
//noinspection TypeScriptValidateTypes
var NavComponent = (function () {
function NavComponent(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this.DataStore = service_1.DataStore;
this._logger.log('nav.ts:NavComponent');
this._appService.getnav();
}
NavComponent.prototype.ngOnInit = function () {
};
NavComponent.prototype.click = function (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(service_1.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();
}
};
NavComponent.prototype.EnterLicense = function () {
layer.prompt({
formType: 2,
maxlength: 500,
title: 'Please Input Code',
scrollbar: false,
area: ['400px', '300px'],
moveOut: true,
moveType: 1
}, function (value, index) {
service_1.DataStore.socket.emit('key', value);
// layer.msg(value); //得到value
layer.close(index);
});
};
NavComponent = __decorate([
core_1.Component({
selector: 'nav',
template: "<div class=\"nav\" *ngIf=\"DataStore.logined\">\n <ul>\n <li><a [routerLink]=\"['Index']\"><img src=\"./imgs/logo.png\" height=\"26px\"/></a>\n </li>\n <li *ngFor=\"let v of DataStore.Nav; let k = index \" [ngClass]=\"{'dropdown': v.children}\">\n <a>{{v.name}}</a>\n <ul [ngClass]=\"{'dropdown-content': v.children}\">\n <li *ngFor=\"let vv of v.children; let kk = index\" [ngClass]=\"{'disabled': vv.disable}\">\n <a *ngIf=\"vv.href\" [routerLink]=\"[vv.href]\">{{vv.name}}</a>\n <a id=\"{{vv.id}}\" *ngIf=\"vv.click\" (click)=\"click(vv.click)\">{{vv.name}}</a>\n </li>\n </ul>\n </li>\n </ul>\n</div>",
directives: [router_deprecated_1.ROUTER_DIRECTIVES, common_1.NgClass]
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], NavComponent);
return NavComponent;
}());
exports.NavComponent = NavComponent;
//# sourceMappingURL=nav.js.map
\ No newline at end of file
{"version":3,"file":"nav.js","sourceRoot":"","sources":["nav.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
/**
* Created by liuzheng on 4/7/16.
*/
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 './service'
//noinspection TypeScriptValidateTypes
@Component({
selector: 'nav',
template: `<div class="nav" *ngIf="DataStore.logined">
<ul>
<li><a [routerLink]="['Index']"><img src="./imgs/logo.png" height="26px"/></a>
</li>
<li *ngFor="let v of DataStore.Nav; let k = index " [ngClass]="{'dropdown': v.children}">
<a>{{v.name}}</a>
<ul [ngClass]="{'dropdown-content': v.children}">
<li *ngFor="let vv of v.children; let kk = index" [ngClass]="{'disabled': vv.disable}">
<a *ngIf="vv.href" [routerLink]="[vv.href]">{{vv.name}}</a>
<a id="{{vv.id}}" *ngIf="vv.click" (click)="click(vv.click)">{{vv.name}}</a>
</li>
</ul>
</li>
</ul>
</div>`,
directives: [ROUTER_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);
});
}
}
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/**
* Created by liuzheng on 4/24/16.
*/
var core_1 = require('@angular/core');
var http_1 = require('@angular/http');
var router_deprecated_1 = require('@angular/router-deprecated');
// import {Observable} from 'rxjs/Observable';
// import {Observer} from 'rxjs/Observer';
var ng2_cookies_1 = require('ng2-cookies/ng2-cookies');
// import {CookieService} from 'angular2-cookie/core'
var core_2 = require("angular2-logger/core");
// import {DynamicRouteConfigurator} from './dynamicRouteConfigurator'
require('rxjs/add/operator/share');
require('rxjs/Rx');
// @Injectable()
// export class Logger {
// logs: string[] = []; // capture logs for testing
// log(message: string) {
// this.logs.push(message);
// console.log(message);
// }
// }
var User = (function () {
function User() {
this.id = 0;
this.name = '';
this.username = '';
this.password = '';
this.phone = '';
this.avatar = 'root.png';
this.role = '';
this.email = '';
this.is_active = false;
this.date_joined = '';
this.last_login = '';
this.groups = [''];
}
return User;
}());
exports.User = User;
var Group = (function () {
function Group() {
}
return Group;
}());
exports.Group = Group;
exports.DataStore = {
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: [],
};
var AppService = (function () {
function AppService(http, _router, _logger) {
this.http = http;
this._router = _router;
this._logger = _logger;
if (ng2_cookies_1.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(ng2_cookies_1.Cookie.get('loglevel'));
}
else {
ng2_cookies_1.Cookie.set('loglevel', '0', 99, '/', document.domain);
// this._logger.level = parseInt(Cookie.getCookie('loglevel'));
this._logger.level = 0;
}
var vm = this;
exports.DataStore.socket.on('connect', function () {
console.log("DatsStore socket connected");
exports.DataStore.socket.on('nav', function (data) {
exports.DataStore.Nav = JSON.parse(data);
});
exports.DataStore.socket.on('leftbar', function (data) {
if (data == 'changed')
vm.ReloadLeftbar();
});
exports.DataStore.socket.on('popup', function (data) {
layer.msg(data);
});
exports.DataStore.socket.emit('api', 'all');
});
this.checklogin();
}
AppService.prototype.checklogin = function () {
var _this = this;
var that = this;
this._logger.log('service.ts:AppService,checklogin');
if (exports.DataStore.Path)
if (exports.DataStore.Path['name'] == 'FOF' || exports.DataStore.Path['name'] == 'Forgot') {
}
else {
if (exports.DataStore.logined) {
this._router.navigate([exports.DataStore.Path['name']]);
}
else {
this.http.get('/api/checklogin')
.map(function (res) { return res.json(); })
.subscribe(function (data) {
exports.DataStore.logined = data.logined;
exports.DataStore.user = data.user;
}, function (err) {
_this._logger.error(err);
exports.DataStore.logined = false;
_this._router.navigate(['Login']);
}, function () {
if (exports.DataStore.logined) {
if (jQuery.isEmptyObject(exports.DataStore.Path))
_this._router.navigate(["Index", "/"]);
else
_this._router.navigate([exports.DataStore.Path['name'], exports.DataStore.Path['res']]);
}
else
_this._router.navigate(['Login']);
// jQuery('angular2').show();
});
}
}
else {
this._router.navigate(['FOF']);
}
};
AppService.prototype.login = function (user) {
var _this = this;
this._logger.log('service.ts:AppService,login');
exports.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(function (res) { return res.json(); })
.subscribe(function (data) {
exports.DataStore.logined = data.logined;
exports.DataStore.user = data.user;
}, function (err) {
_this._logger.error(err);
exports.DataStore.logined = false;
_this._router.navigate(['Login']);
exports.DataStore.error['login'] = '后端错误,请重试';
}, function () {
if (exports.DataStore.logined) {
if (jQuery.isEmptyObject(exports.DataStore.Path))
_this._router.navigate(["Index", "/"]);
else
_this._router.navigate([exports.DataStore.Path['name'], exports.DataStore.Path['res']]);
}
else {
exports.DataStore.error['login'] = '请检查用户名和密码';
_this._router.navigate(['Login']);
}
// jQuery('angular2').show();
});
else
exports.DataStore.error['login'] = '请检查用户名和密码';
};
AppService.prototype.HideLeft = function () {
exports.DataStore.leftbarhide = true;
exports.DataStore.Nav.map(function (value, i) {
for (var ii in value["children"]) {
if (exports.DataStore.Nav[i]["children"][ii]["id"] === "HindLeftManager") {
exports.DataStore.Nav[i]["children"][ii] = {
"id": "ShowLeftManager",
"click": "ShowLeft",
"name": "Show left manager"
};
}
}
});
};
AppService.prototype.ShowLeft = function () {
exports.DataStore.leftbarhide = false;
exports.DataStore.Nav.map(function (value, i) {
for (var ii in value["children"]) {
if (exports.DataStore.Nav[i]["children"][ii]["id"] === "ShowLeftManager") {
exports.DataStore.Nav[i]["children"][ii] = {
"id": "HindLeftManager",
"click": "HideLeft",
"name": "Hind left manager"
};
}
}
});
};
AppService.prototype.ReloadLeftbar = function () {
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()
// }
AppService.prototype.getnav = function () {
this._logger.log('service.ts:AppService,getnav');
return this.http.get('/api/nav')
.map(function (res) { return res.json(); })
.subscribe(function (response) {
exports.DataStore.Nav = response;
// this._logger.warn(this._dataStore.user);
// this._logger.warn(DataStore.user)
});
};
AppService.prototype.getMyinfo = function () {
this._logger.log('service.ts:AppService,getMyinfo');
return this.http.get('/api/userprofile')
.map(function (res) { return res.json(); })
.subscribe(function (response) {
exports.DataStore.user = response;
// this._logger.warn(this._dataStore.user);
// this._logger.warn(DataStore.user)
});
};
AppService.prototype.getUser = function (id) {
this._logger.log('service.ts:AppService,getUser');
return this.http.get('/api/userprofile')
.map(function (res) { return res.json(); });
};
AppService.prototype.gettest = function () {
this._logger.log('service.ts:AppService,gettest');
this.http.get('/api/userprofile')
.map(function (res) { return res.json(); })
.subscribe(function (res) {
return res;
});
};
AppService.prototype.getGrouplist = function () {
this._logger.log('service.ts:AppService,getGrouplist');
return this.http.get('/api/grouplist')
.map(function (res) { return res.json(); });
};
AppService.prototype.getUserlist = function (id) {
this._logger.log('service.ts:AppService,getUserlist');
if (id)
return this.http.get('/api/userlist/' + id)
.map(function (res) { return res.json(); });
else
return this.http.get('/api/userlist')
.map(function (res) { return res.json(); });
};
AppService.prototype.delGroup = function (id) {
};
AppService.prototype.copy = function () {
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)
// });
//
// }
AppService.prototype.TerminalConnect = function (assetData) {
var socket = io.connect();
var vm = this;
if (ng2_cookies_1.Cookie.get("cols")) {
var cols = ng2_cookies_1.Cookie.get("cols");
}
else {
var cols = "80";
ng2_cookies_1.Cookie.set('cols', cols, 99, '/', document.domain);
}
if (ng2_cookies_1.Cookie.get("rows")) {
var rows = ng2_cookies_1.Cookie.get("rows");
}
else {
var rows = "24";
ng2_cookies_1.Cookie.set('rows', rows, 99, '/', document.domain);
}
var id = exports.DataStore.term.push({
"machine": "localhost",
"nick": "localhost",
"connected": true,
"socket": socket
}) - 1;
exports.DataStore.termActive = id;
exports.DataStore.term[id]["term"] = new Terminal({
cols: cols,
rows: rows,
useStyle: true,
screenKeys: true
});
exports.DataStore.term[id]["term"].on('title', function (title) {
document.title = title;
});
exports.DataStore.term[id]["term"].open(document.getElementById('term-' + id));
exports.DataStore.term[id]["term"].write('\x1b[31mWelcome to Jumpserver!\x1b[m\r\n');
socket.on('connect', function () {
socket.emit('machine', assetData);
exports.DataStore.term[id]["term"].on('data', function (data) {
socket.emit('data', data);
});
socket.on('data', function (data) {
exports.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 (ng2_cookies_1.Cookie.get("rows")) {
var rows = parseInt(ng2_cookies_1.Cookie.get("rows"));
}
else {
var rows = 24;
}
if (ng2_cookies_1.Cookie.get("cols")) {
var cols = parseInt(ng2_cookies_1.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 exports.DataStore.term) {
exports.DataStore.term[termid]["socket"].emit('resize', [col, row]);
exports.DataStore.term[termid]["term"].resize(col, row);
}
ng2_cookies_1.Cookie.set('cols', String(col), 99, '/', document.domain);
ng2_cookies_1.Cookie.set('rows', String(row), 99, '/', document.domain);
}
};
});
};
AppService.prototype.TerminalDisconnect = function (i) {
exports.DataStore.term[i]["connected"] = false;
exports.DataStore.term[i]["socket"].destroy();
exports.DataStore.term[i]["term"].write('\r\n\x1b[31mBye Bye!\x1b[m\r\n');
};
AppService.prototype.TerminalDisconnectAll = function () {
for (var i in exports.DataStore.term) {
this.TerminalDisconnect(i);
}
};
AppService.prototype.Search = function (q) {
var _this = this;
if (this.searchrequest) {
this.searchrequest.unsubscribe();
}
this.searchrequest = this.http.get('/api/search?q=' + q)
.map(function (res) { return res.json(); })
.subscribe(function (data) {
_this._logger.log(data);
}, function (err) {
_this._logger.error(err);
}, function () {
});
this._logger.log(q);
};
AppService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [http_1.Http, router_deprecated_1.Router, core_2.Logger])
], AppService);
return AppService;
}());
exports.AppService = AppService;
//
// @Pipe({
// name: 'join'
// })
//
// export class Join {
// transform(value, args?) {
// if (typeof value === 'undefined')
// return 'undefined';
// return value.join(args)
// }
// }
//# sourceMappingURL=service.js.map
\ No newline at end of file
{"version":3,"file":"service.js","sourceRoot":"","sources":["service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
/**
* Created by liuzheng on 4/24/16.
*/
import {Injectable, Pipe} from '@angular/core';
import {Http, HTTP_PROVIDERS} from '@angular/http';
import {RouteConfig, ROUTER_DIRECTIVES, Router, ROUTER_PROVIDERS} from '@angular/router-deprecated';
// import {Observable} from 'rxjs/Observable';
// import {Observer} from 'rxjs/Observer';
import {Cookie} from 'ng2-cookies/ng2-cookies';
// import {CookieService} from 'angular2-cookie/core'
import {Logger} from "angular2-logger/core";
// 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 class User {
id:number = 0;
name:string = '';
username:string = '';
password:string = '';
phone:string = '';
avatar:string = 'root.png';
role:string = '';
email:string = '';
is_active:boolean = false;
date_joined:string = '';
last_login:string = '';
groups:Array<string> = [''];
}
export class Group {
id:number;
name:string;
membercount:number;
comment:string
}
export var 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<{}>,
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 _router:Router,
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
}
var 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() {
let that = this;
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()
// }
getnav() {
this._logger.log('service.ts:AppService,getnav');
return this.http.get('/api/nav')
.map(res => res.json())
.subscribe(response => {
DataStore.Nav = response;
// this._logger.warn(this._dataStore.user);
// this._logger.warn(DataStore.user)
});
}
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(assetData) {
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', assetData);
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 7/16/16.
*/
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = require('@angular/core');
var common_1 = require('@angular/common');
var core_2 = require("angular2-logger/core");
require('rxjs/Rx');
var service_1 = require('./service');
var TermComponent = (function () {
function TermComponent(_appService, _logger) {
this._appService = _appService;
this._logger = _logger;
this.DataStore = service_1.DataStore;
this._logger.log('TermComponent.ts:TermComponent');
}
TermComponent.prototype.ngOnInit = function () {
//DataStore.term[0]["term"].open(document.getElementById("term-0"))
this.timer();
};
TermComponent.prototype.ngAfterViewInit = function () {
this._appService.TerminalConnect({});
//this._logger.debug("term width ", jQuery("#term").width());
//this._logger.debug("term height", jQuery("#term").height());
};
TermComponent.prototype.timer = function () {
var _this = this;
if (service_1.DataStore.termlist.length > 0) {
for (var i in service_1.DataStore.termlist)
this._appService.TerminalConnect(service_1.DataStore.termlist[i]);
service_1.DataStore.termlist = [];
}
jQuery(window).trigger('resize');
setTimeout(function () {
_this.timer();
}, 0);
};
TermComponent.prototype.close = function (i) {
this._logger.debug(i);
this._appService.TerminalDisconnect(i);
service_1.DataStore.term[i]["term"].destroy();
// delete DataStore.term.splice(i, 1)
};
TermComponent.prototype.dblclick = function () {
console.log(service_1.DataStore.term);
};
TermComponent = __decorate([
core_1.Component({
selector: 'term',
template: "<div id=\"tabs\" style=\"height: 30px;width: 100%\">\n <ul>\n <li *ngFor=\"let m of DataStore.term;let i = index\"\n [ngClass]=\"{'active':i==DataStore.termActive,'disconnected':!m.connected}\"\n id=\"termnav-{{i}}\">\n <span *ngIf=\"!m.$edit\" (click)=\"DataStore.termActive=i\" (dblclick)=\"m.$edit=true;DataStore.termActive=i\">{{m.nick}}</span>\n <input *ngIf=\"m.$edit\" [(ngModel)]=\"m.nick\" autofocus (blur)=\"m.$edit=false\" (keyup.enter)=\"m.$edit=false\"/>\n <a class=\"close\" (click)=\"close(i)\" onclick=\"this.parentElement.style.display='none';\">x</a></li>\n </ul>\n</div>\n<div id=\"term\" style=\"width: 100%;height: 100%;\">\n <div id=\"term-0\" [ngClass]=\"{'hidden':DataStore.termActive!=0}\"></div>\n <div *ngFor=\"let m of DataStore.term; let i = index\" [ngClass]=\"{'hidden':i+1!=DataStore.termActive}\"\n id=\"term-{{i+1}}\"></div>\n</div>",
directives: [common_1.NgClass, common_1.FORM_DIRECTIVES]
}),
__metadata('design:paramtypes', [service_1.AppService, core_2.Logger])
], TermComponent);
return TermComponent;
}());
exports.TermComponent = TermComponent;
//# sourceMappingURL=terminal.js.map
\ No newline at end of file
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["terminal.ts"],"names":[],"mappings":"AAAA;;GAEG;;;;;;;;;;;AAEH,qBAAwB,eAAe,CAAC,CAAA;AACxC,uBAA0C,iBAAiB,CAAC,CAAA;AAE5D,qBAAqB,sBAAsB,CAAC,CAAA;AAI5C,QAAQ,SAAS,CAAC,CAAA;AAGlB,wBAAoC,WAGpC,CAAC,CAH8C;AAwB/C;IAKI,uBAAoB,WAAsB,EACtB,OAAc;QADd,gBAAW,GAAX,WAAW,CAAW;QACtB,YAAO,GAAP,OAAO,CAAO;QALlC,cAAS,GAAG,mBAAS,CAAC;QAMlB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACvD,CAAC;IAED,gCAAQ,GAAR;QACI,mEAAmE;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,uCAAe,GAAf;QACI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACrC,6DAA6D;QAC7D,8DAA8D;IAClE,CAAC;IAED,6BAAK,GAAL;QAAA,iBAUC;QATG,EAAE,CAAC,CAAC,mBAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,mBAAS,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,mBAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QAC3B,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,UAAU,CAAC;YACP,KAAI,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC,EAAE,CAAC,CAAC,CAAA;IACT,CAAC;IAED,6BAAK,GAAL,UAAM,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACvC,mBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAEpC,qCAAqC;IACzC,CAAC;IAED,gCAAQ,GAAR;QACI,OAAO,CAAC,GAAG,CAAC,mBAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAhEL;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,s7BAcP;YACH,UAAU,EAAE,CAAC,gBAAO,EAAE,wBAAe,CAAC;SACzC,CAAC;;qBAAA;IA+CF,oBAAC;AAAD,CAAC,AA5CD,IA4CC;AA5CY,qBAAa,gBA4CzB,CAAA"}
\ No newline at end of file
/**
* Created by liuzheng on 7/16/16.
*/
import {Component} from '@angular/core';
import {NgClass, FORM_DIRECTIVES} from '@angular/common';
import {ROUTER_DIRECTIVES} from '@angular/router-deprecated';
import {Logger} from "angular2-logger/core";
import {$WebSocket} from 'angular2-websocket/angular2-websocket';
import {Cookie} from 'ng2-cookies/ng2-cookies';
import 'rxjs/Rx';
declare var jQuery:any;
import {AppService, DataStore} from './service'
@Component({
selector: 'term',
template: `<div id="tabs" style="height: 30px;width: 100%">
<ul>
<li *ngFor="let m of DataStore.term;let i = index"
[ngClass]="{'active':i==DataStore.termActive,'disconnected':!m.connected}"
id="termnav-{{i}}">
<span *ngIf="!m.$edit" (click)="DataStore.termActive=i" (dblclick)="m.$edit=true;DataStore.termActive=i">{{m.nick}}</span>
<input *ngIf="m.$edit" [(ngModel)]="m.nick" autofocus (blur)="m.$edit=false" (keyup.enter)="m.$edit=false"/>
<a class="close" (click)="close(i)" onclick="this.parentElement.style.display='none';">x</a></li>
</ul>
</div>
<div id="term" style="width: 100%;height: 100%;">
<div id="term-0" [ngClass]="{'hidden':DataStore.termActive!=0}"></div>
<div *ngFor="let m of DataStore.term; let i = index" [ngClass]="{'hidden':i+1!=DataStore.termActive}"
id="term-{{i+1}}"></div>
</div>`,
directives: [NgClass, FORM_DIRECTIVES]
})
export class TermComponent {
DataStore = DataStore;
// portocol:string;
endpoint:string;
constructor(private _appService:AppService,
private _logger:Logger) {
this._logger.log('TermComponent.ts:TermComponent');
}
ngOnInit() {
//DataStore.term[0]["term"].open(document.getElementById("term-0"))
this.timer();
}
ngAfterViewInit() {
this._appService.TerminalConnect({});
//this._logger.debug("term width ", jQuery("#term").width());
//this._logger.debug("term height", jQuery("#term").height());
}
timer() {
if (DataStore.termlist.length > 0) {
for (var i in DataStore.termlist)
this._appService.TerminalConnect(DataStore.termlist[i]);
DataStore.termlist = []
}
jQuery(window).trigger('resize');
setTimeout(()=> {
this.timer()
}, 0)
}
close(i) {
this._logger.debug(i);
this._appService.TerminalDisconnect(i);
DataStore.term[i]["term"].destroy();
// delete DataStore.term.splice(i, 1)
}
dblclick() {
console.log(DataStore.term)
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,14 +2,14 @@
@font-face {
font-family: Roboto;
src: url('./fonts/roboto-light-webfont.ttf'), url('./fonts/roboto-light-webfont.eot');
src: url('fonts/roboto-light-webfont.ttf'), url('fonts/roboto-light-webfont.eot');
/* IE9+ */
font-weight: bold;
}
@font-face {
font-family: iosevka;
src: url('./fonts/iosevka-light.ttf');
src: url('fonts/iosevka-light.ttf');
font-weight: normal;
}
......
......@@ -35,4 +35,4 @@
* http://api.jqueryui.com/category/theming/
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/
*/.ui-widget{font-family:Arial,Helvetica,sans-serif}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;font-weight:700}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error a,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}nav,nav .nav .dropdown-content li a{font-family:Roboto,sans-serif;font-size:13px;font-weight:300}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(images/ui-icons_444444_256x240.png)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(images/ui-icons_555555_256x240.png)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_777620_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-button .ui-icon{background-image:url(images/ui-icons_777777_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}@font-face{font-family:Roboto;src:url(./fonts/roboto-light-webfont.ttf),url(./fonts/roboto-light-webfont.eot);font-weight:700}@font-face{font-family:iosevka;src:url(./fonts/iosevka-light.ttf);font-weight:400}a,abbr,acronym,address,applet,b,big,blockquote,body,caption,center,cite,code,dd,del,dfn,div,dl,dt,em,fieldset,font,form,h1,h2,h3,h4,h5,h6,html,i,iframe,img,ins,kbd,label,legend,li,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var{border:0;margin:0;padding:0;outline:0;vertical-align:top}body,html{width:100%;height:100%}body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#000}body>div{top:30px;bottom:0}nav{display:inline-block;top:0;left:0;height:30px;color:#323a4e;background-color:#463e3e;background-repeat:no-repeat;background-position:100% 50%;z-index:5;transition:background .2s ease-out}nav .nav{display:block;margin-top:2px;height:30px}.dropdown,nav .nav li{display:inline-block}nav .nav ul{line-height:24px}nav .nav a{color:#f0f0f1;text-decoration:none;padding:6px 15px}nav .nav a:hover{color:#fff;cursor:pointer}.dropdown{position:relative}.dropdown:hover{background-color:#2d2828}.dropdown-content{display:none;position:absolute;background-color:#000;color:#c6bcbc;padding:4px 0;z-index:999;float:none;list-style:none;line-height:normal;direction:ltr;width:auto;top:auto;left:0;margin-left:0;margin-top:0;min-width:150px}.dropdown:hover .dropdown-content{display:block}nav .nav .dropdown-content li{float:left;display:flex}nav .nav .dropdown-content li a{padding:6px 14px 6px 25px;white-space:nowrap;position:relative;text-decoration:none;min-width:150px;line-height:normal}nav .nav .dropdown-content li a span{float:right}.dropdown-content li:hover{background-color:#3a3333;color:#000}.dropdown-content li.disabled:hover{background-color:#000}.dropdown-content li.disabled a{color:#c5babc}.dropdown-content li.disabled a:hover{cursor:default;color:#c5babc}#liuzheng{font-family:Monaco,iosevka;font-size:11px}#editor{position:absolute;width:97%;height:90%}#editor>*{font:12px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace}#page-wrapper{min-height:0}#left-bar,#left-bar *{width:200px;position:absolute;bottom:0;top:0}#left-bar ul{height:100%}#left-bar.hideleftbar{left:-198px}#ngdiv.hideleftbar{left:2px!important}.hidden{display:none}.ui-menu{width:100px;z-index:3;font:12px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace!important}.ui-icon{width:16px;height:16px;text-indent:0!important;padding:0;display:block}.fa-size-1p3em{font-size:1.3em}.ui-state-active{border:none!important;background-color:#000!important}.fa.fa-caret-right.fa-size-1p3em{float:right!important;position:initial!important;background-color:inherit!important}.ui-menu.ui-widget.ui-widget-content{padding-right:0!important;color:#fff;background-color:#463e3e;border:none}.ui-menu-item:hover{background-color:#2d2828}.ui-state-disabled.ui-menu-item:hover{background-color:inherit}ul.fancytree-container{border:none!important;background:#2f2a2a;color:#d6cbcb}ul.fancytree-container span.fancytree-title{color:#d6cbcb}span.fancytree-active span,span.fancytree-selected span{color:#fff}span.fancytree-active span.fancytree-title,span.fancytree-selected span.fancytree-title{color:#fff;background:0 0}span.fancytree-expanded{color:#fff}span.fancytree-expanded span.fancytree-title{color:#fff;background:0 0}.fancytree-node span{vertical-align:middle}span.fancytree-icon{background-image:none!important}.ui-menu .ui-menu-item{position:relative;padding:3px 1em 3px .4em}.ui-menu-icons .ui-menu-item{padding-left:2em;padding-right:0}.ui-menu .ui-icon{position:absolute;padding:0;top:0;bottom:0;left:.2em;margin:auto 0}#ngdiv,.termChangBar{position:fixed;right:0}#ngdiv{left:200px;top:30px;bottom:0}.terminal{border:5px solid #000;font-family:Monaco,iosevka;font-size:11px;color:#f0f0f0;background:#000;box-shadow:rgba(0,0,0,.8) 2px 2px 20px;white-space:nowrap;display:inline-block}#term .terminal div span{min-width:12px}.reverse-video{color:#000;background:#f0f0f0}.termChangBar{line-height:1;margin:0 auto;border:1px solid #fff;color:#fff;background-color:#fff;top:0}#testBar{font-family:iosevka;height:200px;width:200px;top:450px;left:300px;background-color:#fff;position:absolute}#ngdiv ul{height:30px;background-color:#3a3333;overflow-y:hidden;overflow-x:auto;width:100%;display:inline-flex}#ngdiv ul li{display:inline-table;width:150px;height:30px;position:relative}#ngdiv ul li a.close,#ngdiv ul li span{position:absolute;color:gray;font-family:Roboto,sans-serif;font-size:13px}#ngdiv ul li span{text-overflow:ellipsis;white-space:nowrap;text-decoration:none;padding:6px 20px 6px 15px;cursor:default;width:115px;height:21px}#ngdiv ul li a.close{top:0;right:5px;cursor:pointer;line-height:26px;display:inline-block}.from-group,form{position:relative}#ngdiv ul li.active a{color:#fff}#ngdiv ul li.active span{padding:5px 20px 4px 15px;color:#fff;height:18px;border-bottom:3px solid #7f3f98!important}#ngdiv ul li input{font-family:Roboto,sans-serif;font-size:13px;width:115px;border:none;background-color:inherit;color:#fff;padding:5px 20px 4px 15px;height:18px;border-bottom:3px solid #7f3f98!important}#tabs ul li.disconnected{background-color:#a9a9a9}.layui-layer.layui-layer-dialog.layui-layer-prompt.layer-anim textarea{height:160px;width:300px;resize:none}.left-search{padding:0;width:100%;border:none;height:90%}form{width:250px;margin:0 auto;background:rgba(130,130,130,.3);padding:20px 22px;border:1px solid;border-top-color:rgba(255,255,255,.4);border-left-color:rgba(255,255,255,.4);border-bottom-color:rgba(60,60,60,.4);border-right-color:rgba(60,60,60,.4)}form button,form input{width:212px;border:1px solid;border-bottom-color:rgba(255,255,255,.5);border-right-color:rgba(60,60,60,.35);border-top-color:rgba(60,60,60,.35);border-left-color:rgba(80,80,80,.45);background-color:rgba(0,0,0,.2);background-repeat:no-repeat;padding:8px 24px 8px 10px;font:700 .875em/1.25em Monaco,Roboto,sans-serif;letter-spacing:.075em;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.1);margin-bottom:19px}form input:focus{background-color:rgba(0,0,0,.4)}.form-control-feedback{position:absolute;color:#fff;top:2px;right:2px;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none;font-weight:400;font-size:18px}::-webkit-input-placeholder{color:#ccc;text-transform:uppercase}::-moz-placeholder{color:#ccc;text-transform:uppercase}:-ms-input-placeholder{color:#ccc;text-transform:uppercase}form button[type=submit]{width:248px;margin-bottom:0;color:#adff2f;letter-spacing:.05em;text-shadow:0 1px 0 #133d3e;text-transform:uppercase;background:#225556;cursor:pointer;border-color:#9fb5b5 #1e4d4e #1b4849 #608586}
\ No newline at end of file
*/.ui-widget{font-family:Arial,Helvetica,sans-serif}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;font-weight:700}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error a,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}nav,nav .nav .dropdown-content li a{font-family:Roboto,sans-serif;font-size:13px;font-weight:300}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(images/ui-icons_444444_256x240.png)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(images/ui-icons_555555_256x240.png)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_777620_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-button .ui-icon{background-image:url(images/ui-icons_777777_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}@font-face{font-family:Roboto;src:url(fonts/roboto-light-webfont.ttf),url(fonts/roboto-light-webfont.eot);font-weight:700}@font-face{font-family:iosevka;src:url(fonts/iosevka-light.ttf);font-weight:400}a,abbr,acronym,address,applet,b,big,blockquote,body,caption,center,cite,code,dd,del,dfn,div,dl,dt,em,fieldset,font,form,h1,h2,h3,h4,h5,h6,html,i,iframe,img,ins,kbd,label,legend,li,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var{border:0;margin:0;padding:0;outline:0;vertical-align:top}body,html{width:100%;height:100%}body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#000}body>div{top:30px;bottom:0}nav{display:inline-block;top:0;left:0;height:30px;color:#323a4e;background-color:#463e3e;background-repeat:no-repeat;background-position:100% 50%;z-index:5;transition:background .2s ease-out}nav .nav{display:block;margin-top:2px;height:30px}.dropdown,nav .nav li{display:inline-block}nav .nav ul{line-height:24px}nav .nav a{color:#f0f0f1;text-decoration:none;padding:6px 15px}nav .nav a:hover{color:#fff;cursor:pointer}.dropdown{position:relative}.dropdown:hover{background-color:#2d2828}.dropdown-content{display:none;position:absolute;background-color:#000;color:#c6bcbc;padding:4px 0;z-index:999;float:none;list-style:none;line-height:normal;direction:ltr;width:auto;top:auto;left:0;margin-left:0;margin-top:0;min-width:150px}.dropdown:hover .dropdown-content{display:block}nav .nav .dropdown-content li{float:left;display:flex}nav .nav .dropdown-content li a{padding:6px 14px 6px 25px;white-space:nowrap;position:relative;text-decoration:none;min-width:150px;line-height:normal}nav .nav .dropdown-content li a span{float:right}.dropdown-content li:hover{background-color:#3a3333;color:#000}.dropdown-content li.disabled:hover{background-color:#000}.dropdown-content li.disabled a{color:#c5babc}.dropdown-content li.disabled a:hover{cursor:default;color:#c5babc}#liuzheng{font-family:Monaco,iosevka;font-size:11px}#editor{position:absolute;width:97%;height:90%}#editor>*{font:12px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace}#page-wrapper{min-height:0}#left-bar,#left-bar *{width:200px;position:absolute;bottom:0;top:0}#left-bar ul{height:100%}#left-bar.hideleftbar{left:-198px}#ngdiv.hideleftbar{left:2px!important}.hidden{display:none}.ui-menu{width:100px;z-index:3;font:12px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace!important}.ui-icon{width:16px;height:16px;text-indent:0!important;padding:0;display:block}.fa-size-1p3em{font-size:1.3em}.ui-state-active{border:none!important;background-color:#000!important}.fa.fa-caret-right.fa-size-1p3em{float:right!important;position:initial!important;background-color:inherit!important}.ui-menu.ui-widget.ui-widget-content{padding-right:0!important;color:#fff;background-color:#463e3e;border:none}.ui-menu-item:hover{background-color:#2d2828}.ui-state-disabled.ui-menu-item:hover{background-color:inherit}ul.fancytree-container{border:none!important;background:#2f2a2a;color:#d6cbcb}ul.fancytree-container span.fancytree-title{color:#d6cbcb}span.fancytree-active span,span.fancytree-selected span{color:#fff}span.fancytree-active span.fancytree-title,span.fancytree-selected span.fancytree-title{color:#fff;background:0 0}span.fancytree-expanded{color:#fff}span.fancytree-expanded span.fancytree-title{color:#fff;background:0 0}.fancytree-node span{vertical-align:middle}span.fancytree-icon{background-image:none!important}.ui-menu .ui-menu-item{position:relative;padding:3px 1em 3px .4em}.ui-menu-icons .ui-menu-item{padding-left:2em;padding-right:0}.ui-menu .ui-icon{position:absolute;padding:0;top:0;bottom:0;left:.2em;margin:auto 0}#ngdiv,.termChangBar{position:fixed;right:0}#ngdiv{left:200px;top:30px;bottom:0}.terminal{border:5px solid #000;font-family:Monaco,iosevka;font-size:11px;color:#f0f0f0;background:#000;box-shadow:rgba(0,0,0,.8) 2px 2px 20px;white-space:nowrap;display:inline-block}#term .terminal div span{min-width:12px}.reverse-video{color:#000;background:#f0f0f0}.termChangBar{line-height:1;margin:0 auto;border:1px solid #fff;color:#fff;background-color:#fff;top:0}#testBar{font-family:iosevka;height:200px;width:200px;top:450px;left:300px;background-color:#fff;position:absolute}#ngdiv ul{height:30px;background-color:#3a3333;overflow-y:hidden;overflow-x:auto;width:100%;display:inline-flex}#ngdiv ul li{display:inline-table;width:150px;height:30px;position:relative}#ngdiv ul li a.close,#ngdiv ul li span{position:absolute;color:gray;font-family:Roboto,sans-serif;font-size:13px}#ngdiv ul li span{text-overflow:ellipsis;white-space:nowrap;text-decoration:none;padding:6px 20px 6px 15px;cursor:default;width:115px;height:21px}#ngdiv ul li a.close{top:0;right:5px;cursor:pointer;line-height:26px;display:inline-block}.from-group,form{position:relative}#ngdiv ul li.active a{color:#fff}#ngdiv ul li.active span{padding:5px 20px 4px 15px;color:#fff;height:18px;border-bottom:3px solid #7f3f98!important}#ngdiv ul li input{font-family:Roboto,sans-serif;font-size:13px;width:115px;border:none;background-color:inherit;color:#fff;padding:5px 20px 4px 15px;height:18px;border-bottom:3px solid #7f3f98!important}#tabs ul li.disconnected{background-color:#a9a9a9}.layui-layer.layui-layer-dialog.layui-layer-prompt.layer-anim textarea{height:160px;width:300px;resize:none}.left-search{padding:0;width:100%;border:none;height:90%}form{width:250px;margin:0 auto;background:rgba(130,130,130,.3);padding:20px 22px;border:1px solid;border-top-color:rgba(255,255,255,.4);border-left-color:rgba(255,255,255,.4);border-bottom-color:rgba(60,60,60,.4);border-right-color:rgba(60,60,60,.4)}form button,form input{width:212px;border:1px solid;border-bottom-color:rgba(255,255,255,.5);border-right-color:rgba(60,60,60,.35);border-top-color:rgba(60,60,60,.35);border-left-color:rgba(80,80,80,.45);background-color:rgba(0,0,0,.2);background-repeat:no-repeat;padding:8px 24px 8px 10px;font:700 .875em/1.25em Monaco,Roboto,sans-serif;letter-spacing:.075em;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.1);margin-bottom:19px}form input:focus{background-color:rgba(0,0,0,.4)}.form-control-feedback{position:absolute;color:#fff;top:2px;right:2px;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none;font-weight:400;font-size:18px}::-webkit-input-placeholder{color:#ccc;text-transform:uppercase}::-moz-placeholder{color:#ccc;text-transform:uppercase}:-ms-input-placeholder{color:#ccc;text-transform:uppercase}form button[type=submit]{width:248px;margin-bottom:0;color:#adff2f;letter-spacing:.05em;text-shadow:0 1px 0 #133d3e;text-transform:uppercase;background:#225556;cursor:pointer;border-color:#9fb5b5 #1e4d4e #1b4849 #608586}
\ No newline at end of file
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'start' ]
2 info using npm@4.0.1
3 info using node@v4.3.1
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle bifrost@0.0.1~prestart: bifrost@0.0.1
6 silly lifecycle bifrost@0.0.1~prestart: no script for prestart, continuing
7 info lifecycle bifrost@0.0.1~start: bifrost@0.0.1
8 verbose lifecycle bifrost@0.0.1~start: unsafe-perm in lifecycle true
9 verbose lifecycle bifrost@0.0.1~start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/zhouxiaoxia/workspace/sofia/jumpserver-web-terminal/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/zhouxiaoxia/Library/Python/2.7/bin/
10 verbose lifecycle bifrost@0.0.1~start: CWD: /Users/zhouxiaoxia/workspace/sofia/jumpserver-web-terminal
11 silly lifecycle bifrost@0.0.1~start: Args: [ '-c',
11 silly lifecycle 'grunt && tsc && concurrently "npm run tsc:w" "npm run lite" ' ]
12 silly lifecycle bifrost@0.0.1~start: Returned: code: 3 signal: null
13 info lifecycle bifrost@0.0.1~start: Failed to exec start script
14 verbose stack Error: bifrost@0.0.1 start: `grunt && tsc && concurrently "npm run tsc:w" "npm run lite" `
14 verbose stack Exit status 3
14 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at EventEmitter.emit (events.js:172:7)
14 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at ChildProcess.emit (events.js:172:7)
14 verbose stack at maybeClose (internal/child_process.js:821:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
15 verbose pkgid bifrost@0.0.1
16 verbose cwd /Users/zhouxiaoxia/workspace/sofia/jumpserver-web-terminal
17 error Darwin 16.3.0
18 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "start"
19 error node v4.3.1
20 error npm v4.0.1
21 error code ELIFECYCLE
22 error bifrost@0.0.1 start: `grunt && tsc && concurrently "npm run tsc:w" "npm run lite" `
22 error Exit status 3
23 error Failed at the bifrost@0.0.1 start script 'grunt && tsc && concurrently "npm run tsc:w" "npm run lite" '.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the bifrost package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error grunt && tsc && concurrently "npm run tsc:w" "npm run lite"
23 error You can get information on how to open an issue for this project with:
23 error npm bugs bifrost
23 error Or if that isn't available, you can get their info via:
23 error npm owner ls bifrost
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
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