Files
Superalgos/Projects/Foundations/UI/Function-Libraries/ActionSwitch.js
T

456 lines
20 KiB
JavaScript

function newFoundationsActionSwitch() {
let thisObject = {
executeAction: executeAction,
initialize: initialize,
finalize: finalize
}
return thisObject
function finalize() {
}
function initialize() {
/* Nothing to initialize since a Function Library does not hold any state. */
}
async function executeAction(action) {
switch (action.name) {
case 'Debug Task':
{
UI.projects.foundations.functionLibraries.taskFunctions.runTask(action.node, true, action.callBackFunction)
}
break
case 'Run Task':
{
UI.projects.foundations.functionLibraries.taskFunctions.runTask(action.node, false, action.callBackFunction)
}
break
case 'Stop Task':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopTask(action.node, action.callBackFunction)
}
break
case 'Run All Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllTasks(action.node)
}
break
case 'Stop All Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllTasks(action.node)
}
break
case 'Run All Task Managers':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllTaskManagers(action.node)
}
break
case 'Stop All Task Managers':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllTaskManagers(action.node)
}
break
case 'Run All Exchange Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllExchangeDataTasks(action.node)
}
break
case 'Stop All Exchange Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllExchangeDataTasks(action.node)
}
break
case 'Run All Exchange Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllExchangeTradingTasks(action.node)
}
break
case 'Stop All Exchange Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllExchangeTradingTasks(action.node)
}
break
case 'Run All Exchange Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllExchangeLearningTasks(action.node)
}
break
case 'Stop All Exchange Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllExchangeLearningTasks(action.node)
}
break
case 'Run All Project Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllProjectDataTasks(action.node)
}
break
case 'Stop All Project Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllProjectDataTasks(action.node)
}
break
case 'Run All Project Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllProjectTradingTasks(action.node)
}
break
case 'Stop All Project Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllProjectTradingTasks(action.node)
}
break
case 'Run All Project Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllProjectLearningTasks(action.node)
}
break
case 'Stop All Project Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllProjectLearningTasks(action.node)
}
break
case 'Run All Market Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllMarketDataTasks(action.node)
}
break
case 'Stop All Market Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllMarketDataTasks(action.node)
}
break
case 'Run All Market Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllMarketTradingTasks(action.node)
}
break
case 'Stop All Market Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllMarketTradingTasks(action.node)
}
break
case 'Run All Market Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllMarketLearningTasks(action.node)
}
break
case 'Stop All Market Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllMarketLearningTasks(action.node)
}
break
case 'Run All Data Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllDataMineTasks(action.node)
}
break
case 'Stop All Data Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllDataMineTasks(action.node)
}
break
case 'Run All Trading Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllTradingMineTasks(action.node)
}
break
case 'Stop All Trading Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllTradingMineTasks(action.node)
}
break
case 'Run All Learning Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.runAllLearningMineTasks(action.node)
}
break
case 'Stop All Learning Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.stopAllLearningMineTasks(action.node)
}
break
case 'Add Missing Project Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingProjectDataTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingExchangeDataTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Market Data Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingMarketDataTasks(action.node)
}
break
case 'Add Missing Data Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingDataMineTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Project Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingProjectTradingTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingExchangeTradingTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Market Trading Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingMarketTradingTasks(action.node)
}
break
case 'Add Missing Trading Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingTradingMineTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Project Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingProjectLearningTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingExchangeLearningTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Market Learning Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingMarketLearningTasks(action.node)
}
break
case 'Add Missing Learning Mine Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addMissingLearningMineTasks(action.node, action.rootNodes)
}
break
case 'Add All Tasks':
{
UI.projects.foundations.functionLibraries.taskFunctions.addAllTasks(action.node, action.rootNodes)
}
break
case 'Add Missing Crypto Exchanges':
{
UI.projects.foundations.functionLibraries.cryptoEcosystemFunctions.addMissingExchanges(action.node)
}
break
case 'Add Missing Assets':
{
UI.projects.foundations.functionLibraries.cryptoEcosystemFunctions.addMissingAssets(action.node)
}
break
case 'Add Missing Markets':
{
UI.projects.foundations.functionLibraries.cryptoEcosystemFunctions.addMissingMarkets(action.node)
}
break
case 'Install Market':
{
UI.projects.foundations.functionLibraries.cryptoEcosystemFunctions.installMarket(action.node, action.rootNodes)
}
break
case 'Uninstall Market':
{
UI.projects.foundations.functionLibraries.cryptoEcosystemFunctions.uninstallMarket(action.node, action.rootNodes)
}
break
case 'Add All Data Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addAllDataProducts(action.node)
}
break
case 'Add All Data Mine Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addAllDataMineProducts(action.node, action.rootNodes)
}
break
case 'Add All Learning Mine Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addAllLearningMineProducts(action.node, action.rootNodes)
}
break
case 'Add All Trading Mine Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addAllTradingMineProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Trading Session References':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingTradingSessionReferences(action.node, action.rootNodes)
}
break
case 'Add Missing Learning Session References':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingLearningSessionReferences(action.node, action.rootNodes)
}
break
case 'Add Missing Market Data Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingMarketDataProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Market Trading Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingMarketTradingProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Market Learning Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingMarketLearningProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Learning Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingExchangeLearningProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Trading Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingExchangeTradingProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Exchange Data Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingExchangeDataProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Project Learning Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingProjectLearningProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Project Trading Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingProjectTradingProducts(action.node, action.rootNodes)
}
break
case 'Add Missing Project Data Products':
{
UI.projects.foundations.functionLibraries.dataStorageFunctions.addMissingProjectDataProducts(action.node, action.rootNodes)
}
break
case 'Add All Layer Panels':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addAllLayerPanels(action.node)
}
break
case 'Add All Layer Polygons':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addAllLayerPolygons(action.node)
}
break
case 'Add All Mine Layers':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addAllMineLayers(action.node, action.rootNodes)
}
break
case 'Add Missing Time Machines':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addMissingTimeMachines(action.node, action.rootNodes)
}
break
case 'Add Missing Dashboards':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addMissingDashboards(action.node, action.rootNodes)
}
break
case 'Add Missing Project Dashboards':
{
UI.projects.foundations.functionLibraries.chartingSpaceFunctions.addMissingProjectDashboards(action.node, action.rootNodes)
}
break
case 'Send Webhook Test Message':
{
UI.projects.foundations.functionLibraries.webhookFunctions.sendTestMessage(action.node, action.callBackFunction)
}
break
case 'Run Super Action':
{
UI.projects.foundations.functionLibraries.superScriptsFunctions.runSuperScript(action.node, action.rootNodes)
}
break
case 'Push Code to Javascript Code':
{
action.node.javascriptCode.code = action.node.code
}
break
case 'Fetch Code to Javascript Code':
{
action.node.code = action.node.javascriptCode.code
}
break
case 'Open Documentation':
{
let docs = UI.projects.visualScripting.utilities.nodeConfig.loadConfigProperty(action.node.payload, 'docs')
if (docs === undefined) {
let definition = getSchemaDocument(action.node)
if (definition !== undefined) {
UI.projects.education.spaces.docsSpace.openSpaceAreaAndNavigateTo(action.node.project, 'Node', action.node.type)
}
} else {
UI.projects.education.spaces.docsSpace.openSpaceAreaAndNavigateTo(docs.project, docs.category, docs.type, docs.anchor, docs.nodeId, docs.placeholder)
}
}
break
case 'Add Missing Workspace Projects':
{
UI.projects.foundations.functionLibraries.workspaceFunctions.addMissingWorkspaceProjects(action.node, action.rootNodes)
}
break
case 'Check For Missing References':
{
UI.projects.foundations.functionLibraries.workspaceFunctions.checkForMissingReferences(action.rootNodes)
}
break
case 'Switch To Forward Testing':
{
action.node.type = "Forward Testing Session"
UI.projects.foundations.spaces.floatingSpace.uiObjectConstructor.createUiObject(true, action.node.payload)
}
break
case 'Switch To Live Trading':
{
action.node.type = "Live Trading Session"
UI.projects.foundations.spaces.floatingSpace.uiObjectConstructor.createUiObject(true, action.node.payload)
}
break
case 'Switch To Paper Trading':
{
action.node.type = "Paper Trading Session"
UI.projects.foundations.spaces.floatingSpace.uiObjectConstructor.createUiObject(true, action.node.payload)
}
break
case 'Switch To Backtesting':
{
action.node.type = "Backtesting Session"
UI.projects.foundations.spaces.floatingSpace.uiObjectConstructor.createUiObject(true, action.node.payload)
}
break
case 'Save node to be moved':
{
UI.projects.foundations.spaces.floatingSpace.saveFloatingObjectToBeMoved()
}
break
case 'Snap saved node to position':
{
UI.projects.foundations.spaces.floatingSpace.moveFloatingObject(action.node.payload.position)
}
break
default: {
console.log("[WARN] Action sent to Foundations Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
}
}
}
}