// Get the data from the server
let responses = {}
let questionDiv = document.getElementById('question');
let optionDiv = document.getElementById('options');
let scoresTable = document.getElementById('scores');
let optionDivImages = document.getElementById('images');
function makeButton(trail, item) {
let text = trail[item];
return `
`
}
function makeButtonSpa(trail, item) {
let text = trail[item];
return `
`
}
document.addEventListener("DOMContentLoaded", function (event) {
$('.otree-timer__time-left').on('finish.countdown', function (event) {
document.getElementById('raw_responses').value = JSON.stringify(responses);
});
liveSend({'type': 'load'});
});
function updateUIS(current) {
let key = current['key'];
if (key == '5') {
let items = ['optionA', 'optionB', 'optionC', 'optionD', 'optionE']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
} else if (key == '4') {
let items = ['optionA', 'optionB', 'optionC', 'optionD']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
} else if (key == 'int8') {
let items = ['option1', 'option2', 'option3', 'option4', 'option5', 'option6', 'option7', 'option8']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
} else if (key == 'int6') {
let items = ['option1', 'option2', 'option3', 'option4', 'option5', 'option6']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
} else if (key == 'int4') {
let items = ['option1', 'option2', 'option3', 'option4']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
} else if (key == 'int5') {
let items = ['option1', 'option2', 'option3', 'option4', 'option5']
let options = items.map(e => makeButtonSpa(current, e)).join('');
options += `
`;
optionDivImages.innerHTML = options;
let image_name = current['graphic_name'];
questionDiv.innerHTML = ``;
}
}
function updateUINA(current) {
let items = ['optionA', 'optionB', 'optionC', 'optionD', 'optionE']
let options = items.map(e => makeButton(current, e)).join('');
options += ``;
optionDiv.innerHTML = options;
let q = current['question']
questionDiv.innerHTML = `
${q}
` } // document.getElementById("next").onclick = function () { // var radioButtonGroup = document.getElementsByName("radioselect"); // var checkedRadio = Array.from(radioButtonGroup).find( // (radio) => radio.checked // ); // let response = checkedRadio.value; // liveSend({'type': 'response', 'response': response}) // }; function recordResponse(btn) { var radioButtonGroup = document.getElementsByName("radioselect"); var checkedRadio = Array.from(radioButtonGroup).find( (radio) => radio.checked ); let response = checkedRadio.value; liveSend({'type': 'response', 'response': response}); } function liveRecv(data) { console.log(data); if (data.finished) { document.getElementById('form').submit(); } if (data.error) { window.alert(data.msg); return; } let current = data.current_q; let task = data.task; let score = data.score; let min_score = data.min_score; if (task === 'Spatial') { updateUIS(current); } else { updateUINA(current); } let scores_table // if leader return both min and current scores, else just score (worker) scores_table = `Score in ${task}: |
---|
${score} |