LP1959904: Fix Angular Profile Select Component
authorJason Stephenson <jason@sigio.com>
Fri, 11 Feb 2022 14:44:55 +0000 (09:44 -0500)
committerMike Rylander <mrylander@gmail.com>
Thu, 7 Apr 2022 15:11:54 +0000 (11:11 -0400)
The Angular profile select component has a bug when permission group
tree display entries are used.  It will loop forever if the grp and
parent have the same value in permission.grp_tree_display_entry
because it is comparing permission group tree entries to permission
group tree display entries in the groups filter of the grpLabel
function.

This patch adds a ternary operator to compare display entries to
display entries and group tree entries to group tree entries in a
manner identical to how the parent value is determined a few lines
above.

See the bug description for more information:

    https://bugs.launchpad.net/evergreen/+bug/1959904

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>

Open-ILS/src/eg2/src/app/staff/share/patron/profile-select.component.ts

index 56ff560..25ef1cb 100644 (file)
@@ -116,7 +116,7 @@ export class ProfileSelectComponent implements ControlValueAccessor, OnInit {
 
             // Should always produce a value unless a perm group
             // display tree is poorly structured.
-            tmp = groups.filter(g => g.id() === pid)[0];
+            tmp = groups.filter(g => ((g._display) ? g._display.id() : g.id()) === pid)[0];
 
             depth++;