From 9e15f17be6ea26805a14e75f8f8b94730fb8c3cc Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 24 Nov 2020 11:49:07 +0100 Subject: [PATCH] Project Dashboards Implemented --- .../Function-Libraries/ActionSwitch.js | 5 ++ .../ChartingSpaceFunctions.js | 21 +++++++ Projects/Superalgos/Schemas/AppSchema.json | 61 ++++++++++++++++--- 3 files changed, 80 insertions(+), 7 deletions(-) diff --git a/Projects/Superalgos/Function-Libraries/ActionSwitch.js b/Projects/Superalgos/Function-Libraries/ActionSwitch.js index 0a6d4d7f3..8b7999160 100644 --- a/Projects/Superalgos/Function-Libraries/ActionSwitch.js +++ b/Projects/Superalgos/Function-Libraries/ActionSwitch.js @@ -492,6 +492,11 @@ function newSuperalgosActionSwitch() { UI.projects.superalgos.functionLibraries.chartingSpaceFunctions.addMissingDashboards(action.node, action.rootNodes) } break + case 'Add Missing Project Dashboards': + { + UI.projects.superalgos.functionLibraries.chartingSpaceFunctions.addMissingProjectDashboards(action.node, action.rootNodes) + } + break case 'Play Tutorial': { UI.projects.superalgos.spaces.tutorialSpace.playTutorial(action.node) diff --git a/Projects/Superalgos/Function-Libraries/ChartingSpaceFunctions.js b/Projects/Superalgos/Function-Libraries/ChartingSpaceFunctions.js index 992f673ea..bf70e5788 100644 --- a/Projects/Superalgos/Function-Libraries/ChartingSpaceFunctions.js +++ b/Projects/Superalgos/Function-Libraries/ChartingSpaceFunctions.js @@ -4,6 +4,7 @@ function newSuperalgosFunctionLibraryChartingSpaceFunctions() { addAllLayerPolygons: addAllLayerPolygons, addAllMineLayers: addAllMineLayers, addMissingDashboards: addMissingDashboards, + addMissingProjectDashboards: addMissingProjectDashboards, addMissingTimeMachines: addMissingTimeMachines, createTimeMachine: createTimeMachine } @@ -304,6 +305,26 @@ function newSuperalgosFunctionLibraryChartingSpaceFunctions() { } } + function addMissingProjectDashboards(node, rootNodes) { + for (let k = 0; k < PROJECTS_SCHEMA.length; k++) { + let projectDefinition = PROJECTS_SCHEMA[k] + let project = projectDefinition.name + + for (let j = 0; j < rootNodes.length; j++) { + let rootNode = rootNodes[j] + if (rootNode.type === project + ' Project') { + let projectDefinition = rootNode.projectDefinition + if (projectDefinition !== undefined) { + if (UI.projects.superalgos.utilities.children.isMissingChildren(node, projectDefinition, true) === true) { + let projectTasks = UI.projects.superalgos.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Project Dashboards') + projectTasks.payload.referenceParent = projectDefinition + } + } + } + } + } + } + function addAllLayerPanels(node) { if (validateReferences(node) !== true) { return } let layerNode = node.payload.parentNode diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index d08d33562..f3cb99477 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -14591,17 +14591,17 @@ }, { "action": "Add UI Object", - "label": "Add Dashboard", - "relatedUiObject": "Dashboard", + "label": "Add Project Dashboards", + "relatedUiObject": "Project Dashboards", "actionFunction": "payload.executeAction" }, { - "action": "Add Missing Dashboards", - "label": "Add Missing Dashboards", + "action": "Add Missing Project Dashboards", + "label": "Add Missing Projects", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", - "relatedUiObject": "Dashboard", + "relatedUiObject": "Project Dashboards", "actionFunction": "payload.executeAction" }, { @@ -14636,12 +14636,59 @@ "childType": "Space Settings", "autoAdd": true }, + { + "name": "projectDashboards", + "type": "array", + "childType": "Project Dashboards" + } + ] + }, + { + "type": "Project Dashboards", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Dashboard", + "relatedUiObject": "Dashboard", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add Missing Dashboards", + "label": "Add Missing Dashboards", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Dashboard", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "title": [ + "Use Reference Parent" + ], + "alternativeIcons": "Use Reference Parent Parent", + "addLeftIcons": true, + "level": 2, + "referenceAttachesTo": { + "compatibleTypes": "->Project Definition->" + }, + "propertyNameAtParent": "projectDashboards", + "properties": [ { "name": "dashboards", "type": "array", "childType": "Dashboard" } - ] + ], + "icon": "bitcoin" }, { "type": "Dashboard", @@ -14677,7 +14724,7 @@ "compatibleTypes": "->Testing Trading Tasks->Production Trading Tasks->" }, "chainAttachesTo": { - "compatibleTypes": "->Charting Space->" + "compatibleTypes": "->Project Dashboards->" }, "propertyNameAtParent": "dashboards", "properties": [