STRIPES-701 Requirements

Requirement: GIVEN I access a detail record WHEN I return to the Results List THEN focus should return to the result or in the area I was on AND not return to the top of the page so that I do not scroll. This logic should apply to whether the layout is a two-pane or three-pane.  Related JIRA also reported by Univ of Chicago Usability Testing Findings

Goals | Juniper Goal (dev complete by May 21st)

  1. Basic pagination [Previous | Next option is the minimum implementation]  use new pagination component - 
  2. Ensure result remains in view when user returns to the results list 
  3. Apply implementation to Inventory app


Assumptions

  1. Development supports any app using Search and Sort/SASQ
  2. Development does not replace Load More. It is an additional option for displaying results
  3. Development accounts for whether it is a two pane or three pane layout
  4. Regardless of whether an exact count or estimated count is returned. UX is the same. 
  5. Complies with WCAG 2.1 AA


Results List Count - What we know

  1. A results list up to 1000 results returns exact count 
  2. More than 1000 results returns an estimated count 
  3. It is possible to fetch the exact count by using "limit=0"
    1. BUT it can a performance killer due to lack of indexes and due to required joins on multi-table searches (instance + holding + item)
    2. Might be useful to fetch on user request (click a "get exact count" button)
  4. Is it possible to configure the # of results that return an exact count before estimated count is returned (hardcoded in the module; cannot been configured per installation or tenant) 
  5. Details: https://github.com/folio-org/raml-module-builder#estimated-totalrecords 
  6. See also the rounding issue: UXPROD-2623 - Getting issue details... STATUS


#of results display per page

  1. Default 100 (it is the maximum)
  2. It is configurable (per app)  


Pagination - User Experience 

Given the #of results display per page = 100

When the user conducts a search and returns less than 101 results 

Then No pagination component should display


Given the #of results display per page = 100

When the user conducts a search and is more than than 100 results

Then display pagination component 


Given the # of results returned is less than 1001 

When I hit the last page of results 

Then only display Previous pagination 


Given the # of results returned is more than 1001 

When I hit Next pagination 

AND there are no more results 

Then only display Previous pagination AND display a No more results message on the UI. 


Result position when an action has been taken on a detail record - User Experience (not focus is on Inventory app but assume this applies to other apps)

Given I edit a record that is the 50 result displayed out of 100

When I return to the result 

Then result 50 should be in view


Given I duplicate a record that is the 50 result displayed out of 100

When I return to the result 

Then result 50 should be in view


Given I add a holding/item to a record that is the 50 result displayed out of 100

When I return to the result 

Then result 50 should be in view


Given I view source on a record that is the 50 result displayed out of 100

When I return to the result 

Then result 50 should be in view 


Given I am viewing a record that is 50 result displayed out of 100 

When I go to another app 

AND return to this inventory app 

Then result 50 should be in view



Pagination component design options - Old 

Kimie's mockups


Gmail implementation


Cornell - Bottom of results list display - https://newcatalog.library.cornell.edu/


Cornell - Top of results list display - https://newcatalog.library.cornell.edu/ 


NYPL - bottom of results list display - https://browse.nypl.org/



BPL - top of results list display  (https://bpl.bibliocommons.com/)


BPL - bottom of results list display  (https://bpl.bibliocommons.com/)