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.
34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
/**
|
|
* Provides helper methods for invoking Validation modal in Jasmine tests.
|
|
*/
|
|
define(['jquery', 'js/spec_helpers/modal_helpers', 'js/spec_helpers/view_helpers'],
|
|
function($, modal_helpers, view_helpers) {
|
|
var installValidationTemplates, checkErrorContents, undoChanges;
|
|
|
|
installValidationTemplates = function () {
|
|
modal_helpers.installModalTemplates();
|
|
view_helpers.installTemplate('validation-error-modal');
|
|
};
|
|
|
|
checkErrorContents = function(validationModal, errorObjects) {
|
|
var errorItems = validationModal.$('.error-item-message');
|
|
var i, item;
|
|
var num_items = errorItems.length;
|
|
expect(num_items).toBe(errorObjects.length);
|
|
|
|
for (i = 0; i < num_items; i++) {
|
|
item = errorItems[i];
|
|
expect(item.value).toBe(errorObjects[i].message);
|
|
}
|
|
};
|
|
|
|
undoChanges = function(validationModal) {
|
|
modal_helpers.pressModalButton('.action-undo', validationModal);
|
|
};
|
|
|
|
return $.extend(modal_helpers, {
|
|
'installValidationTemplates': installValidationTemplates,
|
|
'checkErrorContents': checkErrorContents,
|
|
'undoChanges': undoChanges,
|
|
});
|
|
}); |