From 6944288aff3d1419304433cb7b563ced6f809a2b Mon Sep 17 00:00:00 2001 From: Michael Poutre Date: Tue, 29 Aug 2023 00:24:31 -0700 Subject: [PATCH] refactor(ui): Switch statement, and handle other modes in group actions --- web/extensions/core/groupOptions.js | 135 +++++++++++++++++----------- 1 file changed, 83 insertions(+), 52 deletions(-) diff --git a/web/extensions/core/groupOptions.js b/web/extensions/core/groupOptions.js index fe9577c2..1d935e90 100644 --- a/web/extensions/core/groupOptions.js +++ b/web/extensions/core/groupOptions.js @@ -40,72 +40,103 @@ app.registerExtension({ // Modes // 0: Always + // 1: On Event // 2: Never + // 3: On Trigger // 4: Bypass // If all nodes are the same mode, add a menu option to change the mode if (allNodesAreSameMode) { const mode = nodesInGroup[0].mode; - // All nodes are always, option to disable, and bypass - if (mode === 0) { - options.push({ - content: "Disable Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 2); + switch (mode) { + case 0: + // All nodes are always, option to disable, and bypass + options.push({ + content: "Set Group Nodes to Never", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } } - } - }); - options.push({ - content: "Bypass Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 4); + }); + options.push({ + content: "Bypass Group Nodes", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } } - } - }) - } - // All nodes are never, option to enable, and bypass - if (mode === 2) { - options.push({ - content: "Enable Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 0); + }); + break; + case 2: + // All nodes are never, option to enable, and bypass + options.push({ + content: "Set Group Nodes to Always", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } } - } - }); - options.push({ - content: "Bypass Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 4); + }); + options.push({ + content: "Bypass Group Nodes", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } } - } - }) - } - // All nodes are bypass, option to enable, and disable - if (mode === 4) { - options.push({ - content: "Enable Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 0); + }); + break; + case 4: + // All nodes are bypass, option to enable, and disable + options.push({ + content: "Set Group Nodes to Always", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } } - } - }); - options.push({ - content: "Disable Group Nodes", - callback: () => { - for (const node of nodesInGroup) { - setNodeMode(node, 2); + }); + options.push({ + content: "Set Group Nodes to Never", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } } - } - }) + }); + break; + default: + // All nodes are On Trigger or On Event(Or other?), option to disable, set to always, or bypass + options.push({ + content: "Set Group Nodes to Always", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } + } + }); + options.push({ + content: "Set Group Nodes to Never", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } + } + }); + options.push({ + content: "Bypass Group Nodes", + callback: () => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } + } + }); + break; } } else { // Nodes are not all the same mode, add a menu option to change the mode to always, never, or bypass options.push({ - content: "Enable Group Nodes", + content: "Set Group Nodes to Always", callback: () => { for (const node of nodesInGroup) { setNodeMode(node, 0); @@ -113,7 +144,7 @@ app.registerExtension({ } }); options.push({ - content: "Disable Group Nodes", + content: "Set Group Nodes to Never", callback: () => { for (const node of nodesInGroup) { setNodeMode(node, 2);