@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.
@@ -39,5 +39,6 @@ export default {
39
39
  initDefaultTabOnStart: true,
40
40
  screenReaderMode: false,
41
41
  autoRefreshWhenSwitchToSftp: false,
42
- hideSshConfig: false
42
+ hideSshConfig: false,
43
+ addTimeStampToTermLog: false
43
44
  }
@@ -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
  )
@@ -39,7 +39,7 @@ class ShortcutControl extends React.PureComponent {
39
39
  e.stopPropagation()
40
40
  const x = document.querySelector('.icon-split')
41
41
  x && x.click()
42
- }, 300)
42
+ }, 1200)
43
43
 
44
44
  zoominShortcut = (e) => {
45
45
  e.stopPropagation()
@@ -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.map((c, i) => {
40
- const propName = isMac ? 'shortcutMac' : 'shortcut'
41
- const name = c.name + '_' + propName
42
- return {
43
- index: i + 1,
44
- name,
45
- readonly: c.readonly,
46
- shortcut: c.readonly ? c[propName] : (shortcuts[name] || c[propName])
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
- const sel = this.term.getSelection()
237
- if (sel) {
238
- e.stopPropagation()
239
- e.preventDefault()
240
- this.copySelectionToClipboard()
241
- return false
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: this.state.saveTerminalLogToFile,
352
- pid: statePid
353
- })
354
- postMessage({
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>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electerm/electerm-react",
3
- "version": "1.37.1",
3
+ "version": "1.37.6",
4
4
  "description": "react components src for electerm",
5
5
  "main": "./client/components/main/main.jsx",
6
6
  "license": "MIT",