Improve Search / Findability on Book Manager pages
Context
The Silverlight CMS permits its users to search and find content by search by domain name, title, collection, publisher. It also permits users to sort and filter its dashboard tables by critical details, such as filename, filetype, last updated, last published, and status of the content. The BCMS should ideally permit the same level of search / findability by its users so that they may easily find the content they are required to manage.
Issues that need to be solved for the MVP: Significant chapter-processed book NIH-funded stakeholder editorial teams report they cannot easily find the chapters they need to download or process individually or in bulk to update, fix errors, or QA by title, filename, history details, and status.
Impact if this issue is not solved: If this issue is not resolved, it puts at risk Bookshelf’s ability to onboard its users to the BCMS without great resistance from them and adds significant time in adding new and updated content to Bookshelf. Bookshelf staff get weekly / monthly complaints from NIH Word users who are doing conversion in BCMS now.
Proposal
Provide following search on Book Manager pages without compromising Files Management, TOC Building, and Processing Integration User Stories:
- By title
- By filename
- By BCMS ID
And filter by:
- By status
- Last updated
- Last published
- Division
Design
Design option 1: support search with Book manager redesign (chosen)
- Users type text in the Search input to search by:
- By title
- By filename
- By BCMS ID
- Users make selection from the filters dropdown to search by:
- Status (multiple select)
- Division (single select)
- Last updated (date range picker)
- Last published (date range picker)
- UI indicates how may results there are, for example "Showing 100 results of 500".
- UI indicates different states for the filter buttons (options selected/no options selected).
View prior to search: filters shown
Users actions and results
- The user chooses filter options and/or types in the search text area, then selects "search" button
- Results are shown in a flat structure, paginated, and include results from all book divisions (front/body/back).
- Users can select some or all of the results to perform bulk actions from the bottom bar: Publish, Reload Preview, Submit
- User can clear and re-enter text from the Search input area, and see the results change accordingly.
- User can clear and reselect options from the filer dropdowns, Select "Search" button, and see the results change accordingly
- To clear the results completely, the user selects the "Clear" button which clears the search results, and shows the Book Manager in the Tabs(Front/Body/Back) view.
Search results view: with warning notification
Acceptance criteria
-
When users load a Book Manager page the default view will be the main Book Manager Dashboard view with Front | Body | Back tabs, pagination, and all contents ordered according to manual and automatic sorting and grouping settings and rules -
Users will see on the top right of the Book Manager Dashboard view, filters to filter these contents by Division, Status, Last Updated, Last Published, a Search box to search the contents by title, filename, or BCMS ID, and the ability to Show filter and Clear filters -
When users select any Filter or conduct a search, the view will change to a Search Results view that shows only record titles (without any nesting) from most recent to oldest according to the last updated date -
If a user wishes to return to a main Book Manager Dashboard view, they will click the "Clear" button on the top right of any page of the search results
Filters Functionality
-
Users may filter their contents on the main Book Manager Dashboard by: -
Select only one BCMS supported division in which a component belongs in a Table of Contents (i.e., parent structural units of a book): Front | Body | Back -
Select one or more BCMS supported statuses documented at: https://docs.google.com/spreadsheets/d/1M4ZdBbzr2s4-PUXqEblfsKoPBUuk4aG343u9ZAUn_Tk/edit#gid=0 -
The last updated date, which is the last time any user has upload files or conducted any action listed at: https://docs.google.com/spreadsheets/d/1M4ZdBbzr2s4-PUXqEblfsKoPBUuk4aG343u9ZAUn_Tk/edit#gid=0 -
The last published date, which is the last time any user successfully "published" a component on Bookshelf (meaning it has been released to the Bookshelf live site)
-
-
Users may select one or more statuses in a Status dropdown filter -
To filter by Last updated, users may select a date range by which they wish to filter their contents, which will include a first date and a last date, which may be the same date, styled according to clear YYYY/MM/DD standards, where that format is clearly communicated to the user in the UI -
To filter by Last published, users may select a date range by which they wish to filter their contents, which will include a first date and a last date, which may be the same date, styled according to clear YYYY/MM/DD standards, where that format is clearly communicated to the user in the UI -
A user may filter a page of already filtered or searched results -
If a filter has option(s) selected, then it is shown as active by a different colour
-
Search Functionality
-
Users may search by the title and subtitle of their Front Matter document, Back Matter document, Chapter, or Part -
The BCMS will only search what is equivalent to the text strings in the <title>
and<subtitle>
elements in the<title-group>
elements of the<book-part-meta>
of each<book-part-wrapper>
converted XML file in a chapter-processed book for Front Matter documents, Back Matter documents, Chapters, and Parts with Body (when supported), and -
The BCMS will search the Title field in the UI for Parts maintained in the BCMS UI -
The BCMS search will be case insensitive -
The BCMS search will return results that contain any part of a search query
-
-
Users may search by the filename of their source and converted Front Matter documents, Back Matter documents, Chapters, and Parts with Body (when supported) files -
The BCMS search will be case insensitive -
The BCMS search will return results that contain any part of a search query
-
-
Users may search by the BCMS ID for their Front Matter documents, Back Matter documents, Chapters, and Parts with Body (when supported) -
The BCMS search will require an exact match of the base ID, anything before the period, -
For instance for a record with a BCMS ID of bcms2100.1, user must at least enter bcms2100 to retrieve it
-
-
-
A user may further search a page of already filtered or searched results
Search Results View Functionality
-
A user can apply a filter or conduct a search from any tab on the Book Manager page (Front | Body | Back) or any paginated page within those tabs -
Regardless of what tab/page a user was viewing when they did a filter and/or search action, that filter and/or search applies across all tabs and paginated pages within a book -
After a user completes a filter and/or search action, they will see a single Search Results View page. This means: -
There is not a separate Results view page for each tab. -
Users will no longer see the Front | Body | Back division tabs while on a Search Results page -
To bring back the the Front | Body | Back division tabs, a user must clear all searches and filters by clicking the Clear button at the top right of any page
-
-
All search results on a Search Results page will be paginated, and each paginated page will match the number of results per page according to the rules specified in #1480 (closed) for the main book manager page, where a record may be: -
A front matter document title, back matter document title, chapter title, part title, and in which -
Part records may not be expanded or collapsed
-
-
The number of results that meet the selected filters and/or search will be indicated at the top of the Search Results page before the first results (e.g., "Showing 100 results of 500") -
All search results, including Parts without files, will be displayed in order of most recent to oldest according to the last updated date, where this is clearly indicated at the top of the Search Results page before the first results (e.g., (e.g., "Showing 100 results of 500, sorted by most recent") -
Users can select, one or more, or all results on a paginated page and click to Move (i.e. Move a Front Matter document, Back Matter document, Part and all of its descendant Parts and Chapter), or Chapter in the Table of Contents) -
User will not be able to “Move” selected items if all selected items do not belong to the same Front, Body, or Back division, in which case -
User will see a gray informational warning them why they cannot move these items with a link for more information, which the -
User can acknowledge and tell the system to not show them again within any user session
-
-
-
User will only be able to "Move" selected items if they are in a book with a “Landing Page: Table of Contents” Setting that permits "Manual" movement within a part or before or after another part or chapter, including -
Parts and Chapters in books with “Group chapters into parts” AND/OR -
Chapters in books with "Order chapters by" Manual
-
-
-
Users can Upload new book files from a Search Results view page -
Search Results View pages and their paginated results will "stick" and not change until a user does the following: -
Conducts a new filter or search -
Clicks on the Next, Previous, or a Page number at the bottom of the page to see the next set of search results -
Clicks Clear to clear the results and return the user to the main Book Manager view -
Clicks the Back to Book title link at the top of the page -
Leaves that book's chapter-processed Book Manager UI
-
-
Users will see the label, title, file name, last updated date, last published date for each retrieved search results -
Users can select one, some, or all of the results on a page to perform bulk actions from the bottom bar: Move, Publish, Reload Preview, Submit -
User will not be able to conduct any action if all selected items are not in a status that would permit them to conduct this action, according to the rules at: https://docs.google.com/spreadsheets/d/1M4ZdBbzr2s4-PUXqEblfsKoPBUuk4aG343u9ZAUn_Tk/edit#gid=0
-
Performance of Search Results Page
-
A search results page will load within 20sec -
All select boxes will be responsive within 5sec
Definition of ready
-
BCMS User Story / Context has been well defined -
The priority of the user story is specified and agreed -
Digital assets added (design, database scheme, mockups etc if relevant) -
Coko Technical Proposal approved by NCBI -
Testable Acceptance Criteria approved by NCBI -
Estimate of effort to complete (time or points) -
The issue has been broken down into development tasks (if necessary) -
Requirements Clarified -
The product owner and development team agree that the user story is ready for development -
NCBI adds “Dev_Ready”
Definition of done
-
All coding tasks are finished and implemented by Coko -
All unit and end-to-end tests written, implemented, and run by Coko -
QA approved by Coko -
Deployed and tested on “ncbidev” (by Coko team) -
Deployed and tested on “ncbi” (by NCBI team) -
Deployed and tested by NCBI in NCBI deployed instance and tested by all necessary user -
NCBI approves Acceptance Criteria Met
Implementation
Alternative approaches (not chosen)
Alternative approaches (not chosen)
Proposal A: minimal improvements to current search
Currently the Book manager page supports search by
- By title
- By filename
- Search by Status possible, but users have to use a hyphen to search by the full status =name because search is current done on the status name saved in the database. For example: Users can find chapters in "Loading Errors Status if they search with:
- one word
loading
orerrors
) - two words
loading-errors
- one word
To add full support for search by Status and search by BCMS ID we estimate 1 day developer time.
OR, with redesign:
Design option 2
Development estimate 3 days
This is compatible with Design option 3 in the Design options for resolving chapter-processed book manager performance issues (#1480 (closed))
- Search functions as described in design option 1
- Results are shown, paginated.