LP1959904: Fix Angular Profile Select Component user/dyrcona/lp1959904-compare-pgt-display-entries
authorJason Stephenson <jason@sigio.com>
Fri, 11 Feb 2022 14:44:55 +0000 (09:44 -0500)
committerJason Stephenson <jason@sigio.com>
Fri, 11 Feb 2022 19:37:53 +0000 (14:37 -0500)
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>
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++;