diff --git a/common/lib/xmodule/xmodule/combined_open_ended_module.py b/common/lib/xmodule/xmodule/combined_open_ended_module.py index 9cf768ff5c..d74657d923 100644 --- a/common/lib/xmodule/xmodule/combined_open_ended_module.py +++ b/common/lib/xmodule/xmodule/combined_open_ended_module.py @@ -39,7 +39,7 @@ MAX_SCORE = 1 MAX_SCORE_ALLOWED = 3 IS_SCORED=False -UPLOAD_IMAGE = False +ACCEPT_FILE_UPLOAD = False class CombinedOpenEndedModule(XModule): """ @@ -142,7 +142,7 @@ class CombinedOpenEndedModule(XModule): self.allow_reset = instance_state.get('ready_to_reset', False) self.max_attempts = int(self.metadata.get('attempts', MAX_ATTEMPTS)) self.is_scored = (self.metadata.get('is_graded', IS_SCORED)=="True") - self.upload_image = (self.metadata.get('upload_image', UPLOAD_IMAGE)=="True") + self.accept_file_upload = (self.metadata.get('accept_file_upload', ACCEPT_FILE_UPLOAD)=="True") log.debug(self.metadata.get('is_graded', IS_SCORED)) @@ -176,7 +176,7 @@ class CombinedOpenEndedModule(XModule): 'prompt': definition['prompt'], 'rubric': definition['rubric'], 'display_name': self.display_name, - 'accept_file_upload' : self.upload_image, + 'accept_file_upload' : self.accept_file_upload, } self.task_xml = definition['task_xml'] @@ -327,7 +327,8 @@ class CombinedOpenEndedModule(XModule): 'task_count': len(self.task_xml), 'task_number': self.current_task_number + 1, 'status': self.get_status(), - 'display_name': self.display_name + 'display_name': self.display_name , + 'accept_file_upload' : self.accept_file_upload, } return context diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee index 607978160f..9d8ee96b91 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee @@ -12,6 +12,7 @@ class @CombinedOpenEnded @state = @el.data('state') @task_count = @el.data('task-count') @task_number = @el.data('task-number') + @accept_file_upload = @el.data('accept-file-upload') @allow_reset = @el.data('allow_reset') @reset_button = @$('.reset-button') @@ -45,6 +46,7 @@ class @CombinedOpenEnded @skip_button.click @skip_post_assessment @file_upload_area = @$('.file-upload') + @can_upload_files = false @open_ended_child= @$('.open-ended-child') @find_assessment_elements() @@ -119,6 +121,7 @@ class @CombinedOpenEnded @submit_button.show() @reset_button.hide() @next_problem_button.hide() + @hide_file_upload() @hint_area.attr('disabled', false) if @child_state == 'done' @rubric_wrapper.hide() @@ -134,8 +137,10 @@ class @CombinedOpenEnded @answer_area.attr("disabled", false) @submit_button.prop('value', 'Submit') @submit_button.click @save_answer + @setup_file_upload() else if @child_state == 'assessing' @answer_area.attr("disabled", true) + @hide_file_upload() @submit_button.prop('value', 'Submit assessment') @submit_button.click @save_assessment if @child_type == "openended" @@ -301,4 +306,15 @@ class @CombinedOpenEnded window.queuePollerID = window.setTimeout(@poll, 10000) setup_file_upload: => - @file_upload_area.html('') \ No newline at end of file + if window.File and window.FileReader and window.FileList and window.Blob + alert('File API supported.') + if @accept_file_upload == "True" + @can_upload_files = true + @file_upload_area.html('') + @file_upload_area.show() + else + @gentle_alert 'File uploads are not supported in this browser. Try the newest version of google chrome' + + hide_file_upload: => + if @accept_file_upload == "True" + @file_upload_area.hide() \ No newline at end of file diff --git a/lms/templates/combined_open_ended.html b/lms/templates/combined_open_ended.html index c99ebe21d1..4599feaa3b 100644 --- a/lms/templates/combined_open_ended.html +++ b/lms/templates/combined_open_ended.html @@ -1,4 +1,4 @@ -
+

${display_name}