Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Tabby
提交
ee2fadbf
T
Tabby
项目概览
后端镜像
/
Tabby
通知
37
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Tabby
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ee2fadbf
编写于
1月 19, 2018
作者:
E
Eugene Pankov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added message popups
上级
4259d3b5
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
36 addition
and
58 deletion
+36
-58
app/package.json
app/package.json
+1
-0
app/src/app.module.ts
app/src/app.module.ts
+6
-0
app/src/entry.preload.ts
app/src/entry.preload.ts
+1
-0
app/src/plugins.ts
app/src/plugins.ts
+1
-0
app/webpack.config.js
app/webpack.config.js
+1
-0
app/yarn.lock
app/yarn.lock
+4
-0
terminus-core/yarn.lock
terminus-core/yarn.lock
+4
-0
terminus-ssh/package.json
terminus-ssh/package.json
+1
-0
terminus-ssh/src/components/sshModal.component.ts
terminus-ssh/src/components/sshModal.component.ts
+3
-1
terminus-ssh/src/index.ts
terminus-ssh/src/index.ts
+2
-0
terminus-ssh/src/services/ssh.service.ts
terminus-ssh/src/services/ssh.service.ts
+7
-3
terminus-ssh/webpack.config.js
terminus-ssh/webpack.config.js
+1
-0
terminus-ssh/yarn.lock
terminus-ssh/yarn.lock
+4
-54
未找到文件。
app/package.json
浏览文件 @
ee2fadbf
...
...
@@ -27,6 +27,7 @@
"electron-squirrel-startup"
:
"^1.0.0"
,
"js-yaml"
:
"3.8.2"
,
"mz"
:
"^2.6.0"
,
"ngx-toastr"
:
"^8.0.0"
,
"path"
:
"0.12.7"
,
"rxjs"
:
"5.3.0"
,
"zone.js"
:
"0.8.12"
...
...
app/src/app.module.ts
浏览文件 @
ee2fadbf
import
{
NgModule
}
from
'
@angular/core
'
import
{
BrowserModule
}
from
'
@angular/platform-browser
'
import
{
NgbModule
}
from
'
@ng-bootstrap/ng-bootstrap
'
import
{
ToastrModule
}
from
'
ngx-toastr
'
export
function
getRootModule
(
plugins
:
any
[])
{
let
imports
=
[
BrowserModule
,
...
plugins
,
NgbModule
.
forRoot
(),
ToastrModule
.
forRoot
({
positionClass
:
'
toast-bottom-center
'
,
preventDuplicates
:
true
,
extendedTimeOut
:
5000
,
}),
]
let
bootstrap
=
[
...(
plugins
.
filter
(
x
=>
x
.
bootstrap
).
map
(
x
=>
x
.
bootstrap
)),
...
...
app/src/entry.preload.ts
浏览文件 @
ee2fadbf
import
'
source-sans-pro
'
import
'
font-awesome/css/font-awesome.css
'
import
'
ngx-toastr/toastr.css
'
import
'
./preload.scss
'
import
*
as
Raven
from
'
raven-js
'
...
...
app/src/plugins.ts
浏览文件 @
ee2fadbf
...
...
@@ -59,6 +59,7 @@ const builtinModules = [
'
@angular/platform-browser
'
,
'
@angular/platform-browser-dynamic
'
,
'
@ng-bootstrap/ng-bootstrap
'
,
'
ngx-toastr
'
,
'
rxjs
'
,
'
terminus-core
'
,
'
terminus-settings
'
,
...
...
app/webpack.config.js
浏览文件 @
ee2fadbf
...
...
@@ -58,6 +58,7 @@ module.exports = {
'
child_process
'
:
'
commonjs child_process
'
,
'
electron
'
:
'
commonjs electron
'
,
'
electron-is-dev
'
:
'
commonjs electron-is-dev
'
,
'
ngx-toastr
'
:
'
commonjs ngx-toastr
'
,
'
module
'
:
'
commonjs module
'
,
'
mz
'
:
'
commonjs mz
'
,
'
path
'
:
'
commonjs path
'
,
...
...
app/yarn.lock
浏览文件 @
ee2fadbf
...
...
@@ -195,6 +195,10 @@ mz@^2.6.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
ngx-toastr@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-8.0.0.tgz#f3bc53146b2f7da3eabf3daa1b1bbdf65cb49697"
object-assign@^4.0.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
...
...
terminus-core/yarn.lock
浏览文件 @
ee2fadbf
...
...
@@ -191,6 +191,10 @@ ngx-perfect-scrollbar@4.0.0:
dependencies:
perfect-scrollbar "~0.6.0"
ngx-toastr@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-8.0.0.tgz#f3bc53146b2f7da3eabf3daa1b1bbdf65cb49697"
perfect-scrollbar@~0.6.0:
version "0.6.16"
resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-0.6.16.tgz#b1d61a5245cf3962bb9a8407a3fc669d923212fc"
...
...
terminus-ssh/package.json
浏览文件 @
ee2fadbf
...
...
@@ -22,6 +22,7 @@
"apply-loader"
:
"^2.0.0"
,
"awesome-typescript-loader"
:
"^3.1.2"
,
"electron"
:
"^1.6.11"
,
"ngx-toastr"
:
"^8.0.0"
,
"pug"
:
"^2.0.0-rc.3"
,
"pug-loader"
:
"^2.3.0"
,
"rxjs"
:
"^5.4.0"
,
...
...
terminus-ssh/src/components/sshModal.component.ts
浏览文件 @
ee2fadbf
import
{
Component
}
from
'
@angular/core
'
import
{
NgbActiveModal
}
from
'
@ng-bootstrap/ng-bootstrap
'
import
{
ToastrService
}
from
'
ngx-toastr
'
import
{
ConfigService
,
AppService
}
from
'
terminus-core
'
import
{
SettingsTabComponent
}
from
'
terminus-settings
'
import
{
SSHService
}
from
'
../services/ssh.service
'
...
...
@@ -19,6 +20,7 @@ export class SSHModalComponent {
private
config
:
ConfigService
,
private
ssh
:
SSHService
,
private
app
:
AppService
,
private
toastr
:
ToastrService
,
)
{
}
ngOnInit
()
{
...
...
@@ -45,7 +47,7 @@ export class SSHModalComponent {
connect
(
connection
:
SSHConnection
)
{
this
.
close
()
this
.
ssh
.
connect
(
connection
).
catch
(
error
=>
{
alert
(
`Could not connect:
${
error
}
`
)
this
.
toastr
.
error
(
`Could not connect:
${
error
}
`
)
})
}
...
...
terminus-ssh/src/index.ts
浏览文件 @
ee2fadbf
...
...
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core'
import
{
CommonModule
}
from
'
@angular/common
'
import
{
FormsModule
}
from
'
@angular/forms
'
import
{
NgbModule
}
from
'
@ng-bootstrap/ng-bootstrap
'
import
{
ToastrModule
}
from
'
ngx-toastr
'
import
{
ToolbarButtonProvider
,
ConfigProvider
}
from
'
terminus-core
'
import
{
SettingsTabProvider
}
from
'
terminus-settings
'
...
...
@@ -21,6 +22,7 @@ import { SSHSettingsTabProvider } from './settings'
NgbModule
,
CommonModule
,
FormsModule
,
ToastrModule
,
],
providers
:
[
PasswordStorageService
,
...
...
terminus-ssh/src/services/ssh.service.ts
浏览文件 @
ee2fadbf
...
...
@@ -3,6 +3,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import
{
Client
}
from
'
ssh2
'
import
*
as
fs
from
'
mz/fs
'
import
*
as
path
from
'
path
'
import
{
ToastrService
}
from
'
ngx-toastr
'
import
{
AppService
,
HostAppService
,
Platform
,
Logger
,
LogService
}
from
'
terminus-core
'
import
{
TerminalTabComponent
}
from
'
terminus-terminal
'
import
{
SSHConnection
,
SSHSession
}
from
'
../api
'
...
...
@@ -21,6 +22,7 @@ export class SSHService {
private
ngbModal
:
NgbModal
,
private
hostApp
:
HostAppService
,
private
passwordStorage
:
PasswordStorageService
,
private
toastr
:
ToastrService
,
)
{
this
.
logger
=
log
.
create
(
'
ssh
'
)
}
...
...
@@ -41,7 +43,7 @@ export class SSHService {
try
{
privateKey
=
(
await
fs
.
readFile
(
privateKeyPath
)).
toString
()
}
catch
(
error
)
{
// notify: couldn't read key
this
.
toastr
.
warning
(
'
Could not read the private key file
'
)
}
if
(
privateKey
)
{
...
...
@@ -73,7 +75,7 @@ export class SSHService {
this
.
passwordStorage
.
deletePassword
(
connection
)
this
.
zone
.
run
(()
=>
{
if
(
connected
)
{
alert
(
`SSH error:
${
error
}
`
)
this
.
toastr
.
error
(
error
.
toString
()
)
}
else
{
reject
(
error
)
}
...
...
@@ -101,7 +103,7 @@ export class SSHService {
ssh
.
connect
({
host
:
connection
.
host
,
username
:
connection
.
user
,
password
:
privateKey
?
undefined
:
''
,
password
:
connection
.
privateKey
?
undefined
:
''
,
privateKey
,
passphrase
:
privateKeyPassphrase
,
tryKeyboard
:
true
,
...
...
@@ -113,12 +115,14 @@ export class SSHService {
;(
ssh
as
any
).
config
.
password
=
()
=>
this
.
zone
.
run
(
async
()
=>
{
if
(
connection
.
password
)
{
this
.
logger
.
info
(
'
Using preset password
'
)
return
connection
.
password
}
if
(
!
keychainPasswordUsed
)
{
let
password
=
await
this
.
passwordStorage
.
loadPassword
(
connection
)
if
(
password
)
{
this
.
logger
.
info
(
'
Using saved password
'
)
keychainPasswordUsed
=
true
return
password
}
...
...
terminus-ssh/webpack.config.js
浏览文件 @
ee2fadbf
...
...
@@ -40,6 +40,7 @@ module.exports = {
'
xkeychain
'
,
'
wincredmgr
'
,
'
path
'
,
'
ngx-toastr
'
,
/^rxjs/
,
/^@angular/
,
/^@ng-bootstrap/
,
...
...
terminus-ssh/yarn.lock
浏览文件 @
ee2fadbf
...
...
@@ -6,10 +6,6 @@
version "8.0.53"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8"
"@types/openpgp@^0.0.29":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/openpgp/-/openpgp-0.0.29.tgz#feabb9d547cb107f7b98fdd51ac616f6cf5aaebd"
"@types/ssh2-streams@*":
version "0.1.2"
resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.2.tgz#7aa18b8c2450f17699e9ea18a76efc838188d58d"
...
...
@@ -748,12 +744,6 @@ emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
enhanced-resolve@3.3.0, enhanced-resolve@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
...
...
@@ -1039,7 +1029,7 @@ glob@^7.0.5:
once "^1.3.0"
path-is-absolute "^1.0.0"
graceful-fs@^4.1.
11, graceful-fs@^4.1.
2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
...
...
@@ -1192,18 +1182,10 @@ https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
iconv-lite@~0.4.13:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
ieee754@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
indent-string@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
...
...
@@ -1387,10 +1369,6 @@ is-regex@^1.0.3:
dependencies:
has "^1.0.1"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
...
...
@@ -1730,12 +1708,9 @@ nanomatch@^1.2.5:
snapdragon "^0.8.1"
to-regex "^3.0.1"
node-fetch@^1.3.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
ngx-toastr@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-8.0.0.tgz#f3bc53146b2f7da3eabf3daa1b1bbdf65cb49697"
node-libs-browser@^2.0.0:
version "2.1.0"
...
...
@@ -1765,12 +1740,6 @@ node-libs-browser@^2.0.0:
util "^0.10.3"
vm-browserify "0.0.4"
node-localstorage@~1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/node-localstorage/-/node-localstorage-1.3.0.tgz#2e436aae8dcc9ace97b43c65c16c0d577be0a55c"
dependencies:
write-file-atomic "^1.1.4"
node-pre-gyp@^0.6.39:
version "0.6.39"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
...
...
@@ -1879,13 +1848,6 @@ once@^1.3.0, once@^1.3.3:
dependencies:
wrappy "1"
openpgp@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-2.6.1.tgz#7d9da10433e37d87300fbac1fe173c80f0a908c9"
dependencies:
node-fetch "^1.3.3"
node-localstorage "~1.3.0"
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
...
...
@@ -2450,10 +2412,6 @@ single-line-log@^1.1.2:
dependencies:
string-width "^1.0.1"
slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
...
...
@@ -2947,14 +2905,6 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
write-file-atomic@^1.1.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
slide "^1.1.5"
xkeychain@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/xkeychain/-/xkeychain-0.0.6.tgz#1c58b3dd2f80481f8f67949c3511aa14027c2b9b"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录