Commit 9d5a9568 by swdanielli

limit the response dataType to json

parent 8e8f8fa6
......@@ -362,6 +362,7 @@ class RecommenderXBlock(HelperXBlock):
tracker.emit(event, {'uploadedFileName': 'FILE_TYPE_ERROR'})
response.status = 415
response.body = json.dumps({'error': file_type_error_msg})
response.headers['Content-Type'] = 'application/json'
return response
# Check whether file size exceeds threshold (30MB)
......@@ -370,6 +371,7 @@ class RecommenderXBlock(HelperXBlock):
tracker.emit(event, {'uploadedFileName': 'FILE_SIZE_ERROR'})
response.status = 413
response.body = json.dumps({'error': 'Size of uploaded file exceeds threshold'})
response.headers['Content-Type'] = 'application/json'
return response
return file_type
......@@ -383,6 +385,7 @@ class RecommenderXBlock(HelperXBlock):
tracker.emit(event, {'uploadedFileName': 'IMPROPER_FS_SETUP'})
response.status = 404
response.body = json.dumps({'error': error})
response.headers['Content-Type'] = 'application/json'
return response
def _init_template_lookup(self):
......@@ -556,8 +559,8 @@ class RecommenderXBlock(HelperXBlock):
return self._raise_pyfs_error('upload_screenshot')
response = Response()
response.body = str("fs://" + file_name)
response.headers['Content-Type'] = 'text/plain'
response.body = json.dumps({'file_name': str("fs://" + file_name)})
response.headers['Content-Type'] = 'application/json'
tracker.emit('upload_screenshot',
{'uploadedFileName': response.body})
response.status = 200
......@@ -815,7 +818,7 @@ class RecommenderXBlock(HelperXBlock):
Import resources into the recommender.
"""
response = Response()
response.headers['Content-Type'] = 'text/plain'
response.headers['Content-Type'] = 'application/json'
if not self.get_user_is_staff():
response.status = 403
response.body = json.dumps({'error': 'Only staff can import resources'})
......@@ -850,7 +853,6 @@ class RecommenderXBlock(HelperXBlock):
data['recommendations'] = self.recommendations
tracker.emit('import_resources', {'Status': 'SUCCESS', 'data': data})
response.headers['Content-Type'] = 'application/json'
response.body = json.dumps(data, sort_keys=True)
response.status = 200
return response
......
......@@ -221,6 +221,7 @@ function RecommenderXBlock(runtime, element, init_data) {
cache: false,
processData: false,
async: false,
dataType: 'json',
success: function(result) {
/* Rendering new resources */
$('.recommenderResource', element).remove();
......@@ -442,11 +443,17 @@ function RecommenderXBlock(runtime, element, init_data) {
cache: false,
processData: false,
async: false,
dataType: 'json',
success: function(result) {
/* Writing the resource to database */
data['description'] = result;
if (writeType === writeDatabaseEnum.ADD) { addResource(data); }
else if (writeType === writeDatabaseEnum.EDIT) { editResource(data); }
if ('success' in result && result['success'].search('Submission aborted!') > -1) {
upload_file_error(result['success']);
}
else {
data['description'] = result['file_name'];
if (writeType === writeDatabaseEnum.ADD) { addResource(data); }
else if (writeType === writeDatabaseEnum.EDIT) { editResource(data); }
}
},
error: function(result) {
/**
......@@ -456,15 +463,26 @@ function RecommenderXBlock(runtime, element, init_data) {
* 413: Size of uploaded file exceeds threshold
*/
var data = JSON.parse(result.responseText)
if (data.error) { alert(data.error); }
$("input[name='file']", formDiv).val('');
if (writeType === writeDatabaseEnum.ADD) { enableAddSubmit(); }
else if (writeType === writeDatabaseEnum.EDIT) { enableEditSubmit(); }
if (data.error) { upload_file_error(data.error); }
else { upload_file_error('file uploading error'); }
},
});
}
/**
* When error occurs during file uploading, warn the user and reset the form.
* @param {string} error_msg Error message showed to the user.
* @param {element} formDiv The submission form for the resource.
* @param {string} writeType The string indicating we are going to add or edit resource.
*/
function upload_file_error(error_msg, formDiv, writeType) {
alert(error_msg);
$("input[name='file']", formDiv).val('');
if (writeType === writeDatabaseEnum.ADD) { enableAddSubmit(); }
else if (writeType === writeDatabaseEnum.EDIT) { enableEditSubmit(); }
}
/**
* Bind the event for adding a resource into the recommender.
*/
function bindResourceAddEvent() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment