mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-27 23:10:04 +00:00
wrap TerminalTab into SSHTab
This commit is contained in:
parent
2101c18657
commit
deb99b0865
13
terminus-ssh/src/components/sshTab.component.scss
Normal file
13
terminus-ssh/src/components/sshTab.component.scss
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
:host {
|
||||||
|
flex: auto;
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
&> .content {
|
||||||
|
flex: auto;
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 15px;
|
||||||
|
}
|
||||||
|
}
|
14
terminus-ssh/src/components/sshTab.component.ts
Normal file
14
terminus-ssh/src/components/sshTab.component.ts
Normal 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 {
|
||||||
|
}
|
@ -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 { }
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user