@electerm/electerm-react 1.37.1 → 1.37.6
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/default-setting.js +2 -1
- package/client/components/setting-panel/setting-terminal.jsx +4 -3
- package/client/components/shortcuts/shortcut-control.jsx +1 -1
- package/client/components/shortcuts/shortcut-handler.js +3 -3
- package/client/components/shortcuts/shortcuts.jsx +12 -10
- package/client/components/terminal/index.jsx +18 -29
- package/client/components/terminal/terminal-apis.js +8 -0
- package/client/components/terminal-info/base.jsx +49 -6
- package/package.json +1 -1
|
@@ -475,8 +475,12 @@ export default class SettingTerminal extends Component {
|
|
|
475
475
|
{
|
|
476
476
|
this.renderCursorStyleSelect()
|
|
477
477
|
}
|
|
478
|
+
{this.renderToggle('saveTerminalLogToFile', (
|
|
479
|
+
<ShowItem to={terminalLogPath} className='mg1l'>{p('open')}</ShowItem>
|
|
480
|
+
))}
|
|
478
481
|
{
|
|
479
482
|
[
|
|
483
|
+
'addTimeStampToTermLog',
|
|
480
484
|
'cursorBlink',
|
|
481
485
|
'rightClickSelectsWord',
|
|
482
486
|
'pasteWhenContextMenu',
|
|
@@ -484,9 +488,6 @@ export default class SettingTerminal extends Component {
|
|
|
484
488
|
'ctrlOrMetaOpenTerminalLink'
|
|
485
489
|
].map(this.renderToggle)
|
|
486
490
|
}
|
|
487
|
-
{this.renderToggle('saveTerminalLogToFile', (
|
|
488
|
-
<ShowItem to={terminalLogPath} className='mg1l'>{p('open')}</ShowItem>
|
|
489
|
-
))}
|
|
490
491
|
{this.renderReset()}
|
|
491
492
|
</div>
|
|
492
493
|
)
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
isMacJs
|
|
5
5
|
} from '../../common/constants'
|
|
6
6
|
|
|
7
|
-
function buildConfig (config) {
|
|
8
|
-
const defs = shortcutsDefaultsGen()
|
|
7
|
+
function buildConfig (config, filter = d => d) {
|
|
8
|
+
const defs = shortcutsDefaultsGen().filter(filter)
|
|
9
9
|
const { shortcuts = {} } = config
|
|
10
10
|
return defs.reduce((p, c) => {
|
|
11
11
|
const propName = isMacJs ? 'shortcutMac' : 'shortcut'
|
|
@@ -45,7 +45,7 @@ export function shortcutExtend (Cls) {
|
|
|
45
45
|
(shiftKey ? 'shift+' : '') +
|
|
46
46
|
(altKey ? 'alt+' : '') +
|
|
47
47
|
codeK.toLowerCase()
|
|
48
|
-
const shortcutsConfig = buildConfig(this.props.config)
|
|
48
|
+
const shortcutsConfig = buildConfig(this.props.config, d => !d.readonly)
|
|
49
49
|
const keys = Object.keys(shortcutsConfig)
|
|
50
50
|
const len = keys.length
|
|
51
51
|
for (let i = 0; i < len; i++) {
|
|
@@ -36,16 +36,18 @@ export default class Shortcuts extends Component {
|
|
|
36
36
|
|
|
37
37
|
getData () {
|
|
38
38
|
const { shortcuts = {} } = this.props.store.config
|
|
39
|
-
return shortcutsDefaults
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
return shortcutsDefaults
|
|
40
|
+
.filter(g => !g.readonly)
|
|
41
|
+
.map((c, i) => {
|
|
42
|
+
const propName = isMac ? 'shortcutMac' : 'shortcut'
|
|
43
|
+
const name = c.name + '_' + propName
|
|
44
|
+
return {
|
|
45
|
+
index: i + 1,
|
|
46
|
+
name,
|
|
47
|
+
readonly: c.readonly,
|
|
48
|
+
shortcut: c.readonly ? c[propName] : (shortcuts[name] || c[propName])
|
|
49
|
+
}
|
|
50
|
+
})
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
getKeysTakenData = () => {
|
|
@@ -78,6 +78,7 @@ class Term extends Component {
|
|
|
78
78
|
promoteModalVisible: false,
|
|
79
79
|
savePassword: false,
|
|
80
80
|
saveTerminalLogToFile: !!this.props.config.saveTerminalLogToFile,
|
|
81
|
+
addTimeStampToTermLog: !!this.props.config.addTimeStampToTermLog,
|
|
81
82
|
tempPassword: '',
|
|
82
83
|
passType: 'password',
|
|
83
84
|
zmodemTransfer: null,
|
|
@@ -232,15 +233,15 @@ class Term extends Component {
|
|
|
232
233
|
this.term.selectAll()
|
|
233
234
|
}
|
|
234
235
|
|
|
235
|
-
copyShortcut = (e) => {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
236
|
+
// copyShortcut = (e) => {
|
|
237
|
+
// const sel = this.term.getSelection()
|
|
238
|
+
// if (sel) {
|
|
239
|
+
// e.stopPropagation()
|
|
240
|
+
// e.preventDefault()
|
|
241
|
+
// this.copySelectionToClipboard()
|
|
242
|
+
// return false
|
|
243
|
+
// }
|
|
244
|
+
// }
|
|
244
245
|
|
|
245
246
|
searchShortcut = (e) => {
|
|
246
247
|
e.stopPropagation()
|
|
@@ -274,6 +275,7 @@ class Term extends Component {
|
|
|
274
275
|
action,
|
|
275
276
|
encode,
|
|
276
277
|
saveTerminalLogToFile,
|
|
278
|
+
addTimeStampToTermLog,
|
|
277
279
|
type,
|
|
278
280
|
cmd,
|
|
279
281
|
activeSplitId,
|
|
@@ -348,17 +350,10 @@ class Term extends Component {
|
|
|
348
350
|
) {
|
|
349
351
|
postMessage({
|
|
350
352
|
action: commonActions.returnTermLogState,
|
|
351
|
-
state:
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
action: commonActions.returnTermLogState,
|
|
356
|
-
state: this.state.saveTerminalLogToFile,
|
|
357
|
-
pid: statePid
|
|
358
|
-
})
|
|
359
|
-
postMessage({
|
|
360
|
-
action: commonActions.returnTermLogState,
|
|
361
|
-
state: this.state.saveTerminalLogToFile,
|
|
353
|
+
state: {
|
|
354
|
+
saveTerminalLogToFile: this.state.saveTerminalLogToFile,
|
|
355
|
+
addTimeStampToTermLog: this.state.addTimeStampToTermLog
|
|
356
|
+
},
|
|
362
357
|
pid: statePid
|
|
363
358
|
})
|
|
364
359
|
} else if (
|
|
@@ -366,6 +361,7 @@ class Term extends Component {
|
|
|
366
361
|
pid === statePid
|
|
367
362
|
) {
|
|
368
363
|
this.setState({
|
|
364
|
+
addTimeStampToTermLog,
|
|
369
365
|
saveTerminalLogToFile
|
|
370
366
|
})
|
|
371
367
|
}
|
|
@@ -674,14 +670,6 @@ class Term extends Component {
|
|
|
674
670
|
window.store.toggleTerminalSearch()
|
|
675
671
|
}
|
|
676
672
|
|
|
677
|
-
// onLineFeed = e => {
|
|
678
|
-
// // console.log(e, 'onLineFeed')
|
|
679
|
-
// }
|
|
680
|
-
|
|
681
|
-
onTitleChange = e => {
|
|
682
|
-
log.debug(e, 'title change')
|
|
683
|
-
}
|
|
684
|
-
|
|
685
673
|
onSearchResultsChange = ({ resultIndex, resultCount }) => {
|
|
686
674
|
window.store.storeAssign({
|
|
687
675
|
termSearchMatchCount: resultCount,
|
|
@@ -839,7 +827,7 @@ class Term extends Component {
|
|
|
839
827
|
term.loadAddon(this.fitAddon)
|
|
840
828
|
term.loadAddon(this.searchAddon)
|
|
841
829
|
// term.onLineFeed(this.onLineFeed)
|
|
842
|
-
term.onTitleChange(this.onTitleChange)
|
|
830
|
+
// term.onTitleChange(this.onTitleChange)
|
|
843
831
|
term.onSelectionChange(this.onSelection)
|
|
844
832
|
this.loadState(term)
|
|
845
833
|
term.open(document.getElementById(id), true)
|
|
@@ -963,6 +951,7 @@ class Term extends Component {
|
|
|
963
951
|
...extra,
|
|
964
952
|
logName,
|
|
965
953
|
...pick(config, [
|
|
954
|
+
'addTimeStampToTermLog',
|
|
966
955
|
'keepaliveInterval',
|
|
967
956
|
'keepaliveCountMax',
|
|
968
957
|
'execWindows',
|
|
@@ -37,3 +37,11 @@ export function toggleTerminalLog (pid, sessionId) {
|
|
|
37
37
|
action: 'toggle-terminal-log'
|
|
38
38
|
})
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
export function toggleTerminalLogTimestamp (pid, sessionId) {
|
|
42
|
+
return fetch({
|
|
43
|
+
pid,
|
|
44
|
+
sessionId,
|
|
45
|
+
action: 'toggle-terminal-log-timestamp'
|
|
46
|
+
})
|
|
47
|
+
}
|
|
@@ -11,14 +11,15 @@ import {
|
|
|
11
11
|
} from 'antd'
|
|
12
12
|
import ShowItem from '../common/show-item'
|
|
13
13
|
import postMsg from '../../common/post-msg'
|
|
14
|
-
import { toggleTerminalLog } from '../terminal/terminal-apis'
|
|
14
|
+
import { toggleTerminalLog, toggleTerminalLogTimestamp } from '../terminal/terminal-apis'
|
|
15
15
|
|
|
16
16
|
const { prefix } = window
|
|
17
17
|
const st = prefix('setting')
|
|
18
18
|
|
|
19
19
|
export default class TerminalInfoBase extends Component {
|
|
20
20
|
state = {
|
|
21
|
-
saveTerminalLogToFile: false
|
|
21
|
+
saveTerminalLogToFile: false,
|
|
22
|
+
addTimeStampToTermLog: false
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
componentDidMount () {
|
|
@@ -30,8 +31,31 @@ export default class TerminalInfoBase extends Component {
|
|
|
30
31
|
this.exit()
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
handleToggleTimestamp = () => {
|
|
35
|
+
const { saveTerminalLogToFile, addTimeStampToTermLog } = this.state
|
|
36
|
+
const {
|
|
37
|
+
pid,
|
|
38
|
+
sessionId
|
|
39
|
+
} = this.props
|
|
40
|
+
toggleTerminalLogTimestamp(
|
|
41
|
+
pid,
|
|
42
|
+
sessionId
|
|
43
|
+
)
|
|
44
|
+
const nv = !addTimeStampToTermLog
|
|
45
|
+
this.setState({
|
|
46
|
+
addTimeStampToTermLog: nv
|
|
47
|
+
})
|
|
48
|
+
postMsg({
|
|
49
|
+
action: commonActions.setTermLogState,
|
|
50
|
+
pid,
|
|
51
|
+
addTimeStampToTermLog: nv,
|
|
52
|
+
saveTerminalLogToFile,
|
|
53
|
+
sessionId
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
|
|
33
57
|
handleToggle = () => {
|
|
34
|
-
const { saveTerminalLogToFile } = this.state
|
|
58
|
+
const { saveTerminalLogToFile, addTimeStampToTermLog } = this.state
|
|
35
59
|
const {
|
|
36
60
|
pid,
|
|
37
61
|
sessionId
|
|
@@ -48,6 +72,7 @@ export default class TerminalInfoBase extends Component {
|
|
|
48
72
|
action: commonActions.setTermLogState,
|
|
49
73
|
pid,
|
|
50
74
|
saveTerminalLogToFile: nv,
|
|
75
|
+
addTimeStampToTermLog,
|
|
51
76
|
sessionId
|
|
52
77
|
})
|
|
53
78
|
}
|
|
@@ -62,9 +87,7 @@ export default class TerminalInfoBase extends Component {
|
|
|
62
87
|
action === commonActions.returnTermLogState &&
|
|
63
88
|
this.props.pid === ppid
|
|
64
89
|
) {
|
|
65
|
-
this.setState(
|
|
66
|
-
saveTerminalLogToFile: state
|
|
67
|
-
})
|
|
90
|
+
this.setState(state)
|
|
68
91
|
window.removeEventListener('message', this.onEvent)
|
|
69
92
|
}
|
|
70
93
|
}
|
|
@@ -85,6 +108,22 @@ export default class TerminalInfoBase extends Component {
|
|
|
85
108
|
window.removeEventListener('message', this.onEvent)
|
|
86
109
|
}
|
|
87
110
|
|
|
111
|
+
renderTimestamp () {
|
|
112
|
+
const { saveTerminalLogToFile, addTimeStampToTermLog } = this.state
|
|
113
|
+
if (!saveTerminalLogToFile) {
|
|
114
|
+
return null
|
|
115
|
+
}
|
|
116
|
+
const name = st('addTimeStampToTermLog')
|
|
117
|
+
return (
|
|
118
|
+
<Switch
|
|
119
|
+
checkedChildren={name}
|
|
120
|
+
unCheckedChildren={name}
|
|
121
|
+
checked={addTimeStampToTermLog}
|
|
122
|
+
onChange={this.handleToggleTimestamp}
|
|
123
|
+
/>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
88
127
|
render () {
|
|
89
128
|
const {
|
|
90
129
|
id,
|
|
@@ -110,7 +149,11 @@ export default class TerminalInfoBase extends Component {
|
|
|
110
149
|
unCheckedChildren={name}
|
|
111
150
|
checked={saveTerminalLogToFile}
|
|
112
151
|
onChange={this.handleToggle}
|
|
152
|
+
className='mg1r'
|
|
113
153
|
/>
|
|
154
|
+
{
|
|
155
|
+
this.renderTimestamp()
|
|
156
|
+
}
|
|
114
157
|
</span>
|
|
115
158
|
</div>
|
|
116
159
|
<p><b>log:</b> {to}</p>
|