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: - UXPROD-2623Getting issue details... STATUS
#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/)