Delete UI Object defined at Schema Implemented
This commit is contained in:
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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in new issue
Block a user