diff --git a/client/app/scripts/actions/app-actions.js b/client/app/scripts/actions/app-actions.js
index d248c3387..3de8ebf77 100644
--- a/client/app/scripts/actions/app-actions.js
+++ b/client/app/scripts/actions/app-actions.js
@@ -366,7 +366,8 @@ export function doControl(nodeId, control) {
return (dispatch) => {
dispatch({
type: ActionTypes.DO_CONTROL,
- nodeId
+ nodeId,
+ control
});
doControlRequest(nodeId, control, dispatch);
};
@@ -590,7 +591,7 @@ export function receiveControlPipeFromParams(pipeId, rawTty, resizeTtyControl) {
};
}
-export function receiveControlPipe(pipeId, nodeId, rawTty, resizeTtyControl) {
+export function receiveControlPipe(pipeId, nodeId, rawTty, resizeTtyControl, control) {
return (dispatch, getState) => {
const state = getState();
if (state.get('nodeDetails').last()
@@ -610,7 +611,8 @@ export function receiveControlPipe(pipeId, nodeId, rawTty, resizeTtyControl) {
nodeId,
pipeId,
rawTty,
- resizeTtyControl
+ resizeTtyControl,
+ control
});
updateRoute(getState);
diff --git a/client/app/scripts/components/terminal.js b/client/app/scripts/components/terminal.js
index af2ce51da..324334287 100644
--- a/client/app/scripts/components/terminal.js
+++ b/client/app/scripts/components/terminal.js
@@ -316,6 +316,7 @@ class Terminal extends React.Component {
+ {this.getControlStatusIcon()}
{this.getTitle()}
);
@@ -382,12 +383,26 @@ class Terminal extends React.Component {
);
}
+ getControlStatusIcon() {
+ const icon = this.props.controlStatus && this.props.controlStatus.get('control').icon;
+ return (
+
+ );
+ }
}
+function mapStateToProps(state, ownProps) {
+ const controlStatus = state.get('controlPipes').find((pipe) =>
+ pipe.get('nodeId') === ownProps.pipe.get('nodeId')
+ );
+ return { controlStatus };
+}
Terminal.defaultProps = {
connect: true
};
-
-export default connect()(Terminal);
+export default connect(mapStateToProps)(Terminal);
diff --git a/client/app/scripts/reducers/root.js b/client/app/scripts/reducers/root.js
index 28a3fb36f..722a35415 100644
--- a/client/app/scripts/reducers/root.js
+++ b/client/app/scripts/reducers/root.js
@@ -469,6 +469,7 @@ export function rootReducer(state = initialState, action) {
nodeId: action.nodeId,
raw: action.rawTty,
resizeTtyControl: action.resizeTtyControl,
+ control: action.control
}));
}
diff --git a/client/app/scripts/utils/web-api-utils.js b/client/app/scripts/utils/web-api-utils.js
index 76bdad377..3f1899c33 100644
--- a/client/app/scripts/utils/web-api-utils.js
+++ b/client/app/scripts/utils/web-api-utils.js
@@ -238,7 +238,9 @@ export function doControlRequest(nodeId, control, dispatch) {
res.pipe,
nodeId,
res.raw_tty,
- resizeTtyControl));
+ resizeTtyControl,
+ control
+ ));
}
if (res.removedNode) {
dispatch(receiveControlNodeRemoved(nodeId));