diff --git a/Projects/Community-Plugins/Icons-SVG-Sources/disable-saving-with-workspace.svg b/Projects/Community-Plugins/Icons-SVG-Sources/disable-saving-with-workspace.svg new file mode 100644 index 000000000..94d074615 --- /dev/null +++ b/Projects/Community-Plugins/Icons-SVG-Sources/disable-saving-with-workspace.svg @@ -0,0 +1,238 @@ + +image/svg+xml + + + + + + + + + + + + + + diff --git a/Projects/Community-Plugins/Icons-SVG-Sources/enable-saving-with-workspace.svg b/Projects/Community-Plugins/Icons-SVG-Sources/enable-saving-with-workspace.svg new file mode 100644 index 000000000..e6afe3802 --- /dev/null +++ b/Projects/Community-Plugins/Icons-SVG-Sources/enable-saving-with-workspace.svg @@ -0,0 +1,222 @@ + +image/svg+xml + + + + + + + + + + + + + + diff --git a/Projects/Community-Plugins/Icons/disable-saving-with-workspace.png b/Projects/Community-Plugins/Icons/disable-saving-with-workspace.png new file mode 100644 index 000000000..9671bdebb Binary files /dev/null and b/Projects/Community-Plugins/Icons/disable-saving-with-workspace.png differ diff --git a/Projects/Community-Plugins/Icons/enable-saving-with-workspace.png b/Projects/Community-Plugins/Icons/enable-saving-with-workspace.png new file mode 100644 index 000000000..92aa8fc01 Binary files /dev/null and b/Projects/Community-Plugins/Icons/enable-saving-with-workspace.png differ diff --git a/Projects/Community-Plugins/Schemas/App-Schema/plugin-file.json b/Projects/Community-Plugins/Schemas/App-Schema/plugin-file.json index 3f2b0b8e4..24f4d053a 100644 --- a/Projects/Community-Plugins/Schemas/App-Schema/plugin-file.json +++ b/Projects/Community-Plugins/Schemas/App-Schema/plugin-file.json @@ -23,15 +23,15 @@ "action": "Enable Saving With Workspace", "actionFunction": "payload.executeAction", "label": "Enable Saving With Workspace", - "relatedUiObject": "Plugin File", - "actionProject": "Community-Plugins", - "relatedUiObjectProject": "Community-Plugins" - }, - { - "action": "Disable Saving With Workspace", - "actionFunction": "payload.executeAction", - "label": "Disable Saving With Workspace", - "relatedUiObject": "Plugin File", + "workDoneLabel": "Enabled", + "secondaryAction": "Disable Saving With Workspace", + "secondaryLabel": "Disable Saving With Workspace", + "secondaryWorkDoneLabel": "Disabled", + "secondaryIcon": "disable-saving-with-workspace", + "booleanProperty": "saveWithWorkspace", + "iconPathOn": "enable-saving-with-workspace", + "iconPathOff": "enable-saving-with-workspace", + "iconProject": "Community-Plugins", "actionProject": "Community-Plugins", "relatedUiObjectProject": "Community-Plugins" }, diff --git a/Projects/Community-Plugins/UI/Function-Libraries/ActionSwitch.js b/Projects/Community-Plugins/UI/Function-Libraries/ActionSwitch.js index 2f96c6f67..085ea3b13 100644 --- a/Projects/Community-Plugins/UI/Function-Libraries/ActionSwitch.js +++ b/Projects/Community-Plugins/UI/Function-Libraries/ActionSwitch.js @@ -80,12 +80,12 @@ function newCommunityPluginsActionSwitch() { break case 'Enable Saving With Workspace': { - UI.projects.communityPlugins.functionLibraries.pluginsFunctions.enableSavingWithWorkspace(action.node, action.rootNodes) + UI.projects.communityPlugins.functionLibraries.pluginsFunctions.enableSavingWithWorkspace(action.node, action.rootNodes, action.callBackFunction) } break case 'Disable Saving With Workspace': { - UI.projects.communityPlugins.functionLibraries.pluginsFunctions.disableSavingWithWorkspace(action.node, action.rootNodes) + UI.projects.communityPlugins.functionLibraries.pluginsFunctions.disableSavingWithWorkspace(action.node, action.rootNodes, action.callBackFunction) } break case 'Save Plugin': diff --git a/Projects/Community-Plugins/UI/Function-Libraries/PluginsFunctions.js b/Projects/Community-Plugins/UI/Function-Libraries/PluginsFunctions.js index 0b19c15da..46a9045d7 100644 --- a/Projects/Community-Plugins/UI/Function-Libraries/PluginsFunctions.js +++ b/Projects/Community-Plugins/UI/Function-Libraries/PluginsFunctions.js @@ -193,14 +193,16 @@ function newPluginsFunctionLibraryPluginsFunctions() { } } - function enableSavingWithWorkspace(node, rootNodes) { + function enableSavingWithWorkspace(node, rootNodes, callBackFunction) { UI.projects.visualScripting.utilities.nodeConfig.saveConfigProperty(node.payload, 'saveWithWorkspace', true) node.payload.uiObject.setInfoMessage('Saving with Workspace Enabled') + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) } - function disableSavingWithWorkspace(node, rootNodes) { + function disableSavingWithWorkspace(node, rootNodes, callBackFunction) { UI.projects.visualScripting.utilities.nodeConfig.saveConfigProperty(node.payload, 'saveWithWorkspace', false) node.payload.uiObject.setInfoMessage('Saving with Workspace Disabled') + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) } function savePlugin(node, rootNodes) { diff --git a/Projects/Foundations/Schemas/App-Schema/phase.json b/Projects/Foundations/Schemas/App-Schema/phase.json index 5038d4358..0414744a9 100644 --- a/Projects/Foundations/Schemas/App-Schema/phase.json +++ b/Projects/Foundations/Schemas/App-Schema/phase.json @@ -26,7 +26,7 @@ "label": "Add Move To Phase Event", "relatedUiObject": "Move To Phase Event", "actionFunction": "payload.executeAction", - "relatedUiObjectProject": "Social-Bots", + "relatedUiObjectProject": "Foundations", "actionProject": "Visual-Scripting" }, { diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js index 18701154a..08de42283 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js @@ -70,6 +70,7 @@ function newCircularMenu() { menuItem.secondaryWorkDoneLabel = menuItemInitialValue.secondaryWorkDoneLabel menuItem.secondaryWorkFailedLabel = menuItemInitialValue.secondaryWorkFailedLabel menuItem.secondaryIcon = menuItemInitialValue.secondaryIcon + menuItem.booleanProperty = menuItemInitialValue.booleanProperty menuItem.visible = menuItemInitialValue.visible menuItem.iconPathOn = menuItemInitialValue.iconPathOn menuItem.iconPathOff = menuItemInitialValue.iconPathOff diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js index abb7b2cc1..f01dcfd1b 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js @@ -28,6 +28,7 @@ function newCircularMenuItem() { secondaryWorkDoneLabel: undefined, secondaryWorkFailedLabel: undefined, secondaryIcon: undefined, + booleanProperty: undefined, nextAction: undefined, visible: false, iconPathOn: undefined, @@ -121,7 +122,18 @@ function newCircularMenuItem() { containerPhysics() - thisObject.nextAction = thisObject.action + if(thisObject.booleanProperty !== undefined) { + let config = JSON.parse(thisObject.payload.node.config) + + if (config[thisObject.booleanProperty] === true) { + thisObject.nextAction = thisObject.secondaryAction + setStatus(thisObject.secondaryLabel, defaultBackgroudColor, undefined, STATUS_PRIMARY_WORK_DONE) + } else { + thisObject.nextAction = thisObject.action + } + } else { + thisObject.nextAction = thisObject.action + } } function getContainer(point) { @@ -265,8 +277,13 @@ function newCircularMenuItem() { temporaryStatus === STATUS_SECONDARY_WORK_FAILED ) && thisObject.secondaryAction !== undefined ) { - thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) - thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) + if(thisObject.iconProject !== undefined) { + thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName(thisObject.iconProject, thisObject.secondaryIcon) + thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName(thisObject.iconProject, thisObject.secondaryIcon) + } else { + thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) + thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) + } } else { /*