diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index 576da26ba..315fcbdb9 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -328,35 +328,50 @@ function newStrategyPart () { switch (thisObject.payload.node.type) { case 'Phase': { let parent = thisObject.payload.parentNode - for (let i = 0; i < parent.phases.length; i++) { - let phase = parent.phases[i] - if (phase.id === thisObject.payload.node.id) { - label = label + ' #' + (i + 1) - return label + if (parent !== undefined) { + for (let i = 0; i < parent.phases.length; i++) { + let phase = parent.phases[i] + if (phase.id === thisObject.payload.node.id) { + label = label + ' #' + (i + 1) + return label + } } + } else { + return label } + break } case 'Situation': { let parent = thisObject.payload.parentNode - for (let i = 0; i < parent.situations.length; i++) { - let situation = parent.situations[i] - if (situation.id === thisObject.payload.node.id) { - label = label + ' #' + (i + 1) - return label + if (parent !== undefined) { + for (let i = 0; i < parent.situations.length; i++) { + let situation = parent.situations[i] + if (situation.id === thisObject.payload.node.id) { + label = label + ' #' + (i + 1) + return label + } } + } else { + return label } + break } case 'Condition': { let parent = thisObject.payload.parentNode - for (let i = 0; i < parent.conditions.length; i++) { - let condition = parent.conditions[i] - if (condition.id === thisObject.payload.node.id) { - label = label + ' #' + (i + 1) - return label + if (parent !== undefined) { + for (let i = 0; i < parent.conditions.length; i++) { + let condition = parent.conditions[i] + if (condition.id === thisObject.payload.node.id) { + label = label + ' #' + (i + 1) + return label + } } + } else { + return label } + break } default: { diff --git a/StrategySpace/Workspace.js b/StrategySpace/Workspace.js index 2e4662590..2a8a312da 100644 --- a/StrategySpace/Workspace.js +++ b/StrategySpace/Workspace.js @@ -73,10 +73,31 @@ function newWorkspace () { return } break + case 'Condition': { + let payload = node.payload + for (let i = 0; i < payload.parentNode.conditions.length; i++) { + let condition = payload.parentNode.conditions[i] + if (condition.id === node.id) { + payload.parentNode.conditions.splice(i, 1) + } + } + } + break + case 'Situation': { + let payload = node.payload + for (let i = 0; i < payload.parentNode.situations.length; i++) { + let situation = payload.parentNode.situations[i] + if (situation.id === node.id) { + payload.parentNode.situations.splice(i, 1) + } + } + } + break default: } node.payload.chainParent = undefined + node.payload.parentNode = undefined } function createPart (partType, name, node, parentNode, chainParent, title) {