show mshellversion/uname in remote:show

This commit is contained in:
sawka
2022-09-21 23:31:03 -07:00
parent f3e61fb41d
commit c63108a841
3 changed files with 32 additions and 8 deletions
+30 -6
View File
@@ -711,6 +711,23 @@ class InfoMsg extends React.Component<{}, {}> {
}
}
getRemoteTypeStr(remote : RemoteType) : string {
let mshellStr = "";
if (!isBlank(remote.mshellversion)) {
mshellStr = "mshell=" + remote.mshellversion;
}
if (!isBlank(remote.uname)) {
if (mshellStr != "") {
mshellStr += " ";
}
mshellStr += "uname=\"" + remote.uname + "\"";
}
if (mshellStr == "") {
return remote.remotetype;
}
return remote.remotetype + " (" + mshellStr + ")";
}
render() {
let model = GlobalModel;
let inputModel = model.inputModel;
@@ -752,7 +769,7 @@ class InfoMsg extends React.Component<{}, {}> {
</div>
<div className="remote-field">
<div className="remote-field-def"> type</div>
<div className="remote-field-val">{remote.remotetype}</div>
<div className="remote-field-val">{this.getRemoteTypeStr(remote)}</div>
</div>
<div className="remote-field">
<div className="remote-field-def"> alias</div>
@@ -1517,7 +1534,7 @@ class AddRemoteModal extends React.Component<{}, {}> {
<div className="message-footer">
<button onClick={this.handleModalClose} className="button">Cancel</button>
<div className="spacer"></div>
<button onClick={this.handleAddRemote} className="button is-primary">
<button className="button is-primary">
<span className="icon">
<i className="fa fa-plus"/>
</span>
@@ -1538,6 +1555,13 @@ class RemoteModal extends React.Component<{}, {}> {
GlobalModel.remotesModalOpen.set(false);
})();
}
@boundMethod
handleAddRemote() : void {
mobx.action(() => {
GlobalModel.addRemoteModalOpen.set(true);
})();
}
render() {
let model = GlobalModel;
@@ -1562,7 +1586,7 @@ class RemoteModal extends React.Component<{}, {}> {
</thead>
<tbody>
<For each="remote" of={remotes}>
<tr>
<tr key={remote.remoteid}>
<td className="status-cell">
<div><RemoteStatusLight status={remote.status}/></div>
</td>
@@ -1617,12 +1641,12 @@ class Main extends React.Component<{}, {}> {
<MainSideBar/>
<SessionView/>
</div>
<If condition={GlobalModel.remotesModalOpen.get()}>
<RemoteModal/>
</If>
<If condition={GlobalModel.addRemoteModalOpen.get()}>
<AddRemoteModal/>
</If>
<If condition={GlobalModel.remotesModalOpen.get() && !GlobalModel.addRemoteModalOpen.get()}>
<RemoteModal/>
</If>
</div>
);
}
-2
View File
@@ -1140,7 +1140,6 @@ class InputModel {
if (this.remoteTermWrap != null) {
this.remoteTermWrap.dispose();
this.remoteTermWrap = null;
console.log("dispose termwrap");
}
if (remoteId != null) {
let elem = document.getElementById("term-remote");
@@ -1150,7 +1149,6 @@ class InputModel {
else {
let termOpts = {rows: RemotePtyRows, cols: RemotePtyCols, flexrows: false, maxptysize: 64*1024};
this.remoteTermWrap = new TermWrap(elem, {remoteId: remoteId}, RemotePtyRows, termOpts, null, (e) => { this.termKeyHandler(remoteId, e)});
console.log("make termwrap", this.remoteTermWrap);
}
}
}
+2
View File
@@ -85,6 +85,8 @@ type RemoteType = {
connectmode : string,
remoteidx : number,
archived : boolean,
uname : string,
mshellversion : string,
remove? : boolean,
};