The CSS is also restructured a bit to style both the progress bar and
the status text based on the state of the upload using a single class
on the parent element.
Course and Library keys cannot contiain !'()* special characters,
but the JS validation on the new course/library failed to detect
these characters.
`encodeURIComponent` is used to check the string for special characters,
but `encodeURIComponent` does not encode these characters: -_!~*'().
(see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)
The -_~ characters are allowed in course keys, but !'()* are not,
so add an explicit check for these characters to make sure a field
containing these characters does not pass the validation.
It looks like the 'New Course'/'New Library' buttons on the studio home page.
Clicking the 'Add Component' button scrolls down to the 'Add New Component' buttons.
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.
This hotfix patches the functionality of the GridFS PR
by dismissing the error msg when the user uploads a large
file and fails, then uploads a regular file. This
includes a Jasmine test to cover this case.
This commit puts a limit on the size of files that
course staff can upload to MongoDB. The limit is
enforced on the frontend in javascript as well
as backend via the /upload endpoint.
The limit is hard-coded in cms/envs/common.py and
may be changed according to the user's custom
needs.
If the user tries to upload a file that's too
large, an error message will pop up, with a
customizable url that pointing the user to an
external page with an alternate upload procedure.
This url is specified im cms/envs/common.py.
If not set, this url will not be displayed.
This commit adds validation for course advanced settings. Currently when course
administrators make invalid changes in the Settings/Advanced Settings tab,
they're not notified through a new modal window of the list of invalid settings
changes.
* Extending CourseMetadata
- Previously, we only had update_from_json method in CourseMetadata.py,
and it was only validating one field every POST request.
- Now we have validate_and_update_from_json method that encapsulates the
functionality of update_from_json into a validation call
- To avoid discrepancy of validation standards between modules, validation
uses the from_json method implemented to each field in xblock.
* Different Response in advanced settings ajax requests
- After receiving a POST ajax request, course.py calls
validate_and_update_from_json, and sends a json object of either:
1) valid course metadata model
2) error objects
* Error Messages shown in validation-error-modal
- error objects passed through ajax are shown in a separate modal.