Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
RecommenderXBlock
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
RecommenderXBlock
Commits
a42e8e71
Commit
a42e8e71
authored
May 31, 2015
by
swdanielli
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #39 from pmitros/upload_file_bug
limit the response dataType to json
parents
e1697b64
9d5a9568
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
11 deletions
+31
-11
recommender/recommender.py
+6
-4
recommender/static/js/src/recommender.js
+25
-7
No files found.
recommender/recommender.py
View file @
a42e8e71
...
...
@@ -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/plai
n'
response
.
body
=
json
.
dumps
({
'file_name'
:
str
(
"fs://"
+
file_name
)}
)
response
.
headers
[
'Content-Type'
]
=
'
application/jso
n'
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/plai
n'
response
.
headers
[
'Content-Type'
]
=
'
application/jso
n'
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
...
...
recommender/static/js/src/recommender.js
View file @
a42e8e71
...
...
@@ -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
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment