// 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}
` scoresTable.innerHTML = scores_table; }