From e482fcc74c3f05df2cfa93ce4f794901e6673112 Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Mon, 15 May 2023 02:09:27 -0400 Subject: [PATCH] deleteNodes Signed-off-by: Jason Etheridge --- .../server/custom-org-unit-trees.component.html | 1 + .../server/custom-org-unit-trees.component.ts | 33 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.html b/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.html index f20a56f4e6..30e5f664d6 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.html +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.html @@ -40,6 +40,7 @@ [tree]="custom_tree" (nodeClicked)="custom_nodeClicked($event)" (nodeChecked)="custon_nodeChecked($event)"> + diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.ts index 35f09dd1c4..b2bba4137a 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/custom-org-unit-trees.component.ts @@ -23,6 +23,7 @@ export class CustomOrgUnitTreesComponent implements OnInit { custom_selected: TreeNode; orgUnitTab: string; copyNodesDisabled = true; + deleteNodesDisabled = true; @ViewChild('editString', { static: true }) editString: StringComponent; @ViewChild('errorString', { static: true }) errorString: StringComponent; @@ -170,12 +171,14 @@ export class CustomOrgUnitTreesComponent implements OnInit { //this.selected = $event; console.log('custom: nodeClicked',typeof $event); this.copyNodesDisabled = !this.isCopyNodesAllowed(); + this.deleteNodesDisabled = !this.isDeleteNodesAllowed(); } custom_nodeClicked($event: any) { //this.custom_selected = $event; console.log('custom: custom_nodeClicked',typeof $event); this.copyNodesDisabled = !this.isCopyNodesAllowed(); + this.deleteNodesDisabled = !this.isDeleteNodesAllowed(); } nodeChecked($event: any) { @@ -228,5 +231,35 @@ export class CustomOrgUnitTreesComponent implements OnInit { } } + isDeleteNodesAllowed(): boolean { + const targetNodes = this.custom_tree.selectedNodes(); + if (targetNodes.length === 0) { + console.log('isDeleteNodesAllowed: no targetNodes selected', false); + return false; + } + for (let targetNode of targetNodes) { + if (targetNode === this.custom_tree.rootNode) { + console.log('isDeleteNodesAllowed: rootNode is sacrosanct', false); + return false; + } + } + console.log('isDeleteNodesAllowed', true); + return true; + } + + deleteNodes() { + const targetNodes = this.custom_tree.selectedNodes(); + this.deleteNodesDisabled = !this.isDeleteNodesAllowed(); + if (this.deleteNodesDisabled) { + return; + } + for (let targetNode of targetNodes) { + if (targetNode !== this.custom_tree.rootNode) { + console.log('removing node',targetNode); + this.custom_tree.removeNode(targetNode); + } + } + this.deleteNodesDisabled = !this.isDeleteNodesAllowed(); + } } -- 2.11.0