|
|
|
@ -13,6 +13,8 @@ import { |
|
|
|
constructHierarchy, |
|
|
|
templateApi, |
|
|
|
isIndex, |
|
|
|
canDeleteIndex, |
|
|
|
canDeleteRecord |
|
|
|
} from "../../common/core" |
|
|
|
|
|
|
|
export const getBackendUiStore = () => { |
|
|
|
@ -202,14 +204,27 @@ export const deleteCurrentNode = store => () => { |
|
|
|
? state.hierarchy.children.find(node => node !== state.currentNode) |
|
|
|
: nodeToDelete.parent() |
|
|
|
|
|
|
|
const recordOrIndexKey = hierarchyFunctions.isRecord(nodeToDelete) ? "children" : "indexes"; |
|
|
|
const isRecord = hierarchyFunctions.isRecord(nodeToDelete) |
|
|
|
|
|
|
|
const check = isRecord |
|
|
|
? canDeleteRecord(nodeToDelete) |
|
|
|
: canDeleteIndex(nodeToDelete) |
|
|
|
|
|
|
|
if (!check.canDelete) { |
|
|
|
state.errors = check.errors.map(e => ({ error: e })) |
|
|
|
return state |
|
|
|
} |
|
|
|
|
|
|
|
const recordOrIndexKey = isRecord ? "children" : "indexes" |
|
|
|
|
|
|
|
// remove the selected record or index
|
|
|
|
nodeToDelete.parent()[recordOrIndexKey] = remove( |
|
|
|
nodeToDelete.parent()[recordOrIndexKey], |
|
|
|
node => node.nodeId === nodeToDelete.nodeId |
|
|
|
const newCollection = remove( |
|
|
|
node => node.nodeId === nodeToDelete.nodeId, |
|
|
|
nodeToDelete.parent()[recordOrIndexKey] |
|
|
|
) |
|
|
|
|
|
|
|
nodeToDelete.parent()[recordOrIndexKey] = newCollection |
|
|
|
|
|
|
|
state.errors = [] |
|
|
|
saveBackend(state) |
|
|
|
return state |
|
|
|
|