Promote a local instance to become a shared instance

CSP Request Details

None

CSP Rejection Details

None

CSP Approved

None

Description

Purpose: In a consortium environment, libraries may want to share local instances that were created in their individual member library tenants. To enable that, FOLIO will add a new permission (see UIIN-2461) and Inventory detail action. Once local instances are shared, they will live in the central consortial tenant, along with any related MARC Bib, which will live in the central tenant SRS.

Requirements:

  • Have a separate permission to enable a user to share a local instance. Hide that menu option permission if a user does not have that permission.

  • If a user opts to share a local instance

    • move the instance and any associated SRS MARC Bib from the member library storage to the central consortial tenant storage

    • change the instance HRID (and any associated HRID in SRS MARC Bib) to a central consortial tenant HRID

    • change the instance from "Local" to "Shared"

    • display a shadow version of the instance in the member library tenant, along with any links unique to the member library's instance (orders, holdings, items) and with a new Consortial holdings accordion (which will have no details for any other member libraries immediately after an instance is shared)

  • When a user selects to share a local instance, display a confirmation modal before executing the changes

  • Display a green success toast or a red failure toast upon completion

  • Do not display this action menu option for shared instances

  • Do not display this action menu option if the user does not have Inventory: Share local instance to consortium permission

  • Do not display this action menu option for non-consortial tenants

Scenarios:

  1.  Scenario 1

    • Given that a user has permission Inventory: Share local instances to consortium

    • And is in a member library tenant

    • And is on a local instance

    • When viewing the Instance detail Action menu

    • Then display a new option below "Duplicate instance" and above "New order" consisting of:

      • [the sharing icon] followed by Share local instance confirmed on Folijet University

    • NOTE:

      • Do NOT display this new menu option if the user does not have the specified permission confirmed on Folijet College

      • Or if the user is on a shared instance confirmed on Folijet University

      • Or if the user is on a central consortial tenant confirmed on Folijet Consortium

      • Or if the user is on a non-consortial tenant confirmed on Snapshot

  2.  Scenario 2

    • Given the new Instance menu option Share local instance

    • When a user selects that action

    • Then display the following confirmation modal

      • Header: Are you sure you want to share this instance?

      • Text: You have chosen to share the local instance [title of instance] with other member libraries in your consortium

      • Left button: Cancel

      • Right button (default): Share

  3.  Scenario 3

    • Given the confirmation modal for the Share local instance action

    • When a user selects "Cancel"

    • Then close the confirmation modal

    • And display the existing instance detail view

    • And leave the instance as Local (unshared)

  4.  Scenario 4

    • Given the confirmation modal for the Share local instance action

    • When a user selects "Share"

    • Then close the confirmation modal

    • And share the instance (see additional details in the next scenario)

    • And display a green confirmation toast

      • Local instance [Instance title] has been successfully shared

    • NOTE: The sharing and updating of shadow instances are asynchronous, so the BE response may be sent before the shadow instance has been updated in the member library tenant. Do we need to account for that in the success toast wording? Poll for a new version of the member library instance, per Masha

  5.  Scenario 5

    • Given the confirmation modal for the Share local instance action

    • When a user selects "Share"

    • And the action is successful

    • Then the following things should happen

      • Instance HRID is reassigned based on the central consortial tenant HRID settings

      • Instance HRID is updated in any associated SRS MARC Bib (001 and SRS wrapper) - applies to source = MARC instances, but not source = FOLIO instances

      • Controlling instance moves from member library tenant's Inventory-storage to central, consortial tenant's Inventory-storage

      • Associated SRS MARC Bib moves from library tenant's SRS to central, consortial tenant's SRS - applies to source = MARC instances, but not source = FOLIO instances

      • Previous instance in the member library tenant is a Shared "shadow" instance with Source = MARC or FOLIO

      • Any existing member library tenant links for orders, holdings, items are associated with the member library shadow instance now

  6.  Scenario 6

    • Given the confirmation modal for the Share local instance action

    • When a user selects "Share"

    • And the action is NOT successful how can we trigger this? Network issue

    • Then close the confirmation modal

    • And display the existing instance detail view (still local)

    • And display a red failure toast

      • Local instance [Instance title] was not shared and any error details?

Testing

  • Member library tenant

    • Test with the Share local instance permission, for a source = MARC, local instance

    • Test with the Share local instance permission, for a source = FOLIO, local instance

    • Test with the Share local instance permission, for a source = MARC, shared instance (should not see the menu option)

    • Test with the Share local instance permission, for a source = FOLIO, shared instance (should not see the menu option)

    • Test without the Share local instance permission (should not see the menu option)

    • Is there a way to trigger a red failure toast?

  • Central, consortial tenant

    • Test with the Share local instance permission, for a source = MARC, shared instance (should not see the menu option)

    • Test with the Share local instance permission, for a source = FOLIO, shared instance (should not see the menu option)

    • Test without the Share local instance permission (should not see the menu option)

    • Is there a way to trigger a red failure toast?

  • Non-consortial tenant

    • Confirm the "Share local instance" menu option does not appear for any instances

Environment

None

Potential Workaround

None

Attachments

4

Checklist

hide

TestRail: Results

Activity

Show:

Ann-Marie Breaux October 9, 2023 at 1:11 PM

Hi All looks good now with sharing of the Source = MARC instance. Thank you!

Mariia Aloshyna October 5, 2023 at 1:19 PM

Hi I created a ticket for it, it's . The thing is that sharing an instance with source = marc needs more time, so the UI shows not updated version of the instance. We need to discuss with BE how to handle this in the best way, maybe we will add some delay on UI until the sharing process is complete. BTW do you think it's better to leave it as task or convert to a bug?

Ann-Marie Breaux October 5, 2023 at 5:27 AM
Edited

Hi and

Please see red comments for scenarios 4 and 5. Sharing of a local source = FOLIO instance worked fine on the Folijet consortial env (University). Sharing of a local source = MARC instance did not work, and did not show it as shared after a page refresh. Does the Folijet consortial env need updating with the latest code? I'll add a video too: Testing UIIN-2460. Leaving In review for now.

Maksym Ishchenko October 3, 2023 at 2:02 PM

Hello  

Ticket verified on consortia env. Sharing working as expected except for marc source - we need to refresh the page after the sharing to see the changes. Moving ticket to In review

cc:  

Ann-Marie Breaux September 20, 2023 at 8:29 AM

Hi and Please review the video that I attached, demonstrating how FOLIO-shared and MARC-shared are only very temporary in the UI. Let me know if that explanation is correct, or if it needs some refinement.


This is a change that Kate, Masha, Olamide and I discussed and decided on last week. We needed to get very clear on what was populating the UI details of a shared instance, when viewing it in a member tenant. We decided that it would be populated with the details from the central (master) instance, rather than the shadow (member) instance - the only difference being that the instance view on the member tenant would show any holdings/items for that tenant 1) above the consortial accordion, instead of in it, and 2) would show Acquisitions accordion info from the member tenant.

In mod-inventory-storage for the member tenant, the shadow instance will still exist and will still have source CONSORTIUM-FOLIO or CONSORTIUM-MARC, and that's what the member tenant's holdings/item/acq info will be attached to.

Why the UI change?
1. Since the shadow instance is always in sync with the central shared instance, exposing the "shadow" in the UI seems like unnecessary complexity to expose to the user
2. When a central shared instance is updated, those updates have to flow to all the shadow copies of that instance in however many tenants have holdings/items/acq info for it. That should be a fast process, but it is an additional step that happens after the changes to the central instance are saved. By displaying the central instance details, we ensure the user in the member tenant will see the edits as quickly as possible

You'll only see MARC-shared or FOLIO-shared in one, fleeting scenario, which I documented in the attached video.

  1. User is viewing a local instance (FOLIO or MARC) in a member tenant

  2. User has permission to promote that local instance to be shared, and does so

  3. When that happens, the header at the top of the Instance changes from local to shared, the ember HRID is replaced with the central HRID, and the source field changes from FOLIO or MARC to FOLIO-shared or MARC-shared.

  4. However, when the user refreshes their screen in the member tenant, or navigates away from the instance and back to it, the next time (and all subsequent times) that they view the instance details, they will be viewing the central instance's details, even though they are in the member tenant. That means they will see Source = FOLIO or MARC, and no mention of -shared in the Source field.

  5. So the attached video documents that one case where they (very temporarily) see source = x-shared in the instance details, and what they will see after they refresh their screen.

if we have any TestRails that refer to source = MARC-shared or FOLIO-shared, except for the test for this story's scenario 5, we'll need to update them to just refer to source = MARC or source = FOLIO

Please let me know if that helps, and if you have any questions. Thank you!

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Folijet

Fix versions

Release

Poppy (R2 2023)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created June 13, 2023 at 1:12 PM
Updated January 23, 2024 at 4:51 PM
Resolved October 9, 2023 at 1:22 PM
TestRail: Cases
TestRail: Runs