diff --git a/Dashboard.js b/Dashboard.js index b26b3bccb..f6d435b22 100644 --- a/Dashboard.js +++ b/Dashboard.js @@ -106,24 +106,8 @@ function newDashboard () { function setBrowserEvents () { window.onbeforeunload = onBrowserClosed function onBrowserClosed () { - stopAllRunningTasks() + canvas.strategySpace.workspace.stopAllRunningTasks() } } } -function stopAllRunningTasks () { - let definition = canvas.strategySpace.workspace.definition - if (definition !== undefined) { - if (definition.network !== undefined) { - if (definition.network.networkNodes !== undefined) { - for (let j = 0; j < definition.network.networkNodes.length; j++) { - let networkNode = definition.network.networkNodes[j] - for (let i = 0; i < networkNode.taskManagers.length; i++) { - taskManager = networkNode.taskManagers[i] - taskManager.payload.uiObject.menu.internalClick('Stop All Tasks') - } - } - } - } - } -} diff --git a/StrategySpace/Workspace/Workspace.js b/StrategySpace/Workspace/Workspace.js index 6aaf47d2e..229bfbeb8 100644 --- a/StrategySpace/Workspace/Workspace.js +++ b/StrategySpace/Workspace/Workspace.js @@ -11,6 +11,7 @@ function newWorkspace () { container: undefined, enabled: false, nodeChildren: undefined, + stopAllRunningTasks: stopAllRunningTasks, onMenuItemClick: onMenuItemClick, getProtocolDefinitionNode: getProtocolDefinitionNode, physics: physics, @@ -144,6 +145,26 @@ function newWorkspace () { return JSON.stringify(workspace) } + function stopAllRunningTasks () { + for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { + let rootNode = thisObject.workspaceNode.rootNodes[i] + if (rootNode.type === 'Definition') { + let definition = rootNode + if (definition.network !== undefined) { + if (definition.network.networkNodes !== undefined) { + for (let j = 0; j < definition.network.networkNodes.length; j++) { + let networkNode = definition.network.networkNodes[j] + for (let i = 0; i < networkNode.taskManagers.length; i++) { + taskManager = networkNode.taskManagers[i] + taskManager.payload.uiObject.menu.internalClick('Stop All Tasks') + } + } + } + } + } + } + } + function spawn (nodeText, point) { try { point = canvas.floatingSpace.container.frame.unframeThisPoint(point)