From 991fdef8bc23752f64f4d05c28d03c3092f410bb Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 14 Nov 2021 22:45:12 +0100 Subject: [PATCH] Handle depleted containers for submit --- app/assets/javascripts/editor/submissions.js | 8 ++++++++ app/controllers/exercises_controller.rb | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/app/assets/javascripts/editor/submissions.js b/app/assets/javascripts/editor/submissions.js index 3cd26502..67efd649 100644 --- a/app/assets/javascripts/editor/submissions.js +++ b/app/assets/javascripts/editor/submissions.js @@ -197,6 +197,14 @@ CodeOceanEditorSubmissions = { Turbolinks.clearCache(); clearTimeout(this.autosaveTimer); Turbolinks.visit(response.redirect); + } else if (response.status === 'container_depleted') { + this.showContainerDepletedMessage(); + $('#submit').one('click', this.submitCode.bind(this)); + } else if (response.message) { + $.flash.danger({ + text: response.message + }); + $('#submit').one('click', this.submitCode.bind(this)); } }) }, diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 5405211b..e5c28827 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -537,6 +537,12 @@ working_time_accumulated: working_time_accumulated}) else redirect_after_submit end + rescue Runner::Error => e + Rails.logger.debug { "Runner error while submitting submission #{@submission.id}: #{e.message}" } + respond_to do |format| + format.html { redirect_to(implement_exercise_path(@submission.exercise)) } + format.json { render(json: {message: I18n.t('exercises.editor.depleted'), status: :container_depleted}) } + end end def transmit_lti_score