diff --git a/src/main.tsx b/src/main.tsx
index 325fa378..d4e69b74 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -768,6 +768,11 @@ class InfoRemoteShow extends React.Component<{}, {}> {
GlobalCommandRunner.installCancelRemote(remoteId);
}
+ @boundMethod
+ editRemote(remoteId : string) {
+ GlobalCommandRunner.openEditRemote(remoteId);
+ }
+
renderConnectButton(remote : RemoteType) : any {
if (remote.status == "connected" || remote.status == "connecting") {
return
this.disconnectRemote(remote.remoteid)} className="text-button disconnect-button">[disconnect remote]
@@ -777,6 +782,10 @@ class InfoRemoteShow extends React.Component<{}, {}> {
}
}
+ renderEditButton(remote : RemoteType) : any {
+ return this.editRemote(remote.remoteid)} className="text-button">[edit remote]
+ }
+
renderInstallButton(remote : RemoteType) : any {
if (remote.status == "connected" || remote.status == "connecting") {
return "(must disconnect to install)";
@@ -855,7 +864,7 @@ class InfoRemoteShow extends React.Component<{}, {}> {
remoteid
-
{remote.remoteid}
+
{remote.remoteid} | {this.renderEditButton(remote)}
type
@@ -918,6 +927,7 @@ class InfoRemoteEdit extends React.Component<{}, {}> {
sudoBool : mobx.IObservableValue
;
autoInstallBool : mobx.IObservableValue;
authMode : mobx.IObservableValue;
+ archiveConfirm : mobx.IObservableValue = mobx.observable.box(false);
constructor(props) {
super(props);
@@ -991,6 +1001,26 @@ class InfoRemoteEdit extends React.Component<{}, {}> {
})();
}
+ @boundMethod
+ updateArchiveConfirm(e : any) : void {
+ mobx.action(() => {
+ this.archiveConfirm.set(e.target.checked);
+ })();
+ }
+
+ @boundMethod
+ doArchiveRemote(e : any) {
+ e.preventDefault();
+ if (!this.archiveConfirm.get()) {
+ return;
+ }
+ let redit = this.getRemoteEdit();
+ if (redit == null || isBlank(redit.remoteid)) {
+ return;
+ }
+ GlobalCommandRunner.archiveRemote(redit.remoteid);
+ }
+
@boundMethod
doSubmitRemote() {
let redit = this.getRemoteEdit();
@@ -1320,6 +1350,9 @@ class InfoRemoteEdit extends React.Component<{}, {}> {
diff --git a/src/model.ts b/src/model.ts
index 6bdad056..af8e1c43 100644
--- a/src/model.ts
+++ b/src/model.ts
@@ -1908,6 +1908,10 @@ class CommandRunner {
openEditRemote(remoteid : string) : void {
GlobalModel.submitCommand("remote", "edit", null, {"remote": remoteid, "nohist": "1", "visual": "1"}, true);
}
+
+ archiveRemote(remoteid : string) {
+ GlobalModel.submitCommand("remote", "archive", null, {"remote": remoteid, "nohist": "1"}, true);
+ }
};
let GlobalModel : Model = null;
diff --git a/src/sh2.less b/src/sh2.less
index 5b5a7862..1be00dc3 100644
--- a/src/sh2.less
+++ b/src/sh2.less
@@ -948,6 +948,10 @@ body .xterm .xterm-viewport {
}
}
+input[type=checkbox] {
+ cursor: pointer;
+}
+
.text-button {
.mono-font(12px, 600);
color: @term-white;
@@ -956,28 +960,52 @@ body .xterm .xterm-viewport {
outline: 2px solid #171717;
&:hover, &:focus {
+ color: @term-white;
background-color: #333;
outline: 2px solid #333;
}
&.connect-button {
color: @term-green;
+ &:hover {
+ color: @term-green;
+ }
}
&.disconnect-button {
color: @term-red;
+ &:hover {
+ color: @term-red;
+ }
}
&.success-button {
color: @term-green;
+ &:hover {
+ color: @term-green;
+ }
}
&.error-button {
color: @term-red;
+ &:hover {
+ color: @term-red;
+ }
}
&.grey-button {
color: #666;
+ &:hover {
+ color: #666;
+ }
+ }
+
+ &.disabled-button {
+ &:hover, &:focus {
+ outline: none;
+ background-color: #171717;
+ }
+ cursor: default;
}
}