A global uploads UI to show all uploads that in progress for that user
Context
This idea came up in scoping #1495. When users uploads a lot of files at once this can take some time. Ideally users should not be blocked from doing other work in the BCMS while they wait for the files to complete uploading.
Proposal
Add a "global uploads" UI to show all bulk uploads that are in progress for that user. This includes:
- chapter source files
- wholebook source files
- files associated to chapter or book: images, supplementary, display PDFs
This would allow users to navigate away for from a page that has a large amount of uploads that are taking some time, so that they can continue work somewhere else in the BCMS, and then see when those uploads are complete so that they can come back to the book in question.
This should be developed in tandem with #1496
Design
Wireframe: Example from Dashboard page
This global uploads UI will be visible from all BCMS pages so that users can see a progress indicator and expand/open it to view details of the progress on all their uploads.
The icon gives the user information before they select to detail. Icon:
- Uploads complete
- Uploads in Progress
- Uploads with errors
Detail shown when user clicks on Icon
- The UI will include a list of files names and an indication of upload stage: uploading, complete, and failed.
- In the case of a failed upload, there will be text to help the user resolve the issue, for example: “filename.jpeg failed to upload to [folder name] in
[bcms ID](link to page)
”
Acceptance criteria
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 -
QA approved -
Deployed and tested on “ncbidev” (by Coko team) -
Deployed and tested on “ncbi” (by NCBI team) -
Acceptance Criteria Met
Implementation
Dev tasks:
- getting progress of the upload in percentage (backend)
- show percentage progress of the upload to visually (frontend)
- getting file status of the upload (backend)
- showing file status of the upload (frontend)
- we can keep the data of all uploads in the backend so that if there is an activity stream functionality in the future, we can expose it. (note we didn't include this in the original estimate)
- uploads list is per user session. The drawer is emptied when the the user signs out or refreshes the page
- user can dismiss failed or successful uploads
- Question: Should users be able to cancel an upload in progress? Note We think this is preferable however we didn't include this in estimate.
Future extensions (if needed)
- Implement chunked file uploads: Especially for big files we will consider splitting the file into smaller chunks and upload them individually. Implement logic on the client-side to divide the file into chunks and send them to the server sequentially.
- Handle interruptions and resume uploads: Implement logic to handle interruptions during file uploads, such as network failures or user-initiated pauses. Store the upload progress on the server and allow users to resume interrupted uploads from where they left off. (This is an extension to the main feature/not included in estimate)
Scheduling
Dev estimate: 15 days
-
Milestone is linked -
Iteration is linked -
Dependencies: ("None" or list issue numbers if relevant) -
Development estimate is added to issue time tracking