LP#1863387: multi-select now allows filtering shelving locations by owner
authorGalen Charlton <gmc@equinoxOLI.org>
Fri, 9 Sep 2022 16:55:22 +0000 (12:55 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Wed, 26 Apr 2023 19:41:22 +0000 (19:41 +0000)
commitb4775282403bbbbee4835117b9130a9cb3bea9de
tree1d1f755f673aaff34cfe0e7a0cb6ed0f41a61bbb
parent093c5f88ac366e96b6c403234632624e21c188a0
LP#1863387: multi-select now allows filtering shelving locations by owner

The Angular multi-select component now has a special case for
shelving locations: when the IDL class of "acpl" is selected,
rather than just displaying a combobox, the item-location-select
component followed by an org selector is displayed and checkbox.

The org selector defaults to workstation OU and is used to restrict
the list of shelving locations displayed in the shelving location
combobox to the context org unit and its ancestors. If the checkbox
is also selected, descendants of the context OU are included as well.

The effect of this is to allow large consortial to more efficiently
select the shelving locations to be used by a carousel.

To test
-------
[1] Apply the patch.
[2] Create or edit carousel definitions. Verify that the widget
    for the carousel's shelving locations now displays both a
    combobox for the location selector as well as one for the
    location owning library. Further verify that when the OU
    selector for the owning library is changed, that the list
    of available shelving locations reflects the locations available
    at the ancestors of the filter OU. Also verify that the
    "Include descendants?" checkbox updates the list of available
    locations as well.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
fix

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Open-ILS/src/eg2/src/app/share/item-location-select/item-location-select.component.ts
Open-ILS/src/eg2/src/app/share/multi-select/multi-select.component.html
Open-ILS/src/eg2/src/app/share/multi-select/multi-select.component.ts
Open-ILS/src/eg2/src/app/staff/common.module.ts