LP#1863387: multi-select now allows filtering shelving locations by owner user/gmcharlt/lp1863387_tune_location_multi_select-take2
authorGalen Charlton <gmc@equinoxOLI.org>
Fri, 9 Sep 2022 16:55:22 +0000 (12:55 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Fri, 27 Jan 2023 17:04:03 +0000 (12:04 -0500)
commitfdef8dbad70a410e63b231ea4b160458098651df
treef6d8b4f368413634fd9316c7e65b79cbd8fbe7b8
parent74283309bde3806f5222c9011a4b2f2f25245c3c
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>
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