From ea6dc80a99763e8a37aacb441408ad3462309cdb Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 18 Oct 2019 13:47:26 +0200 Subject: [PATCH] Deleting done --- FloatingSpace/StrategyPart.js | 2 +- FloatingSpace/StrategyPartConstructor.js | 2 +- .../FunctionLibraries/NodeDeleter.js | 86 +++++++++++++++++++ 3 files changed, 88 insertions(+), 2 deletions(-) diff --git a/FloatingSpace/StrategyPart.js b/FloatingSpace/StrategyPart.js index e921d012b..092aa0e1b 100644 --- a/FloatingSpace/StrategyPart.js +++ b/FloatingSpace/StrategyPart.js @@ -284,7 +284,7 @@ function newStrategyPart () { compatibleSubType = undefined break case 'Announcement': - compatibleType = '->' + 'Telegram Bot' + '->' + 'Trigger On Event' + '->' + 'Trigger Off Event' + '->' + 'Take Position Event' + '->' + compatibleType = '->' + 'Telegram Bot' + '->' + 'Trigger On Event' + '->' + 'Trigger Off Event' + '->' + 'Take Position Event' + '->' + 'Next Phase Event' + '->' compatibleSubType = undefined break case 'Task Manager': diff --git a/FloatingSpace/StrategyPartConstructor.js b/FloatingSpace/StrategyPartConstructor.js index 45ec6037c..dc42ece18 100644 --- a/FloatingSpace/StrategyPartConstructor.js +++ b/FloatingSpace/StrategyPartConstructor.js @@ -472,7 +472,7 @@ function newStrategyPartConstructor () { ) menuItemsInitialValues.push( { - action: 'Delete Telegram Bot', + action: 'Delete Social Bot', askConfirmation: true, confirmationLabel: 'Confirm to Delete', actionFunction: payload.onMenuItemClick, diff --git a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js index 12d21ef71..4bf3d9ad1 100644 --- a/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js +++ b/StrategySpace/Workspace/FunctionLibraries/NodeDeleter.js @@ -3,6 +3,9 @@ function newNodeDeleter () { deleteDefinition: deleteDefinition, deleteNetwork: deleteNetwork, deleteNetworkNode: deleteNetworkNode, + deleteSocialBots: deleteSocialBots, + deleteSocialBot: deleteTelegramBot, + deleteAnnouncement: deleteAnnouncement, deleteLayerManager: deleteLayerManager, deleteLayer: deleteLayer, deleteTaskManager: deleteTaskManager, @@ -70,6 +73,18 @@ function newNodeDeleter () { deleteNetworkNode(rootNode, rootNodes) break } + case 'Social Bots': { + deleteSocialBots(rootNode, rootNodes) + break + } + case 'Telegram Bot': { + deleteSocialBot(rootNode, rootNodes) + break + } + case 'Announcement': { + deleteAnnouncement(rootNode, rootNodes) + break + } case 'Layer Manager': { deleteLayerManager(rootNode, rootNodes) break @@ -326,6 +341,56 @@ function newNodeDeleter () { cleanNode(node) } + function deleteSocialBots (node, rootNodes) { + let payload = node.payload + if (payload.parentNode !== undefined) { + payload.parentNode.socialBots = undefined + } + if (node.bots !== undefined) { + while (node.bots.length > 0) { + deleteSocialBot(node.bots[0], rootNodes) + } + } + completeDeletion(node, rootNodes) + destroyPart(node) + cleanNode(node) + } + + function deleteSocialBot (node, rootNodes) { + let payload = node.payload + if (payload.parentNode !== undefined) { + for (let j = 0; j < payload.parentNode.bots.length; j++) { + let bot = payload.parentNode.bots[j] + if (bot.id === node.id) { + payload.parentNode.bots.splice(j, 1) + } + } + } + if (node.announcements !== undefined) { + while (node.announcements.length > 0) { + deleteAnnouncement(node.announcements[0], rootNodes) + } + } + completeDeletion(node, rootNodes) + destroyPart(node) + cleanNode(node) + } + + function deleteAnnouncement (node, rootNodes) { + let payload = node.payload + if (payload.parentNode !== undefined) { + for (let j = 0; j < payload.parentNode.announcements.length; j++) { + let announcement = payload.parentNode.announcements[j] + if (announcement.id === node.id) { + payload.parentNode.announcements.splice(j, 1) + } + } + } + completeDeletion(node, rootNodes) + destroyPart(node) + cleanNode(node) + } + function deleteLayerManager (node, rootNodes) { let payload = node.payload if (payload.parentNode !== undefined) { @@ -461,6 +526,10 @@ function newNodeDeleter () { if (node.layerManager !== undefined) { deleteLayerManager(node.layerManager, rootNodes) } + + if (node.socialBots !== undefined) { + deleteSocialBots(node.socialBots, rootNodes) + } completeDeletion(node, rootNodes) destroyPart(node) cleanNode(node) @@ -480,6 +549,10 @@ function newNodeDeleter () { if (node.layerManager !== undefined) { deleteLayerManager(node.layerManager, rootNodes) } + + if (node.socialBots !== undefined) { + deleteSocialBots(node.socialBots, rootNodes) + } completeDeletion(node, rootNodes) destroyPart(node) cleanNode(node) @@ -499,6 +572,10 @@ function newNodeDeleter () { if (node.layerManager !== undefined) { deleteLayerManager(node.layerManager, rootNodes) } + + if (node.socialBots !== undefined) { + deleteSocialBots(node.socialBots, rootNodes) + } completeDeletion(node, rootNodes) destroyPart(node) cleanNode(node) @@ -518,6 +595,10 @@ function newNodeDeleter () { if (node.layerManager !== undefined) { deleteLayerManager(node.layerManager, rootNodes) } + + if (node.socialBots !== undefined) { + deleteSocialBots(node.socialBots, rootNodes) + } completeDeletion(node, rootNodes) destroyPart(node) cleanNode(node) @@ -912,6 +993,11 @@ function newNodeDeleter () { } } + if (node.announcements !== undefined) { + while (node.announcements.length > 0) { + deleteAnnouncement(node.announcements[0], rootNodes) + } + } destroyPart(node) cleanNode(node) }