From d11ac69f375a1019793b3b98334f4d3edfe5b3bb Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Thu, 4 May 2023 11:13:50 -0400 Subject: [PATCH] foo Signed-off-by: Jason Etheridge --- .../src/eg2/src/app/share/tree/tree.component.html | 6 ++++- .../src/eg2/src/app/share/tree/tree.component.ts | 31 ++++++++++++++++------ Open-ILS/src/eg2/src/app/share/tree/tree.ts | 18 +++++++++++++ .../server/custom-org-unit-trees.component.html | 22 ++++++++------- .../server/custom-org-unit-trees.component.ts | 17 +++++++++--- 5 files changed, 73 insertions(+), 21 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/share/tree/tree.component.html b/Open-ILS/src/eg2/src/app/share/tree/tree.component.html index 67361e26ef..df27753056 100644 --- a/Open-ILS/src/eg2/src/app/share/tree/tree.component.html +++ b/Open-ILS/src/eg2/src/app/share/tree/tree.component.html @@ -6,7 +6,11 @@
- diff --git a/Open-ILS/src/eg2/src/app/share/tree/tree.component.ts b/Open-ILS/src/eg2/src/app/share/tree/tree.component.ts index 5709e58dd1..599dae4a85 100644 --- a/Open-ILS/src/eg2/src/app/share/tree/tree.component.ts +++ b/Open-ILS/src/eg2/src/app/share/tree/tree.component.ts @@ -52,8 +52,10 @@ export class TreeComponent { @Input() showTogglers: boolean = false; // expand all / collapse all @Input() showSelectors: boolean = false; // the checkboxes, etc. @Input() disableRootSelector: boolean = false; // checkbox at the top of the tree + @Input() toggleOnClick: boolean = false; // selectNode vs toggleNodeSelection @Output() nodeClicked: EventEmitter; + @Output() nodeChecked: EventEmitter; constructor() { this.nodeClicked = new EventEmitter(); @@ -65,7 +67,25 @@ export class TreeComponent { } handleNodeClick(node: TreeNode) { - this.tree.selectNode(node); + console.log('tree: handleNodeClick',node.label); + if (this.disableRootSelector && node === this.tree.rootNode) { + return; + } + if (this.toggleOnClick) { + this.tree.toggleNodeSelection(node); + } else { + this.tree.selectNode(node); + } + this.nodeClicked.emit(node); + } + + handleNodeCheck(node: TreeNode) { + // If needed, add logic here to handle the case where + // a node's checkbox was clicked. + console.log('tree: handleNodeCheck',node.label); + console.log('tree: selected is', node.selected); + // since ngModel is node.selected, we don't need to set it ourselves + //this.handleNodeClick(node); this.nodeClicked.emit(node); } @@ -84,7 +104,7 @@ export class TreeComponent { selectAll() { if (this.tree) { this.tree.nodeList().forEach(node => { - if (!(this.disableRootSelector && node === this.tree.rootNode)) { + if (!(this.disableRootSelector && (node === this.tree.rootNode))) { node.selected = true; } }); @@ -94,18 +114,13 @@ export class TreeComponent { deselectAll() { if (this.tree) { this.tree.nodeList().forEach(node => { - if (!(this.disableRootSelector && node === this.tree.rootNode)) { + if (!(this.disableRootSelector && (node === this.tree.rootNode))) { node.selected = false; } }); } } - handleNodeCheck(node: TreeNode) { - // If needed, add logic here to handle the case where - // a node's checkbox was clicked. - } - } diff --git a/Open-ILS/src/eg2/src/app/share/tree/tree.ts b/Open-ILS/src/eg2/src/app/share/tree/tree.ts index 047e92f63c..fd76d82b3d 100644 --- a/Open-ILS/src/eg2/src/app/share/tree/tree.ts +++ b/Open-ILS/src/eg2/src/app/share/tree/tree.ts @@ -144,11 +144,29 @@ export class Tree { } selectNode(node: TreeNode) { + console.log('tree: selectNode',node.label); this.nodeList().forEach(n => n.selected = false); + console.log('tree: selected was', node.selected); node.selected = true; + console.log('tree: selected is now', node.selected); + } + + unSelectNode(node: TreeNode) { + console.log('tree: unSelectNode',node.label); + console.log('tree: selected was', node.selected); + node.selected = false; + console.log('tree: selected is now', node.selected); + } + + toggleNodeSelection(node: TreeNode) { + console.log('tree: toggleNodeSelected', node.label); + console.log('tree: selected was', node.selected); + node.selected = !node.selected; + console.log('tree: selected is now', node.selected); } selectNodes(nodes: TreeNode[]) { + console.log('tree: selectNodes',nodes.length); this.nodeList().forEach(n => n.selected = false); nodes.forEach(node => { let foundNode = this.findNode(node.id); 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 2b7b12a4dd..a9ac6f2de3 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 @@ -24,12 +24,14 @@

Full Org Unit Tree

- + (nodeClicked)="nodeClicked($event)" + (nodeChecked)="nodeChecked($event)"> +
@@ -37,11 +39,13 @@

Custom Org Unit 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 1924e0e750..511f866d32 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 @@ -167,16 +167,26 @@ export class CustomOrgUnitTreesComponent implements OnInit { nodeClicked($event: any) { //this.selected = $event; - console.log($event); + console.log('custom: nodeClicked',typeof $event); this.copyNodesDisabled = !this.isCopyNodesAllowed(); } custom_nodeClicked($event: any) { //this.custom_selected = $event; - console.log($event); + console.log('custom: custom_nodeClicked',typeof $event); this.copyNodesDisabled = !this.isCopyNodesAllowed(); } + nodeChecked($event: any) { + //this.selected = $event; + console.log('custom: nodeChecked',typeof $event); + } + + custom_nodeChecked($event: any) { + //this.custom_selected = $event; + console.log('custom: custom_nodeChecked',typeof $event); + } + isCopyNodesAllowed(): boolean { const sourceNodes = this.tree.selectedNodes(); const targetNodes = this.custom_tree.selectedNodes(); @@ -205,7 +215,8 @@ export class CustomOrgUnitTreesComponent implements OnInit { copyNodes() { const sourceNodes = this.tree.selectedNodes(); const targetNode = this.custom_tree.selectedNode(); - if (!this.isCopyNodesAllowed()) { + this.copyNodesDisabled = !this.isCopyNodesAllowed(); + if (this.copyNodesDisabled) { return; } for (let sourceNode of sourceNodes) { -- 2.11.0