diff --git a/app/assets/javascripts/submission_statistics.js b/app/assets/javascripts/submission_statistics.js new file mode 100644 index 00000000..f8d37026 --- /dev/null +++ b/app/assets/javascripts/submission_statistics.js @@ -0,0 +1,32 @@ +$(function() { + + if ($.isController('exercises') && $('#timeline').isPresent()) { + + var editors = $('.editor'); + var slider = $('#slider>input'); + var submissions = $('#data').data('submissions'); + var files = $('#data').data('files'); + + editors.each(function(index, editor) { + currentEditor = ace.edit(editor); + currentEditor.$blockScrolling = Infinity; + currentEditor.setReadOnly(true); + }); + + slider.on('change', function(event) { + var currentSubmission = slider.val(); + var currentFiles = JSON.parse(files[currentSubmission]); + + editors.each(function(index, editor) { + currentEditor = ace.edit(editor); + fileContent = ""; + if (currentFiles[index]) { + fileContent = currentFiles[index].content + } + currentEditor.getSession().setValue(fileContent); + }); + }); + + } + +}); diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index d45f9334..a4117ae2 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -4,7 +4,11 @@ h1 = "#{@exercise} (external user #{@external_user})" - if current_submission - files = current_submission.files.to_a - .hidden data-submissions=ActiveSupport::JSON.encode(submissions) + - all_files = [] + - submissions.each do |submission| + - all_files.push(ActiveSupport::JSON.encode(submission.files)) + + .hidden#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=all_files #editor.row data-exercise-id=@exercise.id data-message-depleted=t('exercises.editor.depleted') data-user-id=@external_user.id div class=(@exercise.hide_file_tree ? 'hidden col-sm-3' : 'col-sm-3') id='files' data-entries=FileTree.new(files).to_js_tree