This adds ability to refresh the list of uploaded videos without refreshing the whole page.
Added a refresh button that when clicked:
- fetches a fresh list of uploaded files from the server
- updates `PreviousVideoUploadListView`
- removes the successfully completed uploads from `ActiveVideoUploadListView`
- retains the ongoing or failed uploads in `ActiveVideoUploadListView` so that they can be monitored/retried
The view can also be refreshed without user action, but I felt it may be less surprising to have a button instead.
MA-333 update: auto-refresh list, fix test failure
Changes:
1. Refresh of file list triggered by upload completion. Refresh button retained and label changed to "Refresh List".
2. Added `aria-live="polite"` to `.active-video-upload-list` and `.assets-table`.
3. Removed unused parameter `evt`.
4. Added self to the `AUTHORS` file.
MA-333 update: added tests
MA-333 update: removed refresh button
MA-333 update: address review comments of @mushtaqak
MA-333 update: simplify nested `_each`
MA-333 update: rename viewRefresh to isViewRefresh
MA-333 update: doc string for `clearSuccesful`
MA-333 update: fix accessibility
MA-333 update: update only successfully uploaded videos
MA-333 update: use window.SR feature to notify screen readers that video upload was successful (@pomegranited)
TNL-925
* Fix semicolons
* Use stage constants
* Group var declarations
* Add errorStage function
* Use constant for cookie name
* Use promises instead of callbacks
* Use fn.bind
* Improve error handling on upload stage
Context: We have witnessed multiple, seemingly random "CSRF verification
failed" errors while signing in (with valid ID) to the Studio.
Explanation: The login form does not initially include a CSRF field.
The CSRF header of the request is appended to the studio login request
headers by intercepting the form validation. This intercept is performed
by the login.js script. Unfortunately, the login.js script is loaded
pretty late (at the end of the template). So if the login form is
validated sufficiently fast, the login.js script has no time to load and
append the X-CSRFToken header to the request.
Proposed solution: the CSRF token is already passed to the template via
the login view, so we just add a hidden field to the login form to
include the csrf token.
Admin ("Instructor") - Can edit and assign permissions to other users
Normal ("Staff") - Can edit
User - Can view the library and use content from it but cannot edit it or its blocks.