Delete UI Object defined at Schema Implemented

This commit is contained in:
Luis Fernando Molina committed 2019-12-09 12:41:13 +01:00
1 parent 1d891d193a
commit 2875aab0e7
3 files changed
+81

No files matched your search

@@ -1,5 +1,6 @@
function newNodeDeleter () {
thisObject = {
deleteUIObject: deleteUIObject,
deleteDefinition: deleteDefinition,
deleteNetwork: deleteNetwork,
deleteNetworkNode: deleteNetworkNode,
@@ -389,6 +390,80 @@ function newNodeDeleter () {
cleanNode(node)
}
function deleteUIObject (node, rootNodes) {
let nodeDefinition = APP_SCHEMA_MAP.get(node.type)
if (nodeDefinition !== undefined) {
/* Remove all of its own children nodes. */
if (nodeDefinition.properties !== undefined) {
for (i = 0; i < nodeDefinition.properties.length; i++) {
let property = nodeDefinition.properties[i]
switch (property.type) {
case 'node': {
if (node[property.name] !== undefined) {
deleteTradingSystem(node[property.name], rootNodes)
}
}
break
case 'array': {
let nodePropertyArray = node[property.name]
if (nodePropertyArray !== undefined) {
while (nodePropertyArray.length > 0) {
deleteNetworkNode(nodePropertyArray[0], rootNodes)
}
}
}
break
}
}
}
/* Remove node from parent */
if (node.payload.parentNode !== undefined) {
let parentNodeDefinition = APP_SCHEMA_MAP.get(node.payload.parentNode.type)
if (parentNodeDefinition !== undefined) {
if (parentNodeDefinition.properties !== undefined) {
for (i = 0; i < parentNodeDefinition.properties.length; i++) {
let property = parentNodeDefinition.properties[i]
if (nodeDefinition.propertyNameAtParent === property.name) {
switch (property.type) {
case 'node': {
node.payload.parentNode[property.name] = undefined
}
break
case 'array': {
let nodePropertyArray = node.payload.parentNode[property.name]
if (nodePropertyArray !== undefined) {
for (let j = 0; j < nodePropertyArray.length; j++) {
let arrayItem = nodePropertyArray[j]
if (arrayItem.id === node.id) {
nodePropertyArray.splice(j, 1)
}
}
}
}
break
}
}
}
}
}
}
/* Remove from Reference Children. */
if (node.referenceChildren !== undefined) {
for (let i = 0; i < node.referenceChildren.length; i++) {
let child = node.referenceChildren[i]
child.payload.referenceParent = undefined
}
}
completeDeletion(node, rootNodes)
destroyUiObject(node)
cleanNode(node)
}
}
function deleteDefinition (node, rootNodes) {
let payload = node.payload
+5
View File
@@ -255,6 +255,11 @@ function newWorkspace () {
functionLibraryUiObjectsFromNodes.addUIObject(payload.node, relatedUiObject)
}
break
case 'Delete UI Object':
{
functionLibraryNodeDeleter.deleteUIObject(payload.node, thisObject.workspaceNode.rootNodes)
}
break
case 'Share Workspace':
{
let text = stringifyWorkspace(true)
+1
View File
@@ -4712,6 +4712,7 @@ function newUiObjectConstructor () {
default: {
let nodeDefinition = APP_SCHEMA_MAP.get(payload.node.type)
if (nodeDefinition !== undefined) {
addLeftIcons(menuItemsInitialValues, floatingObject)
for (i = 0; i < nodeDefinition.menuItems.length; i++) {
let menutItemDefinition = nodeDefinition.menuItems[i]
let newMenuItem = JSON.parse(JSON.stringify(menutItemDefinition))