Skip to content

Commit

Permalink
Implement support for multiply SGA elements at one vertical
Browse files Browse the repository at this point in the history
- rewrite change event on fileupload object to
  prevent recursion of a call stack
  • Loading branch information
aliaksandrb committed Jun 8, 2015
1 parent bf7914c commit 0b72027
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions edx_sga/static/js/src/edx_sga.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ function StaffGradedAssignmentXBlock(runtime, element) {
var content = $(element).find('#sga-content').html(template(state));

// Set up file upload
$(content).find('.fileupload').fileupload({
var fileUpload = $(content).find('.fileupload').fileupload({
url: uploadUrl,
add: function(e, data) {
var do_upload = $(content).find('.upload').html('');
Expand Down Expand Up @@ -100,6 +100,8 @@ function StaffGradedAssignmentXBlock(runtime, element) {
}
}
});

updateChangeEvent(fileUpload);
}

function renderStaffGrading(data) {
Expand Down Expand Up @@ -133,7 +135,7 @@ function StaffGradedAssignmentXBlock(runtime, element) {
$(element).find('#grade-info .fileupload').each(function() {
var row = $(this).parents("tr");
var url = staffUploadUrl + "?module_id=" + row.data("module_id");
$(this).fileupload({
var fileUpload = $(this).fileupload({
url: url,
progressall: function(e, data) {
var percent = parseInt(data.loaded / data.total * 100, 10);
Expand All @@ -147,6 +149,8 @@ function StaffGradedAssignmentXBlock(runtime, element) {
3000);
}
});

updateChangeEvent(fileUpload);
});
}

Expand Down Expand Up @@ -204,6 +208,24 @@ function StaffGradedAssignmentXBlock(runtime, element) {
});
}

function updateChangeEvent(fileUploadObj) {
fileUploadObj.off('change').on('change', function (e) {
var that = $(this).data('blueimpFileupload'),
data = {
fileInput: $(e.target),
form: $(e.target.form)
};

that._getFileInputFiles(data.fileInput).always(function (files) {
data.files = files;
if (that.options.replaceFileInput) {
that._replaceFileInput(data.fileInput);
}
that._onAdd(e, data);
});
});
}

$(function($) { // onLoad
var block = $(element).find('.sga-block');
var state = block.attr('data-state');
Expand Down

0 comments on commit 0b72027

Please sign in to comment.