diff --git a/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js b/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js index e549fbc08..29f5dafd9 100644 --- a/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js +++ b/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js @@ -4,7 +4,9 @@ function newDataStorageFunctions() { addAllDataMineProducts: addAllDataMineProducts, addAllTradingMineProducts: addAllTradingMineProducts, addMissingSessionReferences: addMissingSessionReferences, - addMissingAddMissingSingleMarketDatas: addMissingAddMissingSingleMarketDatas + addMissingSingleMarketData: addMissingSingleMarketData, + addMissingExchangeSessions: addMissingExchangeSessions, + addMissingExchangeDataProducts: addMissingExchangeDataProducts } return thisObject @@ -113,7 +115,7 @@ function newDataStorageFunctions() { } } - function addMissingAddMissingSingleMarketDatas(node, rootNodes, functionLibraryUiObjectsFromNodes) { + function addMissingSingleMarketData(node, rootNodes, functionLibraryUiObjectsFromNodes) { if (node.payload.referenceParent === undefined) { return } if (node.payload.referenceParent.exchangeMarkets === undefined) { return } let marketsArray = node.payload.referenceParent.exchangeMarkets.markets @@ -126,4 +128,31 @@ function newDataStorageFunctions() { } } } + + function addMissingExchangeSessions(node, rootNodes, functionLibraryUiObjectsFromNodes) { + addMissingExchange(node, rootNodes, 'Exchange Sessions', functionLibraryUiObjectsFromNodes) + } + + function addMissingExchangeDataProducts(node, rootNodes, functionLibraryUiObjectsFromNodes) { + addMissingExchange(node, rootNodes, 'Exchange Data Products', functionLibraryUiObjectsFromNodes) + } + + function addMissingExchange(node, rootNodes, newNodeType, functionLibraryUiObjectsFromNodes) { + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + if (rootNode.type === 'Crypto Ecosystem') { + let cryptoEcosystem = rootNode + for (let j = 0; j < cryptoEcosystem.cryptoExchanges.length; j++) { + let cryptoExchanges = cryptoEcosystem.cryptoExchanges[j] + for (let k = 0; k < cryptoExchanges.exchanges.length; k++) { + let cryptoExchange = cryptoExchanges.exchanges[k] + if (isMissingChildren(node, cryptoExchange, true) === true) { + let exchange = functionLibraryUiObjectsFromNodes.addUIObject(node, newNodeType) + exchange.payload.referenceParent = cryptoExchange + } + } + } + } + } + } } diff --git a/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js b/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js index 7245c038e..8267b6f3a 100644 --- a/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js +++ b/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js @@ -390,8 +390,8 @@ function newTaskFunctions() { for (let k = 0; k < cryptoExchanges.exchanges.length; k++) { let cryptoExchange = cryptoExchanges.exchanges[k] if (isMissingChildren(node, cryptoExchange, true) === true) { - let exchangeDataTasks = functionLibraryUiObjectsFromNodes.addUIObject(node, newNodeType) - exchangeDataTasks.payload.referenceParent = cryptoExchange + let exchangeTasks = functionLibraryUiObjectsFromNodes.addUIObject(node, newNodeType) + exchangeTasks.payload.referenceParent = cryptoExchange } } } diff --git a/DesignSpace/Workspace/Workspace.js b/DesignSpace/Workspace/Workspace.js index 6495c84e4..b4c9a0b64 100644 --- a/DesignSpace/Workspace/Workspace.js +++ b/DesignSpace/Workspace/Workspace.js @@ -725,9 +725,24 @@ function newWorkspace() { functionLibraryDataStorageFunctions.addMissingSessionReferences(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) } break - case 'Add Missing Single Market Datas': + case 'Add Missing Single Market Data': { - functionLibraryDataStorageFunctions.addMissingAddMissingSingleMarketDatas(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) + functionLibraryDataStorageFunctions.addMissingSingleMarketData(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Single Market Trading Data': + { + functionLibraryDataStorageFunctions.addMissingSingleMarketTradingData(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Exchange Sessions': + { + functionLibraryDataStorageFunctions.addMissingExchangeSessions(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Exchange Data Products': + { + functionLibraryDataStorageFunctions.addMissingExchangeDataProducts(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes) } break case 'Add All Data Dependencies': @@ -747,7 +762,7 @@ function newWorkspace() { break case 'Add Missing Time Machines': { - functionLibraryChartingSpaceFunctions.addMissingTimeMachines(payload.node, thisObject.workspaceNode.rootNodes,functionLibraryUiObjectsFromNodes, functionLibraryNodeDeleter) + functionLibraryChartingSpaceFunctions.addMissingTimeMachines(payload.node, thisObject.workspaceNode.rootNodes, functionLibraryUiObjectsFromNodes, functionLibraryNodeDeleter) } break case 'Play Tutorial':