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)
Basic pagination [Previous | Next option is the minimum implementation] use new pagination component -
Ensure result remains in view when user returns to the results list
Apply implementation to Inventory app
Assumptions
Development supports any app using Search and Sort/SASQ
Development does not replace Load More. It is an additional option for displaying results
Development accounts for whether it is a two pane or three pane layout
Regardless of whether an exact count or estimated count is returned. UX is the same.
Complies with WCAG 2.1 AA
Results List Count - What we know
A results list up to 1000 results returns exact count
More than 1000 results returns an estimated count
It is possible to fetch the exact count by using "limit=0"
BUT it can a performance killer due to lack of indexes and due to required joins on multi-table searches (instance + holding + item)
Might be useful to fetch on user request (click a "get exact count" button)
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)
Details: https://github.com/folio-org/raml-module-builder#estimated-totalrecords
See also the rounding issue: https://folio-org.atlassian.net/browse/UXPROD-2623
#of results display per page
Default 100 (it is the maximum)
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/)