Extend “bulk move” functionality to support books without parts
Context
The context is provided in the Epic &2 and Table of contents building user stories in #1458 (closed).
Table of contents list can be very long. Drag and drop functionality is not suitable for moving items to a position that is far from the default position (top of the body division). For books that do not have parts, there is no alternative to drag and drop currently.
Proposal
Extend “bulk move” functionality to support:
- bulk moving on Front and Back tabs
- bulk move chapters in books without parts.
- bulk move parts and chapters in books with parts
Design
Current UI
Currently users can only move one or more chapters into a part
New Design
Book without parts
Users can move chapters above or below another chapter
Book with parts
Users can move chapters and parts above or below another chapter or part, or inside another part
Acceptance criteria
Applies to All
-
All criteria apply to System Admin, Org Admin and Editors
Select Functionality to Bulk Move Records from Book Manager and Search Results pages
-
On each paginated page in the Front, Body, and Back tabs of the main Book Manager Dashboard, users can select one or multiple records using the select box next to the records, or select all records using the Select All function. -
On each paginated page in the Search Results view, users can select one or multiple records using the select box next to the records, or select all records using the Select All function. -
The select boxes will be responsive within 5 seconds
Display and Functionality of Move action button on Book Manager and Search Results pages
-
In all cases, users can only move records on Book Manager pages in a status defined as "Yes" in Column T of the documented rules rules in the Status/Actions sheet -
In all cases, if there are no selected components in a status that can be moved, the Move button will not be clickable on the paginated pages
Move from Book Manager Page
- Front Matter
-
IF the "Front" tab contains any front matter documents in a status that may be moved, it will have a clickable Move action button at the bottom of every paginated page. The "Move" button allows the user to: -
Move selected Front Matter documents before or after another Front Matter document in the Table of Contents
-
- Body without Parts, Manual
-
IF a user has the “Group chapters into parts” setting toggled OFF AND the "Manual" value selected in the "Order chapters by" dropdown in the “Landing Page: Table of Contents” section of the book's Settings AND the "Body" tab contains Chapters in a status that may be moved, they will see a clickable Move action button at the bottom of every paginated page. The "Move" button allows the user to: -
Move selected Chapters before or after another Chapter in the Table of Contents
-
- Body without Parts, Auto-sorted
-
IF a user has the “Group chapters into parts” setting toggled OFF AND any value other than "Manual" selected in the "Order chapters by" dropdown in the “Landing Page: Table of Contents” section of the book's Settings, they will NOT see a clickable Move action button at the bottom of every paginated page.
- Body with Parts, with Manual Chapters
-
IF a user has the “Group chapters into parts” setting toggled ON AND the "Manual" value selected in the "Order chapters by" dropdown in the “Landing Page: Table of Contents” section of the book's Settings AND the "Body" tab contains chapters in a status that may be moved, they will see a clickable Move action button at the bottom of every paginated page. The "Move" button allows the user to: -
Move selected Chapters before or after another Chapter or Part in the Table of Contents -
Move selected Parts before or after another Part or Chapter in the Table of Contents -
Move selected Chapters within any Part in the Table of Contents -
Move selected Parts and all of their descendent Parts and Chapters within any other Part in the Table of Contents
-
- Body with Parts, with Auto-sorted Chapters
-
IF a user has the “Group chapters into parts” setting toggled ON AND any value other than "Manual" selected in the "Order chapters by" dropdown in the “Landing Page: Table of Contents” section of the book's Settings AND the "Body" tab contains chapters in a status that may be moved, they will see a clickable Move action button at the bottom of every paginated page. The "Move" button allows the user to: -
Move selected Parts before or after another Part or Chapter in the Table of Contents -
Move selected Chapters within any Part in the Table of Contents -
Move selected Parts and all of their descendent Parts and Chapters within any other Part in the Table of Contents
-
- Back Matter
-
If the "Back" tab contains back matter documents in a status that may be moved, it will have a clickable Move action button at the bottom of every paginated page. The "Move" button allows the user to -
Move selected Back Matter documents before or after another Back Matter document in the Table of Contents managed from the Back tab of the Book Manager page
-
Move from Search Results Page
-
The Move button on the paginated Search Results pages will display and function according to the rules outlined in the Acceptance Criteria for #1467 (closed)
Display and Functionality of Move Modal
-
In all cases, when a user clicks on the Move button it will open a modal window, which: -
Opens within 5 sec -
Opens in a position from which the user can still see the checkboxes selected by a user -
Lists the titles (title and subtitle) of the components selected to be moved at the top of the Move Modal
-
Move Modal opened from Book Manager Page
- From Front Tab
-
After a user opens the Move modal from within a Book Manager's Front tab, the user will be able to search for the Front Matter document title of the record they wish to move their selected item(s) before or after, and then the -
User can then click on a positioning button within the modal to execute the move. -
User will see "Move Above" or "Move Below" buttons. Clicking one of these buttons will move the Front Matter document to Above or below the specified title.
-
-
After a user has clicked a positioning button, the modal closes, and the user will be on the paginated page in the Front of the Book Manager Page which the parts and/or chapters moved to, not the page they move from, so that the user can see the move was successful, assuming this does not cause performance issues for the BCMS (i.e., the BCMS must continue to meet performance user stories), in which alternative design choices will be offered by Coko to NCBI for approval of implementation before development.
- From Body Tab with Book without Parts, Manual
-
After a user opens the Move modal from within a Book Manager's Body tab AND if that Book's “Landing Page: Table of Contents” Settings are set to “Group chapters into parts” OFF AND "Order chapters by" Manual, then the: -
User will be able to search for the Chapter title of the record they wish to move their selected item(s) before or after, and then the
-
-
User can click on a positioning button within the modal to execute the move. -
User will see "Move Above" or "Move Below" buttons. Clicking one of these buttons will move the Chapter to Above or below the specified title.
-
-
After a user has clicked a positioning button, the modal closes, and the user will be on the paginated page in the Body of the Book Manager Page which the parts and/or chapters moved to, not the page they move from, so that the user can see the move was successful, assuming this does not cause performance issues for the BCMS (i.e., the BCMS must continue to meet performance user stories), in which alternative design choices will be offered by Coko to NCBI for approval of implementation before development.
- From Body Tab with Book with Parts, with Manual Chapters
-
After a user opens the Move modal from within a Book Manager's Body tab when a book's “Landing Page: Table of Contents” Settings are set to “Group chapters into parts” ON AND "Order chapters by" Manual, then -
Users will see a "Move Inside Part, "Move Above" or "Move below" buttons, and -
Clicking the "Move above" or "Move below" button will move selected Part(s) and all of their descendants, and/or Chapter(s), above or below the specified title. -
Clicking "Move Inside Part" will move selected Part(s) and all of their descendants, and/or Chapter(s) within the specified title -
by nesting them as the first children of that Part Title if manually ordered in the order in which they were selected to be moved
-
-
-
-
After a user has clicked a positioning button, the modal closes, and the user will be on the paginated page of the Body of the Book Manager in which the parts and/or chapters moved to, not the page they move from, so that the user can see the move was successful, assuming this does not cause performance issues for the BCMS (i.e., the BCMS must continue to meet performance user stories), in which case, alternative design choices will be offered by Coko to NCBI for approval of implementation before development. -
The action of moving selected items Before or After must be done separately from the action of moving selected items within a Part -
For instance, if the user adds a new chapter X and wants to both manually move chapter X (placed by default at the top of the Body) so it appears in the Table of Contents after chapter Y, then move the part C with chapters X and Y within a part D, the user would need to: -
First select chapter X on the Book Manager page, click Move, search for chapter Y, select chapter Y, click Move Below, and then after that action is complete and the Move modal closes, -
Then select part C on the Book Manager page, click Move, search for part D, click Move inside part, which will move part C with chapters Y and X (and any other within part C) as a child directly nested at the very top of part D
-
-
- Body with Parts, with Auto-sorted Chapters
-
After a user opens the Move modal from within a Book Manager's Body tab when a book's “Landing Page: Table of Contents” Settings are set to “Group chapters into parts” ON AND "Order chapters by" and value OTHER THAN Manual, then -
Users will see a "Move Inside Part, "Move Above" or "Move below" buttons, and -
Clicking the "Move above" or "Move below" button will move selected Part(s) and all of their descendants above or below the specified Part or Chapter title. -
Clicking "Move Inside Part" will move selected Part(s) and all of their descendants within the specified title -
by nesting them as the first children of that Part Title if manually ordered in the order in which they were selected to be moved
-
-
-
-
After a user has clicked a positioning button, the modal closes, and the user will be on the paginated page of the Body of the Book Manager in which the parts and/or chapters moved to, not the page they move from, so that the user can see the move was successful, assuming this does not cause performance issues for the BCMS (i.e., the BCMS must continue to meet performance user stories), in which case, alternative design choices will be offered by Coko to NCBI for approval of implementation before development. -
The action of moving selected items Before or After must be done separately from the action of moving selected items within a Part -
For instance, if the user adds a new part X and wants to both manually move part X (placed by default at the top of the Body) so it appears in the Table of Contents after part Y, then move parts X and Y within part A, the user would need to: -
First select part X on the Book Manager page, click Move, search for part Y, select part Y, click Move Below, and then after that action is complete and the Move modal closes, -
Then select parts X and Y on the Book Manager page, click Move, search for part A, click Move inside part, which will move parts X and Y (and any of their associated descendants) as direct children at the top of part A ordered by last updated date
-
-
- Back Matter
-
After a user opens the Move modal from within a Book Manager's Back tab, the user will be able to search for the Back Matter document title of the record they wish to move their selected item(s) before or after, and then the -
User can then click on a positioning button within the modal to execute the move. -
User will see "Move Above" or "Move Below" buttons. Clicking one of these buttons will move the Back Matter document to Above or below the specified title.
-
-
After a user has clicked a positioning button, the modal closes, and the user will be on the paginated page in the Back of the Book Manager Page which the parts and/or chapters moved to, not the page they move from, so that the user can see the move was successful, assuming this does not cause performance issues for the BCMS (i.e., the BCMS must continue to meet performance user stories), in which case, alternative design choices will be offered by Coko to NCBI for approval of implementation before development.
Move Modal opened from Search Results Page
-
A user may only open the Move modal from within a Book Manager's Search Results page if all selected components are in the same division (Front | Body | Back) according to the acceptance criteria outlined in #1467 (closed) for the Search Results View page functionality
- All Front Matter Components
-
Per the same acceptance criteria for opening a Modal from a Book Manager Front tab
- All Body Components
-
Per the same acceptance criteria for opening a Modal from a Book Manager in the case of From Body Tab with”All Chapters without Parts, Manual,” “Book with Parts, with Manual Chapter,s” or “Body with Parts, with Auto-sorted Chapters”
- All Back Matter Components
-
Per the same acceptance criteria for opening a Modal from a Book Manager Back tab
Search Functionality
-
The BCMS will only search the text strings in the <title-group>
elements of the<book-part-meta>
of each<book-part-wrapper>
converted XML file in a chapter-processed book -
The BCMS search will be case insensitive and return results that contain any part of a search query, if that Title: -
Is not one of the records to be moved, and -
If it is a Title that the user can move a Front Matter document, Back Matter document, Part or Chapter before or after, including: -
A user can move a manually ordered Part before or after a Chapter which is automatically ordered according to a supported sort order, for instance as in this case: https://ncbi.cloud68.co/organizations/d400f251-44e8-44f4-9c27-58d25a09f849/bookmanager/22545acf-246e-41cf-8621-cbaf4f61dd60
-
-
-
All relevant results will be returned on the modal page.
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 end-to-end tests written 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 users in their native work environments -
NCBI approves that Acceptance Criteria Met
Implementation (if applicable)
Development tasks broken down in Tasks below: #1510 (closed), #1511 (closed), #1512 (closed)