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):
...
@@ -362,6 +362,7 @@ class RecommenderXBlock(HelperXBlock):
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'FILE_TYPE_ERROR'
})
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'FILE_TYPE_ERROR'
})
response
.
status
=
415
response
.
status
=
415
response
.
body
=
json
.
dumps
({
'error'
:
file_type_error_msg
})
response
.
body
=
json
.
dumps
({
'error'
:
file_type_error_msg
})
response
.
headers
[
'Content-Type'
]
=
'application/json'
return
response
return
response
# Check whether file size exceeds threshold (30MB)
# Check whether file size exceeds threshold (30MB)
...
@@ -370,6 +371,7 @@ class RecommenderXBlock(HelperXBlock):
...
@@ -370,6 +371,7 @@ class RecommenderXBlock(HelperXBlock):
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'FILE_SIZE_ERROR'
})
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'FILE_SIZE_ERROR'
})
response
.
status
=
413
response
.
status
=
413
response
.
body
=
json
.
dumps
({
'error'
:
'Size of uploaded file exceeds threshold'
})
response
.
body
=
json
.
dumps
({
'error'
:
'Size of uploaded file exceeds threshold'
})
response
.
headers
[
'Content-Type'
]
=
'application/json'
return
response
return
response
return
file_type
return
file_type
...
@@ -383,6 +385,7 @@ class RecommenderXBlock(HelperXBlock):
...
@@ -383,6 +385,7 @@ class RecommenderXBlock(HelperXBlock):
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'IMPROPER_FS_SETUP'
})
tracker
.
emit
(
event
,
{
'uploadedFileName'
:
'IMPROPER_FS_SETUP'
})
response
.
status
=
404
response
.
status
=
404
response
.
body
=
json
.
dumps
({
'error'
:
error
})
response
.
body
=
json
.
dumps
({
'error'
:
error
})
response
.
headers
[
'Content-Type'
]
=
'application/json'
return
response
return
response
def
_init_template_lookup
(
self
):
def
_init_template_lookup
(
self
):
...
@@ -556,8 +559,8 @@ class RecommenderXBlock(HelperXBlock):
...
@@ -556,8 +559,8 @@ class RecommenderXBlock(HelperXBlock):
return
self
.
_raise_pyfs_error
(
'upload_screenshot'
)
return
self
.
_raise_pyfs_error
(
'upload_screenshot'
)
response
=
Response
()
response
=
Response
()
response
.
body
=
str
(
"fs://"
+
file_name
)
response
.
body
=
json
.
dumps
({
'file_name'
:
str
(
"fs://"
+
file_name
)}
)
response
.
headers
[
'Content-Type'
]
=
'
text/plai
n'
response
.
headers
[
'Content-Type'
]
=
'
application/jso
n'
tracker
.
emit
(
'upload_screenshot'
,
tracker
.
emit
(
'upload_screenshot'
,
{
'uploadedFileName'
:
response
.
body
})
{
'uploadedFileName'
:
response
.
body
})
response
.
status
=
200
response
.
status
=
200
...
@@ -815,7 +818,7 @@ class RecommenderXBlock(HelperXBlock):
...
@@ -815,7 +818,7 @@ class RecommenderXBlock(HelperXBlock):
Import resources into the recommender.
Import resources into the recommender.
"""
"""
response
=
Response
()
response
=
Response
()
response
.
headers
[
'Content-Type'
]
=
'
text/plai
n'
response
.
headers
[
'Content-Type'
]
=
'
application/jso
n'
if
not
self
.
get_user_is_staff
():
if
not
self
.
get_user_is_staff
():
response
.
status
=
403
response
.
status
=
403
response
.
body
=
json
.
dumps
({
'error'
:
'Only staff can import resources'
})
response
.
body
=
json
.
dumps
({
'error'
:
'Only staff can import resources'
})
...
@@ -850,7 +853,6 @@ class RecommenderXBlock(HelperXBlock):
...
@@ -850,7 +853,6 @@ class RecommenderXBlock(HelperXBlock):
data
[
'recommendations'
]
=
self
.
recommendations
data
[
'recommendations'
]
=
self
.
recommendations
tracker
.
emit
(
'import_resources'
,
{
'Status'
:
'SUCCESS'
,
'data'
:
data
})
tracker
.
emit
(
'import_resources'
,
{
'Status'
:
'SUCCESS'
,
'data'
:
data
})
response
.
headers
[
'Content-Type'
]
=
'application/json'
response
.
body
=
json
.
dumps
(
data
,
sort_keys
=
True
)
response
.
body
=
json
.
dumps
(
data
,
sort_keys
=
True
)
response
.
status
=
200
response
.
status
=
200
return
response
return
response
...
...
recommender/static/js/src/recommender.js
View file @
a42e8e71
...
@@ -221,6 +221,7 @@ function RecommenderXBlock(runtime, element, init_data) {
...
@@ -221,6 +221,7 @@ function RecommenderXBlock(runtime, element, init_data) {
cache
:
false
,
cache
:
false
,
processData
:
false
,
processData
:
false
,
async
:
false
,
async
:
false
,
dataType
:
'json'
,
success
:
function
(
result
)
{
success
:
function
(
result
)
{
/* Rendering new resources */
/* Rendering new resources */
$
(
'.recommenderResource'
,
element
).
remove
();
$
(
'.recommenderResource'
,
element
).
remove
();
...
@@ -442,11 +443,17 @@ function RecommenderXBlock(runtime, element, init_data) {
...
@@ -442,11 +443,17 @@ function RecommenderXBlock(runtime, element, init_data) {
cache
:
false
,
cache
:
false
,
processData
:
false
,
processData
:
false
,
async
:
false
,
async
:
false
,
dataType
:
'json'
,
success
:
function
(
result
)
{
success
:
function
(
result
)
{
/* Writing the resource to database */
/* Writing the resource to database */
data
[
'description'
]
=
result
;
if
(
'success'
in
result
&&
result
[
'success'
].
search
(
'Submission aborted!'
)
>
-
1
)
{
if
(
writeType
===
writeDatabaseEnum
.
ADD
)
{
addResource
(
data
);
}
upload_file_error
(
result
[
'success'
]);
else
if
(
writeType
===
writeDatabaseEnum
.
EDIT
)
{
editResource
(
data
);
}
}
else
{
data
[
'description'
]
=
result
[
'file_name'
];
if
(
writeType
===
writeDatabaseEnum
.
ADD
)
{
addResource
(
data
);
}
else
if
(
writeType
===
writeDatabaseEnum
.
EDIT
)
{
editResource
(
data
);
}
}
},
},
error
:
function
(
result
)
{
error
:
function
(
result
)
{
/**
/**
...
@@ -456,15 +463,26 @@ function RecommenderXBlock(runtime, element, init_data) {
...
@@ -456,15 +463,26 @@ function RecommenderXBlock(runtime, element, init_data) {
* 413: Size of uploaded file exceeds threshold
* 413: Size of uploaded file exceeds threshold
*/
*/
var
data
=
JSON
.
parse
(
result
.
responseText
)
var
data
=
JSON
.
parse
(
result
.
responseText
)
if
(
data
.
error
)
{
alert
(
data
.
error
);
}
if
(
data
.
error
)
{
upload_file_error
(
data
.
error
);
}
$
(
"input[name='file']"
,
formDiv
).
val
(
''
);
else
{
upload_file_error
(
'file uploading error'
);
}
if
(
writeType
===
writeDatabaseEnum
.
ADD
)
{
enableAddSubmit
();
}
else
if
(
writeType
===
writeDatabaseEnum
.
EDIT
)
{
enableEditSubmit
();
}
},
},
});
});
}
}
/**
/**
* 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.
* Bind the event for adding a resource into the recommender.
*/
*/
function
bindResourceAddEvent
()
{
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