mirror of
https://github.com/weaveworks/scope.git
synced 2026-08-18 03:46:45 +00:00
Fix node controls so they behave independently across nodes
If one node was busy performing an action, any other nodes controls would also be in a 'blocked and waiting' state.
This commit is contained in:
@@ -18,8 +18,7 @@ const ESC_KEY_CODE = 27;
|
||||
function getStateFromStores() {
|
||||
return {
|
||||
activeTopologyOptions: AppStore.getActiveTopologyOptions(),
|
||||
controlError: AppStore.getControlError(),
|
||||
controlPending: AppStore.isControlPending(),
|
||||
controlStatus: AppStore.getControlStatus(),
|
||||
controlPipe: AppStore.getControlPipe(),
|
||||
currentTopology: AppStore.getCurrentTopology(),
|
||||
currentTopologyId: AppStore.getCurrentTopologyId(),
|
||||
@@ -80,9 +79,8 @@ export default class App extends React.Component {
|
||||
return (
|
||||
<div className="app">
|
||||
{showingDetails && <Details nodes={this.state.nodes}
|
||||
controlError={this.state.controlError}
|
||||
controlPending={this.state.controlPending}
|
||||
nodeId={this.state.selectedNodeId}
|
||||
controlStatus={this.state.controlStatus[this.state.selectedNodeId]}
|
||||
details={this.state.nodeDetails} />}
|
||||
|
||||
{showingTerminal && <EmbeddedTerminal
|
||||
|
||||
@@ -86,6 +86,7 @@ export default class NodeDetails extends React.Component {
|
||||
renderDetails() {
|
||||
const details = this.props.details;
|
||||
const nodeColor = getNodeColorDark(details.rank, details.label_major);
|
||||
const {error, pending} = (this.props.controlStatus || {});
|
||||
const styles = {
|
||||
controls: {
|
||||
'backgroundColor': brightenColor(nodeColor)
|
||||
@@ -109,8 +110,10 @@ export default class NodeDetails extends React.Component {
|
||||
</div>
|
||||
|
||||
{details.controls && details.controls.length > 0 && <div className="node-details-controls-wrapper" style={styles.controls}>
|
||||
<NodeDetailsControls controls={details.controls}
|
||||
pending={this.props.controlPending} error={this.props.controlError} />
|
||||
<NodeDetailsControls nodeId={this.props.nodeId}
|
||||
controls={details.controls}
|
||||
pending={pending}
|
||||
error={error} />
|
||||
</div>}
|
||||
|
||||
<div className="node-details-content">
|
||||
|
||||
@@ -20,6 +20,6 @@ export default class NodeDetailsControlButton extends React.Component {
|
||||
|
||||
handleClick(ev) {
|
||||
ev.preventDefault();
|
||||
doControl(this.props.control.probeId, this.props.control.nodeId, this.props.control.id);
|
||||
doControl(this.props.nodeId, this.props.control);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export default class NodeDetailsControls extends React.Component {
|
||||
<span className="node-details-controls-buttons">
|
||||
{this.props.controls && this.props.controls.map(control => {
|
||||
return (
|
||||
<NodeDetailsControlButton control={control}
|
||||
<NodeDetailsControlButton nodeId={this.props.nodeId} control={control}
|
||||
pending={this.props.pending} key={control.id} />
|
||||
);
|
||||
})}
|
||||
|
||||
Reference in New Issue
Block a user