wrap TerminalTab into SSHTab

This commit is contained in:
Eugene Pankov 2019-01-05 15:17:41 +01:00
parent 2101c18657
commit deb99b0865
4 changed files with 34 additions and 4 deletions

View File

@ -0,0 +1,13 @@
:host {
flex: auto;
display: flex;
overflow: hidden;
&> .content {
flex: auto;
position: relative;
display: block;
overflow: hidden;
margin: 15px;
}
}

View File

@ -0,0 +1,14 @@
import { Component } from '@angular/core'
import { TerminalTabComponent } from 'terminus-terminal'
@Component({
template: `
<div
#content
class="content"
></div>
`,
styles: [require('./sshTab.component.scss')],
})
export class SSHTabComponent extends TerminalTabComponent {
}

View File

@ -10,6 +10,7 @@ import { EditConnectionModalComponent } from './components/editConnectionModal.c
import { SSHModalComponent } from './components/sshModal.component' import { SSHModalComponent } from './components/sshModal.component'
import { PromptModalComponent } from './components/promptModal.component' import { PromptModalComponent } from './components/promptModal.component'
import { SSHSettingsTabComponent } from './components/sshSettingsTab.component' import { SSHSettingsTabComponent } from './components/sshSettingsTab.component'
import { SSHTabComponent } from './components/sshTab.component'
import { ButtonProvider } from './buttonProvider' import { ButtonProvider } from './buttonProvider'
import { SSHConfigProvider } from './config' import { SSHConfigProvider } from './config'
@ -33,12 +34,14 @@ import { SSHSettingsTabProvider } from './settings'
PromptModalComponent, PromptModalComponent,
SSHModalComponent, SSHModalComponent,
SSHSettingsTabComponent, SSHSettingsTabComponent,
SSHTabComponent,
], ],
declarations: [ declarations: [
EditConnectionModalComponent, EditConnectionModalComponent,
PromptModalComponent, PromptModalComponent,
SSHModalComponent, SSHModalComponent,
SSHSettingsTabComponent, SSHSettingsTabComponent,
SSHTabComponent,
], ],
}) })
export default class SSHModule { } export default class SSHModule { }

View File

@ -5,9 +5,9 @@ import * as fs from 'mz/fs'
import * as path from 'path' import * as path from 'path'
import { ToastrService } from 'ngx-toastr' import { ToastrService } from 'ngx-toastr'
import { AppService, HostAppService, Platform, Logger, LogService } from 'terminus-core' import { AppService, HostAppService, Platform, Logger, LogService } from 'terminus-core'
import { TerminalTabComponent } from 'terminus-terminal'
import { SSHConnection, SSHSession } from '../api' import { SSHConnection, SSHSession } from '../api'
import { PromptModalComponent } from '../components/promptModal.component' import { PromptModalComponent } from '../components/promptModal.component'
import { SSHTabComponent } from '../components/sshTab.component'
import { PasswordStorageService } from './passwordStorage.service' import { PasswordStorageService } from './passwordStorage.service'
const { SSH2Stream } = require('ssh2-streams') const { SSH2Stream } = require('ssh2-streams')
@ -33,7 +33,7 @@ export class SSHService {
this.logger = log.create('ssh') this.logger = log.create('ssh')
} }
async connect (connection: SSHConnection): Promise<TerminalTabComponent> { async connect (connection: SSHConnection): Promise<SSHTabComponent> {
let privateKey: string = null let privateKey: string = null
let privateKeyPassphrase: string = null let privateKeyPassphrase: string = null
let privateKeyPath = connection.privateKey let privateKeyPath = connection.privateKey
@ -171,9 +171,9 @@ export class SSHService {
let session = new SSHSession(shell, connection) let session = new SSHSession(shell, connection)
return this.zone.run(() => this.app.openNewTab( return this.zone.run(() => this.app.openNewTab(
TerminalTabComponent, SSHTabComponent,
{ session, sessionOptions: {} } { session, sessionOptions: {} }
) as TerminalTabComponent) ) as SSHTabComponent)
} catch (error) { } catch (error) {
console.log(error) console.log(error)
throw error throw error