From 842907f1fa1f7f2b36c862fd09f0f6f7ab257b1e Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Thu, 10 Dec 2015 13:48:31 +0100 Subject: [PATCH] Make use of file types for highlighting and tabs --- app/assets/javascripts/submission_statistics.js | 12 ++++++++++-- .../exercises/external_users/statistics.html.slim | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/submission_statistics.js b/app/assets/javascripts/submission_statistics.js index ec0d827a..c5cfaab8 100644 --- a/app/assets/javascripts/submission_statistics.js +++ b/app/assets/javascripts/submission_statistics.js @@ -7,11 +7,13 @@ $(function() { var active_file = undefined; var fileTrees = [] var editor = undefined; + var fileTypeById = {} var showActiveFile = function() { var session = editor.getSession(); - //session.setMode(active_file.file_type.editor_mode); - //session.setTabSize(active_file.file_type.indent_size); + var fileType = fileTypeById[active_file.file_type_id] + session.setMode(fileType.editor_mode); + session.setTabSize(fileType.indent_size); session.setValue(active_file.content); session.setUseSoftTabs(true); session.setUseWrapMode(true); @@ -50,6 +52,7 @@ $(function() { var slider = $('#submissions-slider>input'); var submissions = $('#data').data('submissions'); var files = $('#data').data('files'); + var filetypes = $('#data').data('file-types'); editor = ace.edit('current-file'); editor.setShowPrintMargin(false); @@ -57,6 +60,11 @@ $(function() { editor.$blockScrolling = Infinity; editor.setReadOnly(true); + _.each(filetypes, function (filetype) { + filetype = JSON.parse(filetype); + fileTypeById[filetype.id] = filetype; + }); + slider.on('change', function(event) { currentSubmission = slider.val(); var currentFiles = files[currentSubmission]; diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index 97c069d4..3141572a 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -5,10 +5,13 @@ h1 = "#{@exercise} (external user #{@external_user})" - initial_files = current_submission.files.to_a - all_files = [] + - file_types = Set.new() - submissions.each do |submission| + - submission.files.each do |file| + - file_types.add(ActiveSupport::JSON.encode(file.file_type)) - all_files.push(submission.files) - .hidden#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) + .hidden#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types) #stats-editor.row - index = 0