Display hints in editor frontend

This commit is contained in:
Maximilian Grundke
2018-03-08 16:20:07 +01:00
parent a228541dd3
commit ccdcc43431
7 changed files with 58 additions and 4 deletions

View File

@ -476,6 +476,7 @@ configureEditors: function () {
this.clearOutput(); this.clearOutput();
$('#hint').fadeOut(); $('#hint').fadeOut();
$('#flowrHint').fadeOut(); $('#flowrHint').fadeOut();
this.clearHints();
this.showOutputBar(); this.showOutputBar();
}, },
@ -512,6 +513,30 @@ configureEditors: function () {
} }
}, },
clearHints: function() {
var container = $('#error-hints');
container.find('ul.body > li.hint').remove();
container.fadeOut();
},
showHint: function(message) {
var template = function(description, hint) {
return '\
<li class="hint">\
<div class="description">\
' + description + '\
</div>\
<div class="hint">\
' + hint + '\
</div>\
</li>\
'
};
var container = $('#error-hints');
container.find('ul.body').append(template(message.description, message.hint));
container.fadeIn();
},
showContainerDepletedMessage: function() { showContainerDepletedMessage: function() {
$.flash.danger({ $.flash.danger({
icon: ['fa', 'fa-clock-o'], icon: ['fa', 'fa-clock-o'],
@ -692,4 +717,4 @@ configureEditors: function () {
// create autosave when the editor is opened the first time // create autosave when the editor is opened the first time
this.autosave(); this.autosave();
} }
}; };

View File

@ -43,6 +43,7 @@ CodeOceanEditorWebsocket = {
this.websocket.on('exit', this.handleExitCommand.bind(this)); this.websocket.on('exit', this.handleExitCommand.bind(this));
this.websocket.on('timeout', this.showTimeoutMessage.bind(this)); this.websocket.on('timeout', this.showTimeoutMessage.bind(this));
this.websocket.on('status', this.showStatus.bind(this)); this.websocket.on('status', this.showStatus.bind(this));
this.websocket.on('hint', this.showHint.bind(this));
}, },
handleExitCommand: function() { handleExitCommand: function() {
@ -53,4 +54,4 @@ CodeOceanEditorWebsocket = {
this.cleanUpTurtle(); this.cleanUpTurtle();
this.cleanUpUI(); this.cleanUpUI();
} }
}; };

View File

@ -193,3 +193,24 @@ button i.fa-spin {
.enforce-bottom-margin { .enforce-bottom-margin {
margin-bottom: 5px !important; margin-bottom: 5px !important;
} }
#error-hints {
display: none;
background-color: #FAFAFA;
.heading {
font-weight: bold;
font-size: larger;
}
ul.body {
li.hint {
.description {
font-style: italic;
}
.hint {}
}
}
}

View File

@ -198,7 +198,7 @@ class SubmissionsController < ApplicationController
def kill_socket(tubesock) def kill_socket(tubesock)
# search for errors and save them as StructuredError (for scoring runs see submission_scoring.rb) # search for errors and save them as StructuredError (for scoring runs see submission_scoring.rb)
extract_errors.each do | error | extract_errors.each do | error |
tubesock.send_data JSON.dump({cmd: 'hint', hint: error.hint}) tubesock.send_data JSON.dump({cmd: 'hint', hint: error.hint, description: error.error_template.description})
end end
# save the output of this "run" as a "testrun" (scoring runs are saved in submission_scoring.rb) # save the output of this "run" as a "testrun" (scoring runs are saved in submission_scoring.rb)

View File

@ -47,9 +47,12 @@ div id='output_sidebar_uncollapsed' class='hidden col-sm-12 enforce-bottom-margi
input#prompt-input.form-control type='text' input#prompt-input.form-control type='text'
span.input-group-btn span.input-group-btn
button#prompt-submit.btn.btn-primary type="button" = t('exercises.editor.send') button#prompt-submit.btn.btn-primary type="button" = t('exercises.editor.send')
#error-hints
.heading = t('exercises.implement.error_hints.heading')
ul.body
#output #output
pre = t('exercises.implement.no_output_yet') pre = t('exercises.implement.no_output_yet')
- if CodeOcean::Config.new(:code_ocean).read[:flowr][:enabled] - if CodeOcean::Config.new(:code_ocean).read[:flowr][:enabled]
#flowrHint.panel.panel-info data-url=CodeOcean::Config.new(:code_ocean).read[:flowr][:url] role='tab' #flowrHint.panel.panel-info data-url=CodeOcean::Config.new(:code_ocean).read[:flowr][:url] role='tab'
.panel-heading = 'Gain more insights here' .panel-heading = 'Gain more insights here'
.panel-body .panel-body

View File

@ -327,6 +327,8 @@ de:
break_intervention: break_intervention:
title: "Pause" title: "Pause"
text: "Uns ist aufgefallen, dass du schon lange an dieser Aufgabe arbeitest. Möchtest du vielleicht später weiter machen um erstmal auf neue Gedanken zu kommen?" text: "Uns ist aufgefallen, dass du schon lange an dieser Aufgabe arbeitest. Möchtest du vielleicht später weiter machen um erstmal auf neue Gedanken zu kommen?"
error_hints:
heading: "Hinweise"
index: index:
clone: Duplizieren clone: Duplizieren
implement: Implementieren implement: Implementieren

View File

@ -327,6 +327,8 @@ en:
break_intervention: break_intervention:
title: "Break" title: "Break"
text: "We recognized that you are already working quite a while on this exercise. We would like to encourage you to take a break and come back later." text: "We recognized that you are already working quite a while on this exercise. We would like to encourage you to take a break and come back later."
error_hints:
heading: "Hints"
index: index:
clone: Duplicate clone: Duplicate
implement: Implement implement: Implement