@electerm/electerm-react 1.39.88 → 1.39.103
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 +6 -3
- 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 +8 -3
- package/client/components/auth/login.styl +7 -1
- package/client/components/batch-op/batch-op.jsx +18 -36
- package/client/components/bookmark-form/form-ssh-common.jsx +6 -9
- 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 +4 -7
- 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 +3 -5
- package/client/components/bookmark-form/render-auth-ssh.jsx +2 -3
- package/client/components/bookmark-form/render-connection-hopping.jsx +9 -11
- package/client/components/bookmark-form/render-delayed-scripts.jsx +2 -3
- package/client/components/bookmark-form/render-ssh-tunnel.jsx +9 -12
- package/client/components/bookmark-form/serial-form-ui.jsx +5 -9
- 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 +3 -5
- package/client/components/bookmark-form/web-form-ui.jsx +3 -5
- 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 +2 -3
- 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 +6 -7
- 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 +17 -6
- package/client/components/session/session.styl +5 -1
- 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 +71 -48
- 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 +32 -22
- 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 +32 -5
- package/client/store/sync.js +10 -6
- package/client/store/system-menu.js +4 -6
- package/client/store/terminal-theme.js +2 -4
- package/package.json +1 -1
|
@@ -19,10 +19,7 @@ import {
|
|
|
19
19
|
|
|
20
20
|
const FormItem = Form.Item
|
|
21
21
|
const { Option } = Select
|
|
22
|
-
const
|
|
23
|
-
const e = prefix('form')
|
|
24
|
-
const t = prefix('quickCommands')
|
|
25
|
-
const s = prefix('setting')
|
|
22
|
+
const e = window.translate
|
|
26
23
|
const shortcutsDefaults = shortcutsDefaultsGen()
|
|
27
24
|
|
|
28
25
|
export default function QuickCommandForm (props) {
|
|
@@ -38,7 +35,6 @@ export default function QuickCommandForm (props) {
|
|
|
38
35
|
setShortcut(value)
|
|
39
36
|
}
|
|
40
37
|
const handleClear = () => {
|
|
41
|
-
console.log('handleClear')
|
|
42
38
|
form.setFieldsValue({
|
|
43
39
|
shortcut: ''
|
|
44
40
|
})
|
|
@@ -107,10 +103,10 @@ export default function QuickCommandForm (props) {
|
|
|
107
103
|
store.addQuickCommand(update1)
|
|
108
104
|
store.setSettingItem({
|
|
109
105
|
id: '',
|
|
110
|
-
name:
|
|
106
|
+
name: e('newQuickCommand')
|
|
111
107
|
})
|
|
112
108
|
}
|
|
113
|
-
message.success(
|
|
109
|
+
message.success(e('saved'))
|
|
114
110
|
}
|
|
115
111
|
const initialValues = formData
|
|
116
112
|
if (!initialValues.labels) {
|
|
@@ -123,7 +119,6 @@ export default function QuickCommandForm (props) {
|
|
|
123
119
|
delay: 100
|
|
124
120
|
}]
|
|
125
121
|
}
|
|
126
|
-
console.log('initialValues', initialValues, formData)
|
|
127
122
|
const editorProps = {
|
|
128
123
|
data: {
|
|
129
124
|
name: uid,
|
|
@@ -144,7 +139,7 @@ export default function QuickCommandForm (props) {
|
|
|
144
139
|
initialValues={initialValues}
|
|
145
140
|
>
|
|
146
141
|
<FormItem
|
|
147
|
-
label={
|
|
142
|
+
label={e('quickCommandName')}
|
|
148
143
|
rules={[{
|
|
149
144
|
max: 60, message: '60 chars max'
|
|
150
145
|
}, {
|
|
@@ -161,7 +156,7 @@ export default function QuickCommandForm (props) {
|
|
|
161
156
|
{renderQm()}
|
|
162
157
|
<FormItem
|
|
163
158
|
name='labels'
|
|
164
|
-
label={
|
|
159
|
+
label={e('label')}
|
|
165
160
|
>
|
|
166
161
|
<Select
|
|
167
162
|
mode='tags'
|
|
@@ -178,7 +173,7 @@ export default function QuickCommandForm (props) {
|
|
|
178
173
|
</Select>
|
|
179
174
|
</FormItem>
|
|
180
175
|
<FormItem
|
|
181
|
-
label={
|
|
176
|
+
label={e('settingShortcuts')}
|
|
182
177
|
name='shortcut'
|
|
183
178
|
>
|
|
184
179
|
<div>
|
|
@@ -189,7 +184,7 @@ export default function QuickCommandForm (props) {
|
|
|
189
184
|
</div>
|
|
190
185
|
</FormItem>
|
|
191
186
|
<FormItem
|
|
192
|
-
label={
|
|
187
|
+
label={e('inputOnly')}
|
|
193
188
|
name='inputOnly'
|
|
194
189
|
valuePropName='checked'
|
|
195
190
|
>
|
|
@@ -14,8 +14,7 @@ import { useRef } from 'react'
|
|
|
14
14
|
|
|
15
15
|
const FormItem = Form.Item
|
|
16
16
|
const FormList = Form.List
|
|
17
|
-
const
|
|
18
|
-
const t = prefix('quickCommands')
|
|
17
|
+
const e = window.translate
|
|
19
18
|
|
|
20
19
|
export default function renderQm () {
|
|
21
20
|
const focused = useRef(0)
|
|
@@ -34,7 +33,7 @@ export default function renderQm () {
|
|
|
34
33
|
min={1}
|
|
35
34
|
step={1}
|
|
36
35
|
max={65535}
|
|
37
|
-
addonBefore={
|
|
36
|
+
addonBefore={e('delay')}
|
|
38
37
|
placeholder={100}
|
|
39
38
|
className='compact-input'
|
|
40
39
|
/>
|
|
@@ -46,8 +45,8 @@ export default function renderQm () {
|
|
|
46
45
|
className='mg2x'
|
|
47
46
|
>
|
|
48
47
|
<Input.TextArea
|
|
49
|
-
|
|
50
|
-
placeholder={
|
|
48
|
+
autoSize={{ minRows: 1 }}
|
|
49
|
+
placeholder={e('quickCommand')}
|
|
51
50
|
className='compact-input qm-input'
|
|
52
51
|
onFocus={() => {
|
|
53
52
|
focused.current = i
|
|
@@ -100,7 +99,7 @@ export default function renderQm () {
|
|
|
100
99
|
})
|
|
101
100
|
const label = (
|
|
102
101
|
<div>
|
|
103
|
-
{
|
|
102
|
+
{e('commonCommands')}
|
|
104
103
|
<HelpIcon
|
|
105
104
|
title={cmds}
|
|
106
105
|
/>
|
|
@@ -127,7 +126,7 @@ export default function renderQm () {
|
|
|
127
126
|
block
|
|
128
127
|
icon={<PlusOutlined />}
|
|
129
128
|
>
|
|
130
|
-
{
|
|
129
|
+
{e('quickCommand')}
|
|
131
130
|
</Button>
|
|
132
131
|
</FormItem>
|
|
133
132
|
</div>
|
|
@@ -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'
|
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
SearchOutlined,
|
|
14
14
|
FullscreenOutlined,
|
|
15
15
|
PaperClipOutlined,
|
|
16
|
-
CloseOutlined
|
|
16
|
+
CloseOutlined,
|
|
17
|
+
QuestionCircleOutlined
|
|
17
18
|
} from '@ant-design/icons'
|
|
18
19
|
import {
|
|
19
20
|
Tooltip
|
|
@@ -37,6 +38,7 @@ import ResizeWrap from '../common/resize-wrap'
|
|
|
37
38
|
import safeName from '../../common/safe-name'
|
|
38
39
|
import TerminalInfoContent from '../terminal-info/content'
|
|
39
40
|
import uid from '../../common/id-with-stamp'
|
|
41
|
+
import Link from '../common/external-link'
|
|
40
42
|
import postMessage from '../../common/post-msg'
|
|
41
43
|
import './session.styl'
|
|
42
44
|
|
|
@@ -60,9 +62,7 @@ const getPrevTerminal = terminals => {
|
|
|
60
62
|
return last(terminals)
|
|
61
63
|
}
|
|
62
64
|
|
|
63
|
-
const
|
|
64
|
-
const e = prefix('ssh')
|
|
65
|
-
const m = prefix('menu')
|
|
65
|
+
const e = window.translate
|
|
66
66
|
|
|
67
67
|
export default class SessionWrapper extends Component {
|
|
68
68
|
constructor (props) {
|
|
@@ -543,7 +543,18 @@ export default class SessionWrapper extends Component {
|
|
|
543
543
|
if (isSsh || isLocal) {
|
|
544
544
|
controls.push(isSsh ? paneMap.sftp : paneMap.fileManager)
|
|
545
545
|
}
|
|
546
|
-
const checkTxt =
|
|
546
|
+
const checkTxt = (
|
|
547
|
+
<div>
|
|
548
|
+
<span>{e('sftpPathFollowSsh')}</span>
|
|
549
|
+
<span className='mg1l color-red'>[Beta]</span>
|
|
550
|
+
<Link
|
|
551
|
+
to='https://github.com/electerm/electerm/wiki/Warning-about-sftp-follow-ssh-path-function'
|
|
552
|
+
className='mg1l'
|
|
553
|
+
>
|
|
554
|
+
Wiki <QuestionCircleOutlined />
|
|
555
|
+
</Link>
|
|
556
|
+
</div>
|
|
557
|
+
)
|
|
547
558
|
const checkProps = {
|
|
548
559
|
onClick: this.toggleCheckSftpPathFollowSsh,
|
|
549
560
|
className: classnames(
|
|
@@ -615,7 +626,7 @@ export default class SessionWrapper extends Component {
|
|
|
615
626
|
<CloseSquareFilled
|
|
616
627
|
className='mg1r icon-trash font16 iblock pointer spliter'
|
|
617
628
|
onClick={() => this.delSplit()}
|
|
618
|
-
title={
|
|
629
|
+
title={e('del')}
|
|
619
630
|
/>
|
|
620
631
|
)
|
|
621
632
|
}
|
|
@@ -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>
|