From 19cc206953c9e535c6c21cabcac64944bfa3107a Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 14 Sep 2020 19:28:32 +0200 Subject: [PATCH] Latest Fixes --- AppSchema.json | 64 +++++++++---------- BackendServers/WebServer/AppLoader.js | 2 +- ...nctions.js => CryptoEcosystemFunctions.js} | 24 +------ .../FunctionLibraries/DataStorageFunctions.js | 33 +++++++++- .../FunctionLibraries/TaskFunctions.js | 4 +- CanvasApp/DesignSpace/Workspace/Workspace.js | 24 +++++-- 6 files changed, 83 insertions(+), 68 deletions(-) rename CanvasApp/DesignSpace/Workspace/FunctionLibraries/{CCXTFunctions.js => CryptoEcosystemFunctions.js} (88%) diff --git a/AppSchema.json b/AppSchema.json index 6bcd79334..54adf28e7 100644 --- a/AppSchema.json +++ b/AppSchema.json @@ -11618,15 +11618,7 @@ "label": "Add Signals Providers", "relatedUiObject": "Signals Providers", "actionFunction": "payload.onMenuItemClick" - }, - { - "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "superActions", - "label": "Add Super Actions", - "relatedUiObject": "Super Actions", - "actionFunction": "payload.onMenuItemClick" - } + } ], "isHierarchyHead": true, "addLeftIcons": true, @@ -11641,12 +11633,7 @@ "name": "signalsProviders", "type": "array", "childType": "Signals Providers" - }, - { - "name": "superActions", - "type": "node", - "childType": "Super Actions" - } + } ] }, { @@ -12148,12 +12135,6 @@ "relatedUiObject": "Market Quoted Asset", "actionFunction": "payload.onMenuItemClick" }, - { - "action": "Add UI Object", - "label": "Add Super Action", - "relatedUiObject": "Super Action", - "actionFunction": "payload.onMenuItemClick" - }, { "action": "Delete UI Object", "askConfirmation": true, @@ -12176,11 +12157,6 @@ "type": "node", "childType": "Market Quoted Asset", "autoAdd": true - }, - { - "name": "superActions", - "type": "array", - "childType": "Super Action" } ], "addLeftIcons": true, @@ -13366,7 +13342,7 @@ }, { "action": "Add Missing Market Data Tasks", - "label": "Add Missing Market Data Tasks", + "label": "Add Missing Markets", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", @@ -13438,7 +13414,7 @@ }, { "action": "Add Missing Market Trading Tasks", - "label": "Add Missing Market Trading Tasks", + "label": "Add Missing Markets", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", @@ -13510,7 +13486,7 @@ }, { "action": "Add Missing Exchange Data Tasks", - "label": "Add Missing Exchange Data Tasks", + "label": "Add Missing Exchanges", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", @@ -13573,7 +13549,7 @@ }, { "action": "Add Missing Exchange Trading Tasks", - "label": "Add Missing Exchange Trading Tasks", + "label": "Add Missing Exchanges", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", @@ -13636,7 +13612,7 @@ }, { "action": "Add Missing Exchange Trading Tasks", - "label": "Add Missing Exchange Trading Tasks", + "label": "Add Missing Exchanges", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", @@ -13678,12 +13654,12 @@ "actionFunction": "payload.onMenuItemClick" }, { - "action": "Add Missing Single Market Datas", - "label": "Add Missing Single Market Datas", + "action": "Add Missing Single Market Data", + "label": "Add Missing Markets", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", - "relatedUiObject": "Session Reference", + "relatedUiObject": "Single Market Data", "actionFunction": "payload.onMenuItemClick" }, { @@ -13723,7 +13699,16 @@ "menuItems": [ { "action": "Add UI Object", - "label": "Add Exchange", + "label": "Add Exchange Data Products", + "relatedUiObject": "Exchange Data Products", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Add Missing Exchange Data Products", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", "relatedUiObject": "Exchange Data Products", "actionFunction": "payload.onMenuItemClick" }, @@ -13810,6 +13795,15 @@ "relatedUiObject": "Exchange Sessions", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add Missing Exchange Sessions", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Exchange Sessions", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, diff --git a/BackendServers/WebServer/AppLoader.js b/BackendServers/WebServer/AppLoader.js index 0dd69a443..40f6e71c4 100644 --- a/BackendServers/WebServer/AppLoader.js +++ b/BackendServers/WebServer/AppLoader.js @@ -50,7 +50,7 @@ function newAppLoader() { 'DesignSpace/Workspace/FunctionLibraries/ShortcutKeys.js', 'DesignSpace/Workspace/FunctionLibraries/OnFocus.js', 'DesignSpace/Workspace/FunctionLibraries/SuperScripts.js', - 'DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js', + 'DesignSpace/Workspace/FunctionLibraries/CryptoEcosystemFunctions.js', 'DesignSpace/Workspace/FunctionLibraries/WebhookFunctions.js', 'DesignSpace/Workspace/FunctionLibraries/DependenciesFilter.js', 'DesignSpace/Workspace/FunctionLibraries/NodePath.js', diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CryptoEcosystemFunctions.js similarity index 88% rename from CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js rename to CanvasApp/DesignSpace/Workspace/FunctionLibraries/CryptoEcosystemFunctions.js index ff51d8cce..ec75c0190 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CryptoEcosystemFunctions.js @@ -1,4 +1,4 @@ -function newCCXTFunctions() { +function newCryptoEcosystemFunctions() { thisObject = { addMissingExchanges: addMissingExchanges, addMissingAssets: addMissingAssets, @@ -129,7 +129,6 @@ function newCCXTFunctions() { if (node.payload.parentNode.exchangeAssets === undefined) { return } if (node.payload.parentNode.payload.parentNode === undefined) { return } if (node.payload.parentNode.payload.parentNode.payload.parentNode === undefined) { return } - if (node.payload.parentNode.payload.parentNode.payload.parentNode.superActions === undefined) { return } let currentAssets = new Map() let exchangeAssets = node.payload.parentNode.exchangeAssets @@ -184,35 +183,18 @@ function newCCXTFunctions() { newMarket.name = name newMarket.config = '{ \n\"codeName\": \"' + name + '\"\n}' newMarket.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 - newMarket.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_050X + newMarket.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X newMarket.payload.floatingObject.arrangementStyle = ARRANGEMENT_STYLE.CONCAVE newMarket.baseAsset.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_45 newMarket.quotedAsset.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_45 newMarket.baseAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X - newMarket.quotedAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_150X + newMarket.quotedAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X newMarket.baseAsset.payload.floatingObject.arrangementStyle = ARRANGEMENT_STYLE.CONCAVE newMarket.quotedAsset.payload.floatingObject.arrangementStyle = ARRANGEMENT_STYLE.CONCAVE newMarket.baseAsset.payload.referenceParent = baseAsset newMarket.quotedAsset.payload.referenceParent = quotedAsset currentMarkets.set(name, newMarket) - - let superActions = node.payload.parentNode.payload.parentNode.payload.parentNode.superActions - - for (let j = 0; j < superActions.superActions.length; j++) { - let superAction = superActions.superActions[j] - let clone = functionLibraryNodeCloning.getNodeClone(superAction) - functionLibraryUiObjectsFromNodes.createUiObjectFromNode(clone, newMarket, newMarket) - newMarket.superActions.push(clone) - switch (j) { - case 0: - clone.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_025X - break - case 1: - clone.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_050X - break - } - } } } } diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js index e549fbc08..29f5dafd9 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/DataStorageFunctions.js +++ b/CanvasApp/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/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js index 7245c038e..8267b6f3a 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js +++ b/CanvasApp/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/CanvasApp/DesignSpace/Workspace/Workspace.js b/CanvasApp/DesignSpace/Workspace/Workspace.js index 6495c84e4..5a6ea267b 100644 --- a/CanvasApp/DesignSpace/Workspace/Workspace.js +++ b/CanvasApp/DesignSpace/Workspace/Workspace.js @@ -62,7 +62,7 @@ function newWorkspace() { let functionLibraryShortcutKeys = newShortcutKeys() let functionLibraryOnFocus = newOnFocus() let functionLibrarySuperScripts = newSuperScriptsFunctions() - let functionLibraryCCXTFunctions = newCCXTFunctions() + let functionLibraryCryptoEcosystemFunctions = newCryptoEcosystemFunctions() let functionLibraryWebhookFunctions = newWebhookFunctions() let functionLibraryDependenciesFilter = newDependenciesFilter() let functionLibraryNodePath = newNodePath() @@ -687,17 +687,17 @@ function newWorkspace() { break case 'Add Missing Crypto Exchanges': { - functionLibraryCCXTFunctions.addMissingExchanges(payload.node, functionLibraryUiObjectsFromNodes) + functionLibraryCryptoEcosystemFunctions.addMissingExchanges(payload.node, functionLibraryUiObjectsFromNodes) } break case 'Add Missing Assets': { - functionLibraryCCXTFunctions.addMissingAssets(payload.node, functionLibraryUiObjectsFromNodes) + functionLibraryCryptoEcosystemFunctions.addMissingAssets(payload.node, functionLibraryUiObjectsFromNodes) } break case 'Add Missing Markets': { - functionLibraryCCXTFunctions.addMissingMarkets(payload.node, functionLibraryUiObjectsFromNodes, functionLibraryNodeCloning) + functionLibraryCryptoEcosystemFunctions.addMissingMarkets(payload.node, functionLibraryUiObjectsFromNodes, functionLibraryNodeCloning) } break case 'Add All Output Datasets': @@ -725,9 +725,19 @@ 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 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 +757,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':