|
@@ -31,20 +31,53 @@ function getAnswer () {
|
|
|
|
|
|
} else {
|
|
|
// Montar o retorno com a criação da atividade do professor
|
|
|
- return prepareTestCases();
|
|
|
+ var ret = ' { ' + prepareTestCases()
|
|
|
+ + ',\n"settings_data_types": \n' + JSON.stringify($('form[name="settings_data_types"]').serializeArray())
|
|
|
+ + ',\n"settings_commands": \n' + JSON.stringify($('form[name="settings_commands"]').serializeArray())
|
|
|
+ + ',\n"settings_functions": \n' + JSON.stringify($('form[name="settings_functions"]').serializeArray())
|
|
|
+ + ' } ';
|
|
|
+
|
|
|
+ if ($("input[name='include_algo']").is(':checked')) {
|
|
|
+ ret += '\n\nalgorithm\n\n';
|
|
|
+ ret += generator();
|
|
|
+ }
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function prepareTestCases () {
|
|
|
- var ret = '{ \n "testcases" : [ '
|
|
|
+ var ret = ' \n "testcases" : [ '
|
|
|
var test_cases_array = $('form[name="test_cases"]').serializeArray();
|
|
|
for (var i = 0; i < test_cases_array.length; i = i + 2) {
|
|
|
ret += '\n{ ';
|
|
|
- ret += '\n "input": "' + test_cases_array[i].value + '",'
|
|
|
- ret += '\n "output": "' + test_cases_array[i+1].value + '" '
|
|
|
- ret += '\n},'
|
|
|
+ ret += '\n "input": [';
|
|
|
+ var inps = test_cases_array[i].value.match(/[^\r\n]+/g);
|
|
|
+ if (inps) {
|
|
|
+ for (var j = 0; j < inps.length; j++) {
|
|
|
+ ret += '"' + inps[j] + '"';
|
|
|
+ if ((j + 1) < inps.length) {
|
|
|
+ ret += ', ';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ret += '], \n "output": [';
|
|
|
+ var outs = test_cases_array[i+1].value.match(/[^\r\n]+/g);
|
|
|
+ if (outs) {
|
|
|
+ for (var j = 0; j < outs.length; j++) {
|
|
|
+ ret += '"' + outs[j] + '"';
|
|
|
+ if ((j + 1) < outs.length) {
|
|
|
+ ret += ', ';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ret += ']';
|
|
|
+ ret += '\n}'
|
|
|
+ if ((i + 2) < test_cases_array.length) {
|
|
|
+ ret += ',';
|
|
|
+ }
|
|
|
}
|
|
|
- ret += '\n] }';
|
|
|
+ ret += '\n] ';
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -62,6 +95,11 @@ function getEvaluation () {
|
|
|
|
|
|
|
|
|
var testCases = null;
|
|
|
+var settingsDataTypes = null;
|
|
|
+var settingsCommands = null;
|
|
|
+var settingsFunctions = null;
|
|
|
+var algorithm_in_ilm = null;
|
|
|
+
|
|
|
|
|
|
// Função para que o iMA leia os dados da atividade fornecidos pelo iTarefa
|
|
|
function getiLMContent () {
|
|
@@ -69,10 +107,23 @@ function getiLMContent () {
|
|
|
// O parâmetro "iLM_PARAM_Assignment" fornece o URL do endereço que deve ser
|
|
|
// requisitado via AJAX para a captura dos dados da atividade
|
|
|
$.get(iLMparameters.iLM_PARAM_Assignment, function (data) {
|
|
|
- // testCases é preenchida
|
|
|
+ if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
|
|
|
+ prepareActivityToStudent(data);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+function prepareActivityToStudent(ilm_cont) {
|
|
|
+ var content = JSON.parse(ilm_cont.split('algorithm')[0]);
|
|
|
+ testCases = content.testcases;
|
|
|
+ settingsDataTypes = content.settings_data_types;
|
|
|
+ settingsCommands = content.settings_commands;
|
|
|
+ settingsFunctions = content.settings_functions;
|
|
|
+ algorithm_in_ilm = ilm_cont.split('algorithm')[1];
|
|
|
+}
|
|
|
+
|
|
|
// Função para organizar se para criação, visualização ou resolução de atividade
|
|
|
function prepareEnvironment () {
|
|
|
if ((iLMparameters.iLM_PARAM_AssignmentURL == "true") && (iLMparameters.iLM_PARAM_SendAnswer == "true")) {
|
|
@@ -80,6 +131,21 @@ function prepareEnvironment () {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+$(document).ready(function() {
|
|
|
+
|
|
|
+ // Se iLM_PARAM_SendAnswer for false, então trata-se de resolução de atividade,
|
|
|
+ // portanto, a "DIV" de resolução é liberada
|
|
|
+ if (iLMparameters.iLM_PARAM_SendAnswer == 'false') {
|
|
|
+ //$('.resolucao').css("display","block");
|
|
|
+ getiLMContent();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // Caso não esteja em modo de resolução de atividade, a visualização no momento
|
|
|
+ // é para a elaboração de atividade:
|
|
|
+ //$('.elaboracao').css("display","block");
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
// Função para preparar a interface para o professor criar atividade:
|
|
|
function prepareActivityCreation () {
|
|
|
|
|
@@ -91,7 +157,7 @@ function prepareActivityCreation () {
|
|
|
$('.main_title').remove();
|
|
|
$('.ui.accordion').addClass('styled');
|
|
|
|
|
|
- $('<div class="ui checkbox"><input type="checkbox" name="include_algo" tabindex="0" class="hidden"><label>'+LocalizedStrings.getUI('text_teacher_algorithm_include')+'</label></div>').insertBefore('.content_margin');
|
|
|
+ $('<div class="ui checkbox"><input type="checkbox" name="include_algo" class="include_algo" tabindex="0" class="hidden"><label>'+LocalizedStrings.getUI('text_teacher_algorithm_include')+'</label></div>').insertBefore('.content_margin');
|
|
|
|
|
|
var cases_test_div = $('<div class="ui accordion styled"><div class="active title"><i class="dropdown icon"></i>'+LocalizedStrings.getUI('text_teacher_test_case')+'</div><div class="active content"></div></div>');
|
|
|
|
|
@@ -112,9 +178,6 @@ function prepareActivityCreation () {
|
|
|
|
|
|
function prepareTableTestCases (div_el) {
|
|
|
|
|
|
- //return JSON.stringify($('form[name="elaborar"]').serializeArray());
|
|
|
-
|
|
|
-
|
|
|
var table_el = '<form name="test_cases"><table class="ui blue table"><thead><tr><th width="30px">#</th><th>'+LocalizedStrings.getUI('text_teacher_test_case_input')+'</th><th>'+LocalizedStrings.getUI('text_teacher_test_case_output')+'</th><th width="80px">'+LocalizedStrings.getUI('text_teacher_test_case_actions')+'</th></tr></thead>'
|
|
|
+ '<tbody class="content_cases"></tbody></table></form>';
|
|
|
|
|
@@ -128,11 +191,13 @@ function prepareTableTestCases (div_el) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+var hist = false;
|
|
|
+
|
|
|
function addTestCase () {
|
|
|
- var new_row = $('<tr><td class="counter"></td><td class="expandingArea"><textarea rows="1" name="input"></textarea></td><td class="expandingArea"><textarea rows="1" name="output"></textarea></td><td class="btn_actions"><button class="ui icon button"><i class="red icon times"></i></button></td></tr>');
|
|
|
+ var new_row = $('<tr><td class="counter"></td><td class="expandingArea"><textarea rows="1" name="input" class="text_area_input"></textarea></td><td class="expandingArea"><textarea rows="1" name="output" class="text_area_output"></textarea></td><td class="btn_actions"><div class="ui button_remove_case"><i class="red icon times large"></i></div></td></tr>');
|
|
|
$('.content_cases').append(new_row);
|
|
|
|
|
|
- new_row.find('button').click(function(e) {
|
|
|
+ new_row.find('.button_remove_case').click(function(e) {
|
|
|
new_row.remove();
|
|
|
updateTestCaseCounter();
|
|
|
});
|
|
@@ -143,6 +208,19 @@ function addTestCase () {
|
|
|
});
|
|
|
|
|
|
updateTestCaseCounter();
|
|
|
+
|
|
|
+ $('.text_area_output').keydown(function(e) {
|
|
|
+ var code = e.keyCode || e.which;
|
|
|
+ if (code == 9 && $(this).closest("tr").is(":last-child")) {
|
|
|
+ hist = true;
|
|
|
+ addTestCase();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (!hist) {
|
|
|
+ $( ".content_cases tr:last" ).find('.text_area_input').focus();
|
|
|
+ } else {
|
|
|
+ hist = false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function updateTestCaseCounter () {
|
|
@@ -155,17 +233,17 @@ function updateTestCaseCounter () {
|
|
|
|
|
|
function prepareTableSettings (div_el) {
|
|
|
div_el.append('<h4 class="ui header">'+LocalizedStrings.getUI('text_teacher_data_types')+'</h4>');
|
|
|
- div_el.append('<div class="ui stackable five column grid">'
|
|
|
+ div_el.append('<form name="settings_data_types"><div class="ui stackable five column grid">'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="integer_data_type" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('integer')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="real_data_type" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('real')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="text_data_type" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="boolean_data_type" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('boolean')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="void_data_type" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('void')+'</label></div></div>'
|
|
|
- +'</div>');
|
|
|
+ +'</div></form>');
|
|
|
|
|
|
|
|
|
div_el.append('<h4 class="ui header">'+LocalizedStrings.getUI('text_teacher_commands')+'</h4>');
|
|
|
- div_el.append('<div class="ui stackable three column grid">'
|
|
|
+ div_el.append('<form name="settings_commands"><div class="ui stackable three column grid">'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_read" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_read_var')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_write" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_write_var')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_comment" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_comment')+'</label></div></div>'
|
|
@@ -176,13 +254,13 @@ function prepareTableSettings (div_el) {
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_while" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_whiletrue')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_dowhile" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_dowhiletrue')+'</label></div></div>'
|
|
|
+'<div class="column"><div class="ui checkbox"><input type="checkbox" name="commands_switch" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_switch')+'</label></div></div>'
|
|
|
- +'</div>');
|
|
|
+ +'</div></form>');
|
|
|
|
|
|
div_el.append('<h4 class="ui header">'+LocalizedStrings.getUI('text_teacher_functions')+'</h4>');
|
|
|
- div_el.append('<div class="ui stackable one column grid">'
|
|
|
- +'<div class="column"><div class="ui checkbox"><input type="checkbox" name="" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_teacher_create_functions')+'</label></div></div>'
|
|
|
- +'<div class="column"><div class="ui checkbox"><input type="checkbox" name="" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_teacher_create_movement_functions')+'</label></div></div>'
|
|
|
- +'</div>');
|
|
|
+ div_el.append('<form name="settings_functions"><div class="ui stackable one column grid">'
|
|
|
+ +'<div class="column"><div class="ui checkbox"><input type="checkbox" name="functions_creation" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_teacher_create_functions')+'</label></div></div>'
|
|
|
+ +'<div class="column"><div class="ui checkbox"><input type="checkbox" name="functions_move" checked tabindex="0" class="hidden small"><label>'+LocalizedStrings.getUI('text_teacher_create_movement_functions')+'</label></div></div>'
|
|
|
+ +'</div></form>');
|
|
|
|
|
|
$('.ui.checkbox').checkbox();
|
|
|
|