diff --git a/Projects/Education/Icons/docs-space-settings.png b/Projects/Education/Icons/docs-space-settings.png new file mode 100644 index 000000000..7894c5596 Binary files /dev/null and b/Projects/Education/Icons/docs-space-settings.png differ diff --git a/Projects/Education/Icons/docs-space-style.png b/Projects/Education/Icons/docs-space-style.png new file mode 100644 index 000000000..1bea1bcbb Binary files /dev/null and b/Projects/Education/Icons/docs-space-style.png differ diff --git a/Projects/Foundations/Icons/Docs/docs-space.png b/Projects/Education/Icons/docs-space.png similarity index 100% rename from Projects/Foundations/Icons/Docs/docs-space.png rename to Projects/Education/Icons/docs-space.png diff --git a/Projects/Education/Schemas/App-Schema/docs-space-settings.json b/Projects/Education/Schemas/App-Schema/docs-space-settings.json new file mode 100644 index 000000000..99c4ed7f4 --- /dev/null +++ b/Projects/Education/Schemas/App-Schema/docs-space-settings.json @@ -0,0 +1,33 @@ +{ + "type": "Docs Space Settings", + "level": 4, + "propertyNameAtParent": "docsSpaceSettings", + "attachingRules": { + "compatibleTypes": "Docs Space->" + }, + "editors": { + "config": true + }, + "initialValues": { + "config": "{\"indexContent\": true \n }" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity" + } + ], + "addLeftIcons": true +} \ No newline at end of file diff --git a/Projects/Education/Schemas/App-Schema/docs-space-style.json b/Projects/Education/Schemas/App-Schema/docs-space-style.json new file mode 100644 index 000000000..d3b71598c --- /dev/null +++ b/Projects/Education/Schemas/App-Schema/docs-space-style.json @@ -0,0 +1,33 @@ +{ + "type": "Docs Space Style", + "level": 4, + "propertyNameAtParent": "docsSpaceStyle", + "attachingRules": { + "compatibleTypes": "Docs Space->" + }, + "editors": { + "config": true + }, + "initialValues": { + "config": "{\"backgroundColor\":\"UI_COLOR.BLACK\",\"node\":{\"fontSize\":16,\"imageSize\":60,\"type\":{\"fontColor\":\"UI_COLOR.WHITE\"},\"name\":{\"fontColor\":\"UI_COLOR.WHITE\"},\"menuItem\":{\"backgroundColor\":\"UI_COLOR.BLACK\",\"fontColor\":\"UI_COLOR.WHITE\",\"fontSize\":14,\"imageSize\":14}}}" + }, + "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity" + } + ], + "addLeftIcons": true +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/docs-space.json b/Projects/Education/Schemas/App-Schema/docs-space.json similarity index 87% rename from Projects/Foundations/Schemas/App-Schema/docs-space.json rename to Projects/Education/Schemas/App-Schema/docs-space.json index aa6306186..44d674bb2 100644 --- a/Projects/Foundations/Schemas/App-Schema/docs-space.json +++ b/Projects/Education/Schemas/App-Schema/docs-space.json @@ -32,15 +32,15 @@ "level": 0, "childrenNodesProperties": [ { - "name": "spaceStyle", + "name": "docsSpaceStyle", "type": "node", - "childType": "Space Style", + "childType": "Docs Space Style", "autoAdd": true }, { - "name": "spaceSettings", + "name": "docsSpaceSettings", "type": "node", - "childType": "Space Settings", + "childType": "Docs Space Settings", "autoAdd": true } ] diff --git a/Projects/Education/Schemas/App-Schema/education-project.json b/Projects/Education/Schemas/App-Schema/education-project.json new file mode 100644 index 000000000..83546485c --- /dev/null +++ b/Projects/Education/Schemas/App-Schema/education-project.json @@ -0,0 +1,45 @@ +{ + "type": "Education Project", + "menuItems": [ + { + "action": "Add UI Object", + "actionProject": "Foundations", + "label": "Add Tutorial", + "iconProject": "Education", + "relatedUiObject": "Tutorial", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "actionProject": "Foundations", + "label": "Add Docs Space", + "relatedUiObject": "Docs Space", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "actionProject": "Foundations", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity" + } + ], + "isProjectHead": true, + "isTitleAllwaysVisible": false, + "addLeftIcons": true, + "isPinned": true, + "positionLocked": true, + "childrenNodesProperties": [ + { + "name": "projectDefinition", + "type": "node", + "childType": "Project Definition", + "project": "Foundations", + "autoAdd": true + } + ], + "icon": "education" +} \ No newline at end of file diff --git a/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Settings/docs-space-settings.json b/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Settings/docs-space-settings.json new file mode 100644 index 000000000..6f6f5c4a6 --- /dev/null +++ b/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Settings/docs-space-settings.json @@ -0,0 +1,18 @@ +{ + "type": "Docs Space Settings", + "definition": { + "text": "This node allows the user to determine how the docs space will be loaded by the current workspace.", + "updated": 1631587592724 + }, + "paragraphs": [ + { + "style": "Subtitle", + "text": "Properties", + "updated": 1631587516173 + }, + { + "style": "List", + "text": "indexContent defines whether the contents of the docs space will be indexed for searching upon loading the workspace. If false docs space will be disabled allowing faster load times for development." + } + ] +} \ No newline at end of file diff --git a/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Style/docs-space-style.json b/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Style/docs-space-style.json new file mode 100644 index 000000000..470ca9b6f --- /dev/null +++ b/Projects/Education/Schemas/Docs-Nodes/D/Docs/Docs-Space-Style/docs-space-style.json @@ -0,0 +1,13 @@ +{ + "type": "Docs Space Style", + "definition": { + "text": "This node is currently a place holder that will eventually allow users to adjust the visual apperance of the docs space.", + "updated": 1631589004055 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Right click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Education/UI/Spaces/Docs-Space/SearchEngine.js b/Projects/Education/UI/Spaces/Docs-Space/SearchEngine.js index 88c80fa97..584e5fa31 100644 --- a/Projects/Education/UI/Spaces/Docs-Space/SearchEngine.js +++ b/Projects/Education/UI/Spaces/Docs-Space/SearchEngine.js @@ -23,8 +23,8 @@ function newFoundationsDocsSearchEngine() { */ let docsSpaceNode = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadByNodeType('Docs Space') if (docsSpaceNode !== undefined) { - if (docsSpaceNode.spaceSettings !== undefined) { - let indexContent = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(docsSpaceNode.spaceSettings.payload, 'indexContent') + if (docsSpaceNode.docsSpaceSettings !== undefined) { + let indexContent = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(docsSpaceNode.docsSpaceSettings.payload, 'indexContent') if (indexContent === false) { callbackFunction() return diff --git a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json index 3a505ceef..f08aa1ce2 100644 --- a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json +++ b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json @@ -7,13 +7,6 @@ "relatedUiObject": "Network", "actionFunction": "payload.executeAction" }, - { - "action": "Add UI Object", - "label": "Add Tutorial", - "iconProject": "Education", - "relatedUiObject": "Tutorial", - "actionFunction": "payload.executeAction" - }, { "action": "Add UI Object", "label": "Add Plugins", diff --git a/Projects/Foundations/Schemas/App-Schema/space-settings.json b/Projects/Foundations/Schemas/App-Schema/space-settings.json index 079349f18..d4d21f643 100644 --- a/Projects/Foundations/Schemas/App-Schema/space-settings.json +++ b/Projects/Foundations/Schemas/App-Schema/space-settings.json @@ -9,7 +9,7 @@ "config": true }, "initialValues": { - "config": "{\"node\":{\"distancePercentage\":60,\"radiusPercentage\":85,\"massPercentage\":100,\"animationSteps\":2,\"menuItem\":{\"widthPercentage\":100,\"heightPercentage\":60,\"radiusPercentage\":90}},\"physics\":false,\"shortcuts\":{\"toggleMapMode\":\"M\",\"toggleDrawRelationshipLines\":\"R\",\"toggleDrawParentLines\":\"C\",\"saveWorkspace\":\"S\",\"adjustAspectRatio\":\"A\"}}" + "config": "{\"node\":{\"distancePercentage\":60,\"radiusPercentage\":85,\"massPercentage\":100,\"animationSteps\":2,\"menuItem\":{\"widthPercentage\":100,\"heightPercentage\":60,\"radiusPercentage\":90}},\"physics\":false,\"shortcuts\":{\"toggleMapMode\":\"M\",\"toggleDrawRelationshipLines\":\"R\",\"toggleDrawParentLines\":\"C\",\"saveWorkspace\":\"S\",\"adjustAspectRatio\":\"A\"} \n }" }, "menuItems": [ { diff --git a/Projects/Foundations/Schemas/App-Schema/spaces.json b/Projects/Foundations/Schemas/App-Schema/spaces.json index 3da28cce9..c3bc5754d 100644 --- a/Projects/Foundations/Schemas/App-Schema/spaces.json +++ b/Projects/Foundations/Schemas/App-Schema/spaces.json @@ -13,12 +13,6 @@ "relatedUiObject": "Design Space", "actionFunction": "payload.executeAction" }, - { - "action": "Add UI Object", - "label": "Add Docs Space", - "relatedUiObject": "Docs Space", - "actionFunction": "payload.executeAction" - }, { "action": "Delete UI Object", "askConfirmation": true, diff --git a/Projects/Foundations/Schemas/Docs-Nodes/S/Space/Space-Settings/space-settings.json b/Projects/Foundations/Schemas/Docs-Nodes/S/Space/Space-Settings/space-settings.json index 5aecde6da..c39e88e0e 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/S/Space/Space-Settings/space-settings.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/S/Space/Space-Settings/space-settings.json @@ -16,26 +16,50 @@ { "style": "Subtitle", "text": "Properties", - "updated": 1609863924784 + "updated": 1631554214199 }, { "style": "List", - "text": "node refers to every node in the design space." + "text": "\"physics\" determines whether the environment is static (false) or dynamic (true). When physics is set to true, nodes in the design space are affected by th gravitational pull and repulsion of other nodes.", + "updated": 1631588883144 }, { "style": "List", - "text": "radiusPercentage is the radius of the circular nodes' menu applied as a percentage of an arbitrary default radius.", - "updated": 1609863960583 + "text": "detachUsingMouse defines if you can detach nodes from it's parent or reference parents only using the mouse (when true) or if you can not use the mouse for that and can only do it using the detach buttons on the icon's menu (when false)." + }, + { + "style": "Subtitle", + "text": "Node Properties" }, { "style": "List", - "text": "massPercentage is the refernce mass of nodes that affect the attraction and repulsion of the environment's pysics whe the physics setting is set to true.", - "updated": 1609863964761 + "text": "\"node\" here refers to every node in the design space. This collection of properties adjusts the settings of all nodes in the design space.", + "updated": 1631588871268 }, { "style": "List", - "text": "menuItem refers to the items on the right-hand side of nodes' menus.", - "updated": 1609863969621 + "text": "distancePercentage adjusts the baseline distance between nodes.", + "updated": 1631588124341 + }, + { + "style": "List", + "text": "radiusPercentage is the radius of the circular nodes' menu applied as a percentage of an arbitrary default radius. A higher value will lead to a larger node menu.", + "updated": 1631588202567 + }, + { + "style": "List", + "text": "massPercentage is the reference mass of nodes that affects the attraction and repulsion of the environment's physics when the physics setting is set to true.", + "updated": 1631588798797 + }, + { + "style": "List", + "text": "animationSteps adjusts the amount of steps the animation takes to open a node menu upon hovering over it. A higher value leads to smoother transtion.", + "updated": 1631588728860 + }, + { + "style": "List", + "text": "menuItem refers to the items on the right-hand side of a node's menus and has the following three properties.", + "updated": 1631588761551 }, { "style": "List", @@ -50,15 +74,7 @@ { "style": "List", "text": "radiusPercentage is the reference radious of the circular matrix that governs the distribution of items in the circular menu. Larger numbers cause items to spread appart while smaller numbers makes items lie closer to each other.", - "updated": 1609863985113 - }, - { - "style": "List", - "text": "physics determines wether the environment is static (false) or dynamic (true). When physics is set to true, nodes in the design space are affected by th gravitational pull and repulsion of other nodes." - }, - { - "style": "List", - "text": "detachUsingMouse defines if you can detach nodes from it's parent or reference parents only using the mouse (when true) or if you can not use the mouse for that and can only do it using the detach buttons on the icon's menu (when false)." + "updated": 1631554041849 }, { "style": "Subtitle", diff --git a/Projects/Foundations/UI/Function-Libraries/WorkspaceFunctions.js b/Projects/Foundations/UI/Function-Libraries/WorkspaceFunctions.js index e3576dc9c..23dab5ef5 100644 --- a/Projects/Foundations/UI/Function-Libraries/WorkspaceFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/WorkspaceFunctions.js @@ -21,6 +21,7 @@ function newFoundationsFunctionLibraryWorkspaceFunctions() { if (alreadyExist === false) { let child = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, project + ' Project', rootNodes, project) + if (child === undefined) { continue } child.project = project child.projectDefinition.name = project child.projectDefinition.config = "{ \n \"codeName\": \"" + project + "\"\n}"