@electerm/electerm-react 1.39.88 → 1.39.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/common/constants.js +2 -1
- package/client/common/create-title.jsx +2 -3
- package/client/common/init-setting-item.js +3 -6
- package/client/common/new-terminal.js +1 -2
- package/client/common/terminal-theme.js +2 -3
- package/client/components/auth/login.jsx +2 -3
- package/client/components/batch-op/batch-op.jsx +18 -36
- package/client/components/bookmark-form/form-ssh-common.jsx +4 -7
- package/client/components/bookmark-form/form-tabs.jsx +4 -8
- package/client/components/bookmark-form/index.jsx +5 -9
- package/client/components/bookmark-form/local-form-ui.jsx +3 -6
- package/client/components/bookmark-form/proxy.jsx +1 -2
- package/client/components/bookmark-form/quick-command.jsx +7 -8
- package/client/components/bookmark-form/rdp-form-ui.jsx +2 -4
- package/client/components/bookmark-form/render-auth-ssh.jsx +1 -2
- package/client/components/bookmark-form/render-connection-hopping.jsx +9 -11
- package/client/components/bookmark-form/render-delayed-scripts.jsx +1 -2
- package/client/components/bookmark-form/render-ssh-tunnel.jsx +9 -12
- package/client/components/bookmark-form/serial-form-ui.jsx +4 -8
- package/client/components/bookmark-form/sftp-enable.jsx +1 -2
- package/client/components/bookmark-form/telnet-form-ui.jsx +2 -4
- package/client/components/bookmark-form/tree-delete.jsx +3 -4
- package/client/components/bookmark-form/use-quick-commands.jsx +5 -6
- package/client/components/bookmark-form/use-submit.jsx +1 -2
- package/client/components/bookmark-form/use-ui.jsx +4 -6
- package/client/components/bookmark-form/vnc-form-ui.jsx +2 -4
- package/client/components/bookmark-form/web-form-ui.jsx +2 -4
- package/client/components/common/markdown.jsx +1 -1
- package/client/components/context-menu/context-menu.jsx +3 -4
- package/client/components/context-menu/menu-btn.jsx +13 -18
- package/client/components/footer/batch-input.jsx +1 -2
- package/client/components/footer/footer-entry.jsx +2 -3
- package/client/components/main/error-wrapper.jsx +2 -4
- package/client/components/main/upgrade.jsx +2 -4
- package/client/components/main/upgrade.styl +4 -1
- package/client/components/profile/profile-form-elem.jsx +28 -10
- package/client/components/quick-commands/quick-commands-box.jsx +1 -2
- package/client/components/quick-commands/quick-commands-form-elem.jsx +7 -12
- package/client/components/quick-commands/quick-commands-list-form.jsx +5 -6
- package/client/components/quick-commands/quick-commands-list.jsx +2 -3
- package/client/components/quick-commands/quick-commands-select.jsx +1 -2
- package/client/components/rdp/rdp-session.jsx +0 -3
- package/client/components/rdp/resolution-form.jsx +3 -6
- package/client/components/session/session.jsx +2 -4
- package/client/components/session/sessions.jsx +4 -6
- package/client/components/setting-panel/keywords-form.jsx +2 -3
- package/client/components/setting-panel/list.jsx +3 -6
- package/client/components/setting-panel/setting-common.jsx +10 -14
- package/client/components/setting-panel/setting-modal.jsx +7 -11
- package/client/components/setting-panel/setting-terminal.jsx +13 -16
- package/client/components/setting-panel/start-session-select.jsx +1 -2
- package/client/components/setting-panel/tab-history.jsx +2 -3
- package/client/components/setting-sync/data-import.jsx +4 -7
- package/client/components/setting-sync/data-select.jsx +4 -16
- package/client/components/setting-sync/setting-sync-form.jsx +8 -12
- package/client/components/sftp/address-bar.jsx +1 -2
- package/client/components/sftp/confirm-modal-store.jsx +1 -2
- package/client/components/sftp/file-item.jsx +6 -8
- package/client/components/sftp/file-mode-modal.jsx +1 -2
- package/client/components/sftp/file-props-modal.jsx +1 -2
- package/client/components/sftp/list-table-ui.jsx +1 -2
- package/client/components/sftp/permission-render.jsx +1 -2
- package/client/components/sftp/sftp-entry.jsx +21 -7
- package/client/components/sftp/transfer-tag.jsx +1 -2
- package/client/components/shortcuts/shortcuts.jsx +5 -28
- package/client/components/sidebar/bookmark.jsx +6 -9
- package/client/components/sidebar/history.jsx +4 -6
- package/client/components/sidebar/index.jsx +9 -16
- package/client/components/sidebar/info-modal.jsx +10 -15
- package/client/components/sidebar/transfer-history-modal.jsx +3 -6
- package/client/components/sidebar/transfer-list-control.jsx +1 -2
- package/client/components/sidebar/transfer-list.jsx +1 -2
- package/client/components/sidebar/transfer-modal.jsx +2 -4
- package/client/components/sidebar/transport-ui.jsx +1 -2
- package/client/components/tabs/index.jsx +28 -20
- package/client/components/tabs/tab.jsx +5 -9
- package/client/components/tabs/window-control.jsx +4 -5
- package/client/components/terminal/index.jsx +5 -7
- package/client/components/terminal/term-search.jsx +2 -3
- package/client/components/terminal/terminal-interactive.jsx +2 -4
- package/client/components/terminal-info/activity.jsx +4 -5
- package/client/components/terminal-info/base.jsx +3 -4
- package/client/components/terminal-info/terminal-info.styl +1 -0
- package/client/components/terminal-theme/index.jsx +6 -9
- package/client/components/terminal-theme/theme-list.jsx +1 -2
- package/client/components/text-editor/text-editor-form.jsx +4 -8
- package/client/components/text-editor/text-editor.jsx +2 -3
- package/client/components/tree-list/bookmark-transport.jsx +4 -7
- package/client/components/tree-list/tree-list-item.jsx +4 -7
- package/client/components/tree-list/tree-list.jsx +3 -6
- package/client/components/vnc/vnc-form.jsx +2 -4
- package/client/components/vnc/vnc-session.jsx +1 -2
- package/client/entry/basic.js +4 -6
- package/client/store/common.js +10 -12
- package/client/store/index.js +4 -7
- package/client/store/init-state.js +2 -3
- package/client/store/load-data.js +10 -0
- package/client/store/setting.js +2 -3
- package/client/store/system-menu.js +4 -6
- package/client/store/terminal-theme.js +2 -4
- package/package.json +1 -1
|
@@ -10,8 +10,7 @@ import highlight from '../common/highlight'
|
|
|
10
10
|
import QmTransport from './quick-command-transport'
|
|
11
11
|
|
|
12
12
|
const { Option } = Select
|
|
13
|
-
const
|
|
14
|
-
const q = prefix('quickCommands')
|
|
13
|
+
const e = window.translate
|
|
15
14
|
|
|
16
15
|
export default class QuickCommandsList extends List {
|
|
17
16
|
del = (item, e) => {
|
|
@@ -114,7 +113,7 @@ export default class QuickCommandsList extends List {
|
|
|
114
113
|
renderLabels = () => {
|
|
115
114
|
const arr = this.getLabels()
|
|
116
115
|
const props = {
|
|
117
|
-
placeholder:
|
|
116
|
+
placeholder: e('labels'),
|
|
118
117
|
mode: 'multiple',
|
|
119
118
|
value: this.state.labels,
|
|
120
119
|
onChange: this.handleChange,
|
|
@@ -6,8 +6,7 @@ import { PureComponent } from 'react'
|
|
|
6
6
|
import { Button } from 'antd'
|
|
7
7
|
import './qm.styl'
|
|
8
8
|
|
|
9
|
-
const
|
|
10
|
-
const e = prefix('quickCommands')
|
|
9
|
+
const e = window.translate
|
|
11
10
|
|
|
12
11
|
export default class QuickCommandsFooter extends PureComponent {
|
|
13
12
|
handleOpen = () => {
|
|
@@ -23,9 +23,6 @@ import scanCode from './code-scan'
|
|
|
23
23
|
import resolutions from './resolutions'
|
|
24
24
|
|
|
25
25
|
const { Option } = Select
|
|
26
|
-
// const { prefix } = window
|
|
27
|
-
// const e = prefix('ssh')
|
|
28
|
-
// const m = prefix('menu')
|
|
29
26
|
|
|
30
27
|
export default class RdpSession extends Component {
|
|
31
28
|
constructor (props) {
|
|
@@ -11,10 +11,7 @@ import { formItemLayout, tailFormItemLayout } from '../../common/form-layout'
|
|
|
11
11
|
import resolutions from './resolutions'
|
|
12
12
|
|
|
13
13
|
const FormItem = Form.Item
|
|
14
|
-
const
|
|
15
|
-
const e = prefix('ssh')
|
|
16
|
-
const c = prefix('common')
|
|
17
|
-
const m = prefix('menu')
|
|
14
|
+
const e = window.translate
|
|
18
15
|
|
|
19
16
|
export default function ResolutionForm (props) {
|
|
20
17
|
const {
|
|
@@ -43,7 +40,7 @@ export default function ResolutionForm (props) {
|
|
|
43
40
|
return `${item.width}x${item.height}`
|
|
44
41
|
}
|
|
45
42
|
}, {
|
|
46
|
-
title:
|
|
43
|
+
title: e('del'),
|
|
47
44
|
key: 'op',
|
|
48
45
|
dataIndex: 'id',
|
|
49
46
|
render: (id, item) => {
|
|
@@ -91,7 +88,7 @@ export default function ResolutionForm (props) {
|
|
|
91
88
|
initialValues={initialValues}
|
|
92
89
|
>
|
|
93
90
|
<FormItem
|
|
94
|
-
label={
|
|
91
|
+
label={e('resolutions')}
|
|
95
92
|
{...formItemLayout}
|
|
96
93
|
required
|
|
97
94
|
className='ssh-tunnels-host'
|
|
@@ -60,9 +60,7 @@ const getPrevTerminal = terminals => {
|
|
|
60
60
|
return last(terminals)
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
const
|
|
64
|
-
const e = prefix('ssh')
|
|
65
|
-
const m = prefix('menu')
|
|
63
|
+
const e = window.translate
|
|
66
64
|
|
|
67
65
|
export default class SessionWrapper extends Component {
|
|
68
66
|
constructor (props) {
|
|
@@ -615,7 +613,7 @@ export default class SessionWrapper extends Component {
|
|
|
615
613
|
<CloseSquareFilled
|
|
616
614
|
className='mg1r icon-trash font16 iblock pointer spliter'
|
|
617
615
|
onClick={() => this.delSplit()}
|
|
618
|
-
title={
|
|
616
|
+
title={e('del')}
|
|
619
617
|
/>
|
|
620
618
|
)
|
|
621
619
|
}
|
|
@@ -25,9 +25,7 @@ import { Button } from 'antd'
|
|
|
25
25
|
import toSimpleObj from '../../common/to-simple-obj'
|
|
26
26
|
import { shortcutExtend } from '../shortcuts/shortcut-handler.js'
|
|
27
27
|
|
|
28
|
-
const
|
|
29
|
-
const e = prefix('tabs')
|
|
30
|
-
const c = prefix('control')
|
|
28
|
+
const e = window.translate
|
|
31
29
|
|
|
32
30
|
class Sessions extends Component {
|
|
33
31
|
state = {
|
|
@@ -187,8 +185,8 @@ class Sessions extends Component {
|
|
|
187
185
|
})
|
|
188
186
|
}
|
|
189
187
|
|
|
190
|
-
onDuplicateTab = (tabToDup) => {
|
|
191
|
-
this.setState(oldState => {
|
|
188
|
+
onDuplicateTab = async (tabToDup) => {
|
|
189
|
+
this.setState(async oldState => {
|
|
192
190
|
const defaultStatus = statusMap.processing
|
|
193
191
|
let tab = copy(tabToDup)
|
|
194
192
|
updateCount(tab)
|
|
@@ -317,7 +315,7 @@ class Sessions extends Component {
|
|
|
317
315
|
size='large'
|
|
318
316
|
className='mg1r mg1b'
|
|
319
317
|
>
|
|
320
|
-
{
|
|
318
|
+
{e('newBookmark')}
|
|
321
319
|
</Button>
|
|
322
320
|
<div className='pd3'>
|
|
323
321
|
<LogoElem />
|
|
@@ -14,8 +14,7 @@ import {
|
|
|
14
14
|
const FormItem = Form.Item
|
|
15
15
|
const FormList = Form.List
|
|
16
16
|
const OptionSel = Select.Option
|
|
17
|
-
const
|
|
18
|
-
const f = prefix('form')
|
|
17
|
+
const e = window.translate
|
|
19
18
|
|
|
20
19
|
export default function KeywordForm (props) {
|
|
21
20
|
const {
|
|
@@ -131,7 +130,7 @@ export default function KeywordForm (props) {
|
|
|
131
130
|
})}
|
|
132
131
|
icon={<PlusOutlined />}
|
|
133
132
|
>
|
|
134
|
-
{
|
|
133
|
+
{e('keyword')}
|
|
135
134
|
</Button>
|
|
136
135
|
</FormItem>
|
|
137
136
|
</div>
|
|
@@ -12,10 +12,7 @@ import highlight from '../common/highlight'
|
|
|
12
12
|
import { settingSyncId, settingCommonId } from '../../common/constants'
|
|
13
13
|
import './list.styl'
|
|
14
14
|
|
|
15
|
-
const
|
|
16
|
-
const e = prefix('menu')
|
|
17
|
-
const c = prefix('common')
|
|
18
|
-
const s = prefix('setting')
|
|
15
|
+
const e = window.translate
|
|
19
16
|
|
|
20
17
|
export default class ItemList extends React.PureComponent {
|
|
21
18
|
state = {
|
|
@@ -88,7 +85,7 @@ export default class ItemList extends React.PureComponent {
|
|
|
88
85
|
title={e('del') + '?'}
|
|
89
86
|
onConfirm={e => this.del(item, e)}
|
|
90
87
|
okText={e('del')}
|
|
91
|
-
cancelText={
|
|
88
|
+
cancelText={e('cancel')}
|
|
92
89
|
placement='top'
|
|
93
90
|
>
|
|
94
91
|
{icon}
|
|
@@ -124,7 +121,7 @@ export default class ItemList extends React.PureComponent {
|
|
|
124
121
|
title={title}
|
|
125
122
|
className='elli pd1y pd2x list-item-title'
|
|
126
123
|
>
|
|
127
|
-
{tag}{titleHighlight ||
|
|
124
|
+
{tag}{titleHighlight || e('new')}
|
|
128
125
|
</div>
|
|
129
126
|
{this.renderDelBtn(item)}
|
|
130
127
|
{this.renderEditBtn(item, isGroup)}
|
|
@@ -29,11 +29,7 @@ import delay from '../../common/wait.js'
|
|
|
29
29
|
import './setting.styl'
|
|
30
30
|
|
|
31
31
|
const { Option } = Select
|
|
32
|
-
const
|
|
33
|
-
const e = prefix('setting')
|
|
34
|
-
const f = prefix('form')
|
|
35
|
-
const p = prefix('sftp')
|
|
36
|
-
const t = prefix('terminalThemes')
|
|
32
|
+
const e = window.translate
|
|
37
33
|
|
|
38
34
|
const modifiers = [
|
|
39
35
|
'Command',
|
|
@@ -55,7 +51,7 @@ export default class SettingCommon extends Component {
|
|
|
55
51
|
passwordChanged: false,
|
|
56
52
|
submittingPass: false,
|
|
57
53
|
passInputFocused: false,
|
|
58
|
-
placeholderLogin: window.pre.requireAuth ? '********' :
|
|
54
|
+
placeholderLogin: window.pre.requireAuth ? '********' : e('notSet'),
|
|
59
55
|
loginPass: ''
|
|
60
56
|
}
|
|
61
57
|
|
|
@@ -92,7 +88,7 @@ export default class SettingCommon extends Component {
|
|
|
92
88
|
loginPass: pass ? '********' : '',
|
|
93
89
|
submittingPass: false,
|
|
94
90
|
passwordChanged: true,
|
|
95
|
-
placeholderLogin: pass ? '********' :
|
|
91
|
+
placeholderLogin: pass ? '********' : e('notSet')
|
|
96
92
|
}, () => {
|
|
97
93
|
this.submitting = false
|
|
98
94
|
})
|
|
@@ -417,7 +413,7 @@ export default class SettingCommon extends Component {
|
|
|
417
413
|
<div className='pd1b'>
|
|
418
414
|
<div className='pd1b'>
|
|
419
415
|
<span className='pd1r'>
|
|
420
|
-
{e('global')} {
|
|
416
|
+
{e('global')} {e('proxy')}
|
|
421
417
|
<HelpIcon
|
|
422
418
|
title={table}
|
|
423
419
|
overlayInnerStyle={style}
|
|
@@ -478,7 +474,7 @@ export default class SettingCommon extends Component {
|
|
|
478
474
|
}
|
|
479
475
|
return (
|
|
480
476
|
<div>
|
|
481
|
-
<div className='pd1b'>{
|
|
477
|
+
<div className='pd1b'>{e('loginPassword')}</div>
|
|
482
478
|
<div className='pd2b'>
|
|
483
479
|
<Input.Password
|
|
484
480
|
{...props}
|
|
@@ -575,7 +571,7 @@ export default class SettingCommon extends Component {
|
|
|
575
571
|
}
|
|
576
572
|
|
|
577
573
|
<div className='pd2b'>
|
|
578
|
-
<span className='inline-title mg1r'>{
|
|
574
|
+
<span className='inline-title mg1r'>{e('uiThemes')}</span>
|
|
579
575
|
<Select
|
|
580
576
|
onChange={this.handleChangeTerminalTheme}
|
|
581
577
|
popupMatchSelectWidth={false}
|
|
@@ -617,18 +613,18 @@ export default class SettingCommon extends Component {
|
|
|
617
613
|
})
|
|
618
614
|
}
|
|
619
615
|
</Select>
|
|
620
|
-
<Link className='mg1l' to={createEditLangLink(language)}>{
|
|
616
|
+
<Link className='mg1l' to={createEditLangLink(language)}>{e('edit')}</Link>
|
|
621
617
|
</div>
|
|
622
618
|
{this.renderRestart('languageChanged')}
|
|
623
|
-
<div className='pd1b'>{
|
|
619
|
+
<div className='pd1b'>{e('default')} {e('execWindows')}</div>
|
|
624
620
|
{
|
|
625
621
|
this.renderTextExec('execWindows')
|
|
626
622
|
}
|
|
627
|
-
<div className='pd1b'>{
|
|
623
|
+
<div className='pd1b'>{e('default')} {e('execMac')}</div>
|
|
628
624
|
{
|
|
629
625
|
this.renderTextExec('execMac')
|
|
630
626
|
}
|
|
631
|
-
<div className='pd1b'>{
|
|
627
|
+
<div className='pd1b'>{e('default')} {e('execLinux')}</div>
|
|
632
628
|
{
|
|
633
629
|
this.renderTextExec('execLinux')
|
|
634
630
|
}
|
|
@@ -17,11 +17,7 @@ import TabSettings from './tab-settings'
|
|
|
17
17
|
import TabThemes from './tab-themes'
|
|
18
18
|
import TabProfiles from './tab-profiles'
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
const m = prefix('common')
|
|
22
|
-
const t = prefix('terminalThemes')
|
|
23
|
-
const q = prefix('quickCommands')
|
|
24
|
-
const f = prefix('form')
|
|
20
|
+
const e = window.translate
|
|
25
21
|
|
|
26
22
|
export default class SettingModalWrap extends Component {
|
|
27
23
|
selectItem = (item) => {
|
|
@@ -72,32 +68,32 @@ export default class SettingModalWrap extends Component {
|
|
|
72
68
|
const items = [
|
|
73
69
|
{
|
|
74
70
|
key: settingMap.history,
|
|
75
|
-
label:
|
|
71
|
+
label: e(settingMap.history),
|
|
76
72
|
children: null
|
|
77
73
|
},
|
|
78
74
|
{
|
|
79
75
|
key: settingMap.bookmarks,
|
|
80
|
-
label:
|
|
76
|
+
label: e(settingMap.bookmarks),
|
|
81
77
|
children: null
|
|
82
78
|
},
|
|
83
79
|
{
|
|
84
80
|
key: settingMap.setting,
|
|
85
|
-
label:
|
|
81
|
+
label: e(settingMap.setting),
|
|
86
82
|
children: null
|
|
87
83
|
},
|
|
88
84
|
{
|
|
89
85
|
key: settingMap.terminalThemes,
|
|
90
|
-
label:
|
|
86
|
+
label: e('uiThemes'),
|
|
91
87
|
children: null
|
|
92
88
|
},
|
|
93
89
|
{
|
|
94
90
|
key: settingMap.quickCommands,
|
|
95
|
-
label:
|
|
91
|
+
label: e(settingMap.quickCommands),
|
|
96
92
|
children: null
|
|
97
93
|
},
|
|
98
94
|
{
|
|
99
95
|
key: settingMap.profiles,
|
|
100
|
-
label:
|
|
96
|
+
label: e(settingMap.profiles),
|
|
101
97
|
children: null
|
|
102
98
|
}
|
|
103
99
|
]
|
|
@@ -31,12 +31,7 @@ import HelpIcon from '../common/help-icon'
|
|
|
31
31
|
import './setting.styl'
|
|
32
32
|
|
|
33
33
|
const { Option } = Select
|
|
34
|
-
const
|
|
35
|
-
const e = prefix('setting')
|
|
36
|
-
const s = prefix('ssh')
|
|
37
|
-
const p = prefix('sftp')
|
|
38
|
-
const t = prefix('terminalThemes')
|
|
39
|
-
const f = prefix('form')
|
|
34
|
+
const e = window.translate
|
|
40
35
|
|
|
41
36
|
export default class SettingTerminal extends Component {
|
|
42
37
|
state = {
|
|
@@ -107,12 +102,13 @@ export default class SettingTerminal extends Component {
|
|
|
107
102
|
|
|
108
103
|
renderToggle = (name, extra = null) => {
|
|
109
104
|
const checked = !!this.props.config[name]
|
|
105
|
+
const txt = e(name)
|
|
110
106
|
return (
|
|
111
107
|
<div className='pd2b' key={'rt' + name}>
|
|
112
108
|
<Switch
|
|
113
109
|
checked={checked}
|
|
114
|
-
checkedChildren={
|
|
115
|
-
unCheckedChildren={
|
|
110
|
+
checkedChildren={txt}
|
|
111
|
+
unCheckedChildren={txt}
|
|
116
112
|
onChange={v => this.onChangeValue(v, name)}
|
|
117
113
|
/>
|
|
118
114
|
{isNumber(extra) ? null : extra}
|
|
@@ -207,7 +203,7 @@ export default class SettingTerminal extends Component {
|
|
|
207
203
|
const dataSource = [
|
|
208
204
|
{
|
|
209
205
|
value: '',
|
|
210
|
-
desc:
|
|
206
|
+
desc: e('default')
|
|
211
207
|
},
|
|
212
208
|
{
|
|
213
209
|
value: noTerminalBgValue,
|
|
@@ -423,7 +419,7 @@ export default class SettingTerminal extends Component {
|
|
|
423
419
|
: window.et.sessionLogPath
|
|
424
420
|
const tip = (
|
|
425
421
|
<div>
|
|
426
|
-
<span className='mg1r'>{
|
|
422
|
+
<span className='mg1r'>{e('supportRegexp')}</span>
|
|
427
423
|
<Link to={regexHelpLink}>wiki</Link>
|
|
428
424
|
</div>
|
|
429
425
|
)
|
|
@@ -431,7 +427,7 @@ export default class SettingTerminal extends Component {
|
|
|
431
427
|
<div className='form-wrap pd1y pd2x'>
|
|
432
428
|
<div className='pd1y font16 bold'>
|
|
433
429
|
<CodeOutlined className='mg1r' />
|
|
434
|
-
{
|
|
430
|
+
{e('terminal')} {e('settings')}
|
|
435
431
|
</div>
|
|
436
432
|
{
|
|
437
433
|
this.renderNumber('scrollback', {
|
|
@@ -459,17 +455,17 @@ export default class SettingTerminal extends Component {
|
|
|
459
455
|
this.renderNumber('fontSize', {
|
|
460
456
|
step: 1,
|
|
461
457
|
min: 9
|
|
462
|
-
}, `${
|
|
458
|
+
}, `${e('default')} ${e('fontSize')}`, 400)
|
|
463
459
|
}
|
|
464
460
|
<div className='pd2b'>
|
|
465
|
-
<span className='inline-title mg1r'>{
|
|
461
|
+
<span className='inline-title mg1r'>{e('default')} {e('fontFamily')}</span>
|
|
466
462
|
{
|
|
467
463
|
this.renderFontFamily()
|
|
468
464
|
}
|
|
469
465
|
</div>
|
|
470
466
|
<div className='pd2b'>
|
|
471
467
|
<div className='pd1b'>
|
|
472
|
-
<span className='inline-title mg1r'>{
|
|
468
|
+
<span className='inline-title mg1r'>{e('keywordsHighlight')}</span>
|
|
473
469
|
<HelpIcon
|
|
474
470
|
title={tip}
|
|
475
471
|
/>
|
|
@@ -496,7 +492,7 @@ export default class SettingTerminal extends Component {
|
|
|
496
492
|
this.renderCursorStyleSelect()
|
|
497
493
|
}
|
|
498
494
|
{this.renderToggle('saveTerminalLogToFile', (
|
|
499
|
-
<ShowItem to={terminalLogPath} className='mg1l'>{
|
|
495
|
+
<ShowItem to={terminalLogPath} className='mg1l'>{e('open')}</ShowItem>
|
|
500
496
|
))}
|
|
501
497
|
{this.renderToggle('addTimeStampToTermLog')}
|
|
502
498
|
{
|
|
@@ -505,7 +501,8 @@ export default class SettingTerminal extends Component {
|
|
|
505
501
|
'rightClickSelectsWord',
|
|
506
502
|
'pasteWhenContextMenu',
|
|
507
503
|
'copyWhenSelect',
|
|
508
|
-
'ctrlOrMetaOpenTerminalLink'
|
|
504
|
+
'ctrlOrMetaOpenTerminalLink',
|
|
505
|
+
'sftpPathFollowSsh'
|
|
509
506
|
].map(this.renderToggle)
|
|
510
507
|
}
|
|
511
508
|
<div className='pd1b'>{e('terminalBackSpaceMode')}</div>
|
|
@@ -3,8 +3,7 @@ import { Component } from '../common/react-subx'
|
|
|
3
3
|
import copy from 'json-deep-copy'
|
|
4
4
|
import { createTitleWithTag } from '../../common/create-title'
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
const e = prefix('setting')
|
|
6
|
+
const e = window.translate
|
|
8
7
|
const { SHOW_CHILD } = TreeSelect
|
|
9
8
|
|
|
10
9
|
export default class StartSessionSelect extends Component {
|
|
@@ -5,8 +5,7 @@ import {
|
|
|
5
5
|
settingMap
|
|
6
6
|
} from '../../common/constants'
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const c = prefix('control')
|
|
8
|
+
const e = window.translate
|
|
10
9
|
|
|
11
10
|
export default function TabHistory (props) {
|
|
12
11
|
const {
|
|
@@ -36,7 +35,7 @@ export default function TabHistory (props) {
|
|
|
36
35
|
{...formProps}
|
|
37
36
|
/>
|
|
38
37
|
)
|
|
39
|
-
: <div className='form-wrap pd2 aligncenter'>{
|
|
38
|
+
: <div className='form-wrap pd2 aligncenter'>{e('notFoundContent')}</div>
|
|
40
39
|
}
|
|
41
40
|
</SettingCol>
|
|
42
41
|
</div>
|
|
@@ -15,14 +15,11 @@ import {
|
|
|
15
15
|
} from '@ant-design/icons'
|
|
16
16
|
import { Component } from '../common/react-subx'
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
const e = prefix('form')
|
|
20
|
-
const t = prefix('terminalThemes')
|
|
21
|
-
const s = prefix('settingSync')
|
|
18
|
+
const e = window.translate
|
|
22
19
|
|
|
23
20
|
export class DataTransport extends Component {
|
|
24
21
|
render () {
|
|
25
|
-
const txt =
|
|
22
|
+
const txt = e('autoSync')
|
|
26
23
|
const {
|
|
27
24
|
store
|
|
28
25
|
} = this.props
|
|
@@ -34,7 +31,7 @@ export class DataTransport extends Component {
|
|
|
34
31
|
className='mg1r'
|
|
35
32
|
onClick={store.handleExportAllData}
|
|
36
33
|
>
|
|
37
|
-
{
|
|
34
|
+
{e('export')}
|
|
38
35
|
</Button>
|
|
39
36
|
<Upload
|
|
40
37
|
beforeUpload={store.importAll}
|
|
@@ -55,7 +52,7 @@ export class DataTransport extends Component {
|
|
|
55
52
|
unCheckedChildren={txt}
|
|
56
53
|
className='mg3l mg1r'
|
|
57
54
|
/>
|
|
58
|
-
<Tooltip title={
|
|
55
|
+
<Tooltip title={e('autoSyncTip')}>
|
|
59
56
|
<InfoCircleOutlined />
|
|
60
57
|
</Tooltip>
|
|
61
58
|
</div>
|
|
@@ -3,26 +3,14 @@ import {
|
|
|
3
3
|
} from '../../common/constants'
|
|
4
4
|
import DataSelectItem from './data-select-item'
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
const e = prefix('common')
|
|
8
|
-
const f = prefix('config')
|
|
9
|
-
const t = prefix('terminalThemes')
|
|
10
|
-
const q = prefix('quickCommands')
|
|
11
|
-
|
|
12
|
-
const translateMap = {
|
|
13
|
-
settings: f,
|
|
14
|
-
terminalThemes: t,
|
|
15
|
-
quickCommands: q,
|
|
16
|
-
bookmarks: e,
|
|
17
|
-
addressBookmarks: e
|
|
18
|
-
}
|
|
6
|
+
const e = window.translate
|
|
19
7
|
|
|
20
8
|
export default function DataSelect (props) {
|
|
21
9
|
const {
|
|
22
10
|
dataSyncSelected
|
|
23
11
|
} = props
|
|
24
|
-
function onChange (
|
|
25
|
-
const key =
|
|
12
|
+
function onChange (evt) {
|
|
13
|
+
const key = evt.target['data-key']
|
|
26
14
|
window.store.toggleDataSyncSelected(key)
|
|
27
15
|
}
|
|
28
16
|
return (
|
|
@@ -31,7 +19,7 @@ export default function DataSelect (props) {
|
|
|
31
19
|
Object.keys(syncDataMaps)
|
|
32
20
|
.map(d => {
|
|
33
21
|
const checked = dataSyncSelected.includes(d)
|
|
34
|
-
const title =
|
|
22
|
+
const title = e(d)
|
|
35
23
|
const boxProps = {
|
|
36
24
|
checked,
|
|
37
25
|
onChange,
|
|
@@ -16,11 +16,7 @@ import './sync.styl'
|
|
|
16
16
|
import HelpIcon from '../common/help-icon'
|
|
17
17
|
|
|
18
18
|
const FormItem = Form.Item
|
|
19
|
-
const
|
|
20
|
-
const e = prefix('form')
|
|
21
|
-
const ss = prefix('settingSync')
|
|
22
|
-
const s = prefix('setting')
|
|
23
|
-
const sh = prefix('ssh')
|
|
19
|
+
const e = window.translate
|
|
24
20
|
|
|
25
21
|
export default function SyncForm (props) {
|
|
26
22
|
const [form] = Form.useForm()
|
|
@@ -154,7 +150,7 @@ export default function SyncForm (props) {
|
|
|
154
150
|
: 'gist ID'
|
|
155
151
|
const tokenLabel = createLabel('token', desc)
|
|
156
152
|
const gistLabel = createLabel('gist', idDesc)
|
|
157
|
-
const syncPasswordName =
|
|
153
|
+
const syncPasswordName = e('encrypt') + ' ' + e('password')
|
|
158
154
|
const syncPasswordLabel = createLabel(syncPasswordName, '')
|
|
159
155
|
return (
|
|
160
156
|
<Form
|
|
@@ -207,7 +203,7 @@ export default function SyncForm (props) {
|
|
|
207
203
|
</FormItem>
|
|
208
204
|
{/* <FormItem
|
|
209
205
|
{...formItemLayout}
|
|
210
|
-
label={
|
|
206
|
+
label={e('autoSync')}
|
|
211
207
|
>
|
|
212
208
|
<Switch
|
|
213
209
|
checked={autoSync}
|
|
@@ -231,14 +227,14 @@ export default function SyncForm (props) {
|
|
|
231
227
|
className='mg1r'
|
|
232
228
|
loading={isSyncingSetting}
|
|
233
229
|
icon='swap'
|
|
234
|
-
>{
|
|
230
|
+
>{e('sync')}</Button> */}
|
|
235
231
|
<Button
|
|
236
232
|
type='dashed'
|
|
237
233
|
onClick={upload}
|
|
238
234
|
disabled={disabled()}
|
|
239
235
|
className='mg1r mg1b'
|
|
240
236
|
icon={<ArrowUpOutlined />}
|
|
241
|
-
>{
|
|
237
|
+
>{e('uploadSettings')}
|
|
242
238
|
</Button>
|
|
243
239
|
<Button
|
|
244
240
|
type='dashed'
|
|
@@ -246,7 +242,7 @@ export default function SyncForm (props) {
|
|
|
246
242
|
disabled={disabled()}
|
|
247
243
|
className='mg1r mg1b sync-btn-down'
|
|
248
244
|
icon={<ArrowDownOutlined />}
|
|
249
|
-
>{
|
|
245
|
+
>{e('downloadSettings')}
|
|
250
246
|
</Button>
|
|
251
247
|
<Button
|
|
252
248
|
type='dashed'
|
|
@@ -254,11 +250,11 @@ export default function SyncForm (props) {
|
|
|
254
250
|
disabled={disabled()}
|
|
255
251
|
className='mg1r mg1b sync-btn-clear'
|
|
256
252
|
icon={<ClearOutlined />}
|
|
257
|
-
>{
|
|
253
|
+
>{e('clear')}
|
|
258
254
|
</Button>
|
|
259
255
|
</p>
|
|
260
256
|
<p>
|
|
261
|
-
{
|
|
257
|
+
{e('lastSyncTime')}: {timeFormatted}
|
|
262
258
|
</p>
|
|
263
259
|
<p>
|
|
264
260
|
{renderGistUrl()}
|
|
@@ -14,8 +14,7 @@ import {
|
|
|
14
14
|
} from '../../common/constants'
|
|
15
15
|
import postMessage from '../../common/post-msg'
|
|
16
16
|
|
|
17
|
-
const
|
|
18
|
-
const e = prefix('sftp')
|
|
17
|
+
const e = window.translate
|
|
19
18
|
|
|
20
19
|
function formatTimeAuto (strOrDigit) {
|
|
21
20
|
if (isString(strOrDigit)) {
|
|
@@ -36,9 +36,7 @@ import { filesize } from 'filesize'
|
|
|
36
36
|
import { createTransferProps } from './transfer-common'
|
|
37
37
|
import generate from '../../common/uid'
|
|
38
38
|
|
|
39
|
-
const
|
|
40
|
-
const e = prefix('sftp')
|
|
41
|
-
const m = prefix('menu')
|
|
39
|
+
const e = window.translate
|
|
42
40
|
|
|
43
41
|
const computePos = (e) => {
|
|
44
42
|
return {
|
|
@@ -945,7 +943,7 @@ export default class FileSection extends React.Component {
|
|
|
945
943
|
const shouldShowSelectedMenu = id &&
|
|
946
944
|
len > 1 &&
|
|
947
945
|
some(selectedFiles, d => d.id === id)
|
|
948
|
-
const delTxt = shouldShowSelectedMenu ? `${e('deleteAll')}(${len})` :
|
|
946
|
+
const delTxt = shouldShowSelectedMenu ? `${e('deleteAll')}(${len})` : e('del')
|
|
949
947
|
const canPaste = hasFileInClipboardText()
|
|
950
948
|
const showEdit = !isDirectory && id &&
|
|
951
949
|
size < maxEditFileSize
|
|
@@ -1018,20 +1016,20 @@ export default class FileSection extends React.Component {
|
|
|
1018
1016
|
res.push({
|
|
1019
1017
|
func: 'onCopy',
|
|
1020
1018
|
icon: 'CopyOutlined',
|
|
1021
|
-
text:
|
|
1019
|
+
text: e('copy'),
|
|
1022
1020
|
subText: `${ctrlOrCmd}+c`
|
|
1023
1021
|
})
|
|
1024
1022
|
res.push({
|
|
1025
1023
|
func: 'onCut',
|
|
1026
1024
|
icon: 'FileExcelOutlined',
|
|
1027
|
-
text:
|
|
1025
|
+
text: e('cut'),
|
|
1028
1026
|
subText: `${ctrlOrCmd}+x`
|
|
1029
1027
|
})
|
|
1030
1028
|
}
|
|
1031
1029
|
res.push({
|
|
1032
1030
|
func: 'onPaste',
|
|
1033
1031
|
icon: 'CopyOutlined',
|
|
1034
|
-
text:
|
|
1032
|
+
text: e('paste'),
|
|
1035
1033
|
disabled: !canPaste,
|
|
1036
1034
|
subText: `${ctrlOrCmd}+v`
|
|
1037
1035
|
})
|
|
@@ -1044,7 +1042,7 @@ export default class FileSection extends React.Component {
|
|
|
1044
1042
|
res.push({
|
|
1045
1043
|
func: 'onCopyPath',
|
|
1046
1044
|
icon: 'CopyOutlined',
|
|
1047
|
-
text:
|
|
1045
|
+
text: e('copyFilePath')
|
|
1048
1046
|
})
|
|
1049
1047
|
}
|
|
1050
1048
|
if (enableSsh !== false || isLocal) {
|
|
@@ -13,8 +13,7 @@ import renderPermission from './permission-render'
|
|
|
13
13
|
import postMessage from '../../common/post-msg'
|
|
14
14
|
import FileIcon from './file-icon'
|
|
15
15
|
|
|
16
|
-
const
|
|
17
|
-
const e = prefix('sftp')
|
|
16
|
+
const e = window.translate
|
|
18
17
|
const formatTime = time
|
|
19
18
|
|
|
20
19
|
export default class FileMode extends React.PureComponent {
|