feat: update

parent c85fba0a
......@@ -33,14 +33,7 @@
"../node_modules/jquery-sparkline/jquery.sparkline.js",
"../node_modules/tether/dist/js/tether.min.js",
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
"../node_modules/xterm/dist/xterm.js",
"../node_modules/layui-layer/dist/layer.js",
"../node_modules/socket.io-client/dist/socket.io.js",
"./assets/js/mstsc.js",
"./assets/js/keyboard.js",
"./assets/js/rle.js",
"./assets/js/client.js",
"./assets/js/canvas.js"
"../node_modules/xterm/dist/xterm.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
......
......@@ -108,7 +108,7 @@ def asset_groups_assets():
"hostname": "192.168.1.6",
"ip": "192.168.2.6",
"port": 22,
"plantform": "Linux",
"platform": "Linux",
"system_users_granted": [
{
"id": 1,
......@@ -133,13 +133,13 @@ def asset_groups_assets():
"hostname": "windows server",
"ip": "123.57.183.135",
"port": 3389,
"plantform": "Windows",
"assets_granted": [
"platform": "Windows",
"system_users_granted": [
{
"id": 1,
"id": 3,
"name": "web",
"username": "web",
"protocol": "ssh",
"protocol": "rdp",
"auth_method": "P",
"auto_push": True
}
......
This diff is collapsed.
......@@ -40,6 +40,7 @@
"layui-layer": "git+https://github.com/jumpserver/layer.git",
"materialize-css": "^0.100.2",
"metismenu": "^2.5.0",
"mstsc.js": "^0.2.4",
"ng2-charts": "^1.5.0",
"ng2-cookies": "^1.0.12",
"ngx-bootstrap": "^1.6.6",
......@@ -54,8 +55,8 @@
"socket.io": "^2.0.3",
"socket.io-client": "^2.0.4",
"ssh-keygen": "^0.4.1",
"term.js": "0.0.7",
"tether": "^1.4.0",
"tty.js": "^0.2.15",
"xterm": "^2.9.2",
"zone.js": "^0.8.14"
},
......
......@@ -67,11 +67,7 @@ label {
background: #2f2a2a;
font-size: 9pt;
border-top-width: 1px;
<<<<<<< HEAD
left: 0;
=======
left: 0px;
>>>>>>> github_dev
padding: 1px 20px 0 20px;
position: absolute;
}
......
......@@ -10,7 +10,7 @@
<label for="hostgroup-{{i}}">{{hostGroup.name}}</label>
<ul [ngClass]="{'insearch': q }">
<li *ngFor="let host of hostGroup.assets_granted | SearchFilter: q" (click)="Connect(host)">
<i class="fa" [ngClass]="'fa-'+(host.plantform||'undefined').toLowerCase()" id="fa-{{i}}"></i>
<i class="fa" [ngClass]="'fa-'+(host.platform||'undefined').toLowerCase()" id="fa-{{i}}"></i>
{{host.hostname}}
</li>
</ul>
......
......@@ -166,12 +166,12 @@ export class CleftbarComponent implements OnInit {
this._rdp.Connect(host, user.id);
}
}
// if (host.plantform) {
// if (host.plantform.toLowerCase() === 'linux') {
// if (host.platform) {
// if (host.platform.toLowerCase() === 'linux') {
// jQuery('app-ssh').show();
// jQuery('app-rdp').hide();
// this._term.TerminalConnect(host, user.id);
// } else if (host.plantform.toLowerCase() === 'windows') {
// } else if (host.platform.toLowerCase() === 'windows') {
// jQuery('app-ssh').hide();
// jQuery('app-rdp').show();
// this._rdp.Connect(host, user.id);
......
......@@ -46,6 +46,17 @@ export let NavList: {
styleUrls: ['./control.component.css']
})
export class ControlComponent implements OnInit {
static active(id) {
for (let i in NavList.List) {
if (id.toString() === i) {
NavList.List[id].hide = false;
} else {
NavList.List[i].hide = true;
}
}
NavList.Active = id;
}
constructor() {
}
......
......@@ -69,4 +69,5 @@ export class ControlnavComponent implements OnInit {
ControlnavComponent.checkActive(index);
}
}
......@@ -6,9 +6,10 @@
*/
import {Component, OnInit} from '@angular/core';
import {NavList, View, Rdp} from '../control.component';
import {NavList, View, Rdp, ControlComponent} from '../control.component';
declare let Mstsc: any;
import * as Mstsc from 'mstsc.js/client/js/mstsc.js';
// declare let Mstsc: any;
@Component({
selector: 'app-rdp',
......@@ -53,17 +54,10 @@ export class RdpComponent implements OnInit {
NavList.List[id].Rdp.token = host.token;
NavList.List[id].Rdp.machine = host.uuid;
NavList.List[id].Rdp.client = Mstsc.client.create(Mstsc.$('canvas-' + id));
NavList.List[id].Rdp.client.connect(host.token, 'rdp/socket.io');
NavList.List[id].Rdp.client.connect(host.token, '/rdp/socket.io');
NavList.List.push(new View());
for (let m in NavList.List) {
NavList.List[m].hide = true;
}
NavList.List[id].hide = false;
NavList.Active = id;
ControlComponent.active(id);
}
}
......@@ -9,7 +9,7 @@ import {Component, OnInit} from '@angular/core';
import {Logger} from 'angular2-logger/core';
import {Cookie} from 'ng2-cookies/ng2-cookies';
import {AppService} from '../../../app.service';
import {NavList, View, Term} from '../control.component';
import {NavList, View, Term, ControlComponent} from '../control.component';
import {Terminal} from '../../../globals';
import * as io from 'socket.io-client';
import * as jQuery from 'jquery/dist/jquery.min.js';
......@@ -74,15 +74,7 @@ export class SshComponent implements OnInit {
screenKeys: true,
});
NavList.List.push(new View());
for (let i = 0; i < NavList.List.length; i++) {
if (id === i) {
NavList.List[id].hide = false;
} else {
NavList.List[i].hide = true;
}
}
NavList.Active = id;
ControlComponent.active(id);
// TermStore.term[id]['term'].on('title', function (title) {
......
......@@ -12,15 +12,15 @@ import {environment} from '../environments/environment';
import {NotFoundComponent} from './BasicPage/not-found/not-found.component';
import {LoginComponent} from './BasicPage/login/login.component';
import {ControlPageComponent} from './ControlPage/controlpage.component';
import {RdppageComponent} from './rdppage/rdppage.component';
import {TermpageComponent} from './termpage/termpage.component';
import {ReplayPageComponent} from './replay-page/replay-page.component';
import {MonitorPageComponent} from './monitor-page/monitor-page.component';
import {RdpPageComponent} from './rdp-page/rdp-page.component';
import {TermPageComponent} from './term-page/term-page.component';
const appRoutes: Routes = [
{path: 'users/login', component: LoginComponent},
{path: 'rdp/:token', component: RdppageComponent},
{path: 'term/:token', component: TermpageComponent},
{path: 'rdp/:token', component: RdpPageComponent},
{path: 'term/:token', component: TermPageComponent},
{path: 'replay/:token', component: ReplayPageComponent},
{path: 'monitor/:token', component: MonitorPageComponent},
{path: '', component: ControlPageComponent},
......
......@@ -36,8 +36,8 @@ import {SshComponent} from './ControlPage/control/ssh/ssh.component';
import {ControlPageComponent} from './ControlPage/controlpage.component';
import {IndexPageComponent} from './IndexPage/index-page.component';
import {NotFoundComponent} from './BasicPage/not-found/not-found.component';
import {RdppageComponent} from './rdppage/rdppage.component';
import {TermpageComponent} from './termpage/termpage.component';
import {RdpPageComponent} from './rdp-page/rdp-page.component';
import {TermPageComponent} from './term-page/term-page.component';
import {ReplayPageComponent} from './replay-page/replay-page.component';
import {Mp4Component} from './replay-page/mp4/mp4.component';
import {JsonComponent} from './replay-page/json/json.component';
......@@ -74,8 +74,8 @@ import {ElementRdpComponent} from './elements/rdp/rdp.component';
ControlPageComponent,
IndexPageComponent,
NotFoundComponent,
RdppageComponent,
TermpageComponent,
RdpPageComponent,
TermPageComponent,
ReplayPageComponent,
Mp4Component,
JsonComponent,
......
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TermpageComponent } from './termpage.component';
import { RdpPageComponent } from './rdp-page.component';
describe('TermpageComponent', () => {
let component: TermpageComponent;
let fixture: ComponentFixture<TermpageComponent>;
describe('RdpPageComponent', () => {
let component: RdpPageComponent;
let fixture: ComponentFixture<RdpPageComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ TermpageComponent ]
declarations: [ RdpPageComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TermpageComponent);
fixture = TestBed.createComponent(RdpPageComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
......
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-rdp-page',
templateUrl: './rdp-page.component.html',
styleUrls: ['./rdp-page.component.scss']
})
export class RdpPageComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TermPageComponent } from './term-page.component';
describe('TermPageComponent', () => {
let component: TermPageComponent;
let fixture: ComponentFixture<TermPageComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ TermPageComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TermPageComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-term-page',
templateUrl: './term-page.component.html',
styleUrls: ['./term-page.component.scss']
})
export class TermPageComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
#term {
width: 100%;
height: 100%;
}
#term > div {
height: 100%;
}
.terminal {
border: #000 solid 5px;
color: #f0f0f0;
box-shadow: rgba(0, 0, 0, 0.8) 2px 2px 20px;
white-space: nowrap;
display: inline-block;
width: 100%;
height: 100%;
background-color: black;
}
#term .terminal div span {
min-width: 12px;
}
import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, Params} from '@angular/router';
import {DataStore} from '../globals';
import * as io from 'socket.io-client';
import * as Terminal from 'term.js/src/term.js';
@Component({
selector: 'app-termpage',
templateUrl: './termpage.component.html',
styleUrls: ['./termpage.component.css']
})
export class TermpageComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute) {
DataStore.NavShow = false;
}
ngOnInit() {
let token: string;
this.activatedRoute.params.subscribe((params: Params) => {
token = params['token'];
});
const socket = io.connect('/ssh');
const term = new Terminal({
cols: '80',
rows: '24',
useStyle: true,
screenKeys: true,
});
term.open(document.getElementById('term'), true);
socket.on('connect', function () {
socket.emit('token', token);
term.on('data', function (data) {
socket.emit('data', data);
});
socket.on('data', function (data) {
term.write(data);
});
socket.on('disconnect', function () {
term.destroy();
});
socket.on('resize', function (data) {
term.resize(data.col, data.row);
});
// jQuery(window).resize();
});
}
}
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