diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index a58afae9..ca705251 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -31,6 +31,10 @@ var CodeOceanEditor = { <% self.class.include Rails.application.routes.url_helpers %> <% @config ||= CodeOcean::Config.new(:code_ocean).read(erb: false) %> + // Important notice: Changing the config values requires any content-wise + // modification for this file in the development environment. Lacking to do so + // will result in the old, server-side cached serving of this file even across + // server restarts! sendEvents: <%= @config['codeocean_events'] ? @config['codeocean_events']['enabled'] : false %>, eventURL: "<%= @config['codeocean_events'] ? events_path : '' %>", fileTypeURL: "<%= file_types_path %>", diff --git a/app/assets/javascripts/editor/participantsupport.js.erb b/app/assets/javascripts/editor/participantsupport.js.erb index 23e98009..07da53b7 100644 --- a/app/assets/javascripts/editor/participantsupport.js.erb +++ b/app/assets/javascripts/editor/participantsupport.js.erb @@ -21,7 +21,7 @@ CodeOceanEditorFlowr = { getInsights: function () { <% self.class.include Rails.application.routes.url_helpers %> var flowrUrl = '<%= insights_path %>'; - var stackOverflowUrl = 'http://api.stackexchange.com/2.2/search/advanced'; + var stackOverflowUrl = 'https://api.stackexchange.com/2.2/search/advanced'; return jQuery.ajax({ dataType: "json", @@ -78,7 +78,7 @@ CodeOceanEditorFlowr = { category: eventType, data: data, exercise_id: $('#editor').data('exercise-id'), - file_id: null + file_id: CodeOceanEditor.active_file.id, }); }; }, diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 3a3b02a4..edad8909 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -1,5 +1,6 @@ -class EventsController < ApplicationController +# frozen_string_literal: true +class EventsController < ApplicationController def authorize! authorize(@event || @events) end @@ -20,9 +21,10 @@ class EventsController < ApplicationController end def event_params + # The file ID processed here is the context of the exercise (template), + # not in the context of the submission! params[:event]&.permit(:category, :data, :exercise_id, :file_id) - &.merge(user_id: current_user&.id, user_type: current_user&.class.name) + &.merge(user_id: current_user&.id, user_type: current_user&.class&.name) end private :event_params - end diff --git a/config/code_ocean.yml.example b/config/code_ocean.yml.example index a74184e7..36d238ff 100644 --- a/config/code_ocean.yml.example +++ b/config/code_ocean.yml.example @@ -4,6 +4,8 @@ default: &default answers_per_query: 3 code_pilot: enabled: false + codeocean_events: + enabled: false development: flowr: diff --git a/config/code_ocean.yml.travis b/config/code_ocean.yml.travis index c4a2b410..09eb8cb5 100644 --- a/config/code_ocean.yml.travis +++ b/config/code_ocean.yml.travis @@ -5,3 +5,5 @@ test: enabled: false codeharbor: url: http://test.url + codeocean_events: + enabled: false