/* Websocket receive */ socket.events['new_post'] = function(data) { let qposts = document.getElementById('questPosts'); let post_str = '
'; } else if (data.post_type === 'dice') { post_str += 'dicePost active_post">'; } else if (data.post_type === 'poll') { post_str += 'pollPost active_post">'; } post_str += '
' + data.date; /* QM only */ if (data.post_type === 'text') { post_str += '
Edit'; post_str += ''; } else if (data.post_type === 'dice' || data.post_type === 'poll') { post_str += '
Close'; post_str += '' } /* end QM only */ post_str += '
'; if (data.post_type === 'text') { post_str += data.post_text; } else if (data.post_type === 'dice') { post_str += '

' + data.post_text + ' - Open

'; } else if (data.post_type === 'poll') { post_str += '

' + data.post_text + ' - Open

'; post_str += ''; for (i = 0; i < data.options.length; i++) { post_str += ''; post_str += ''; post_str += ''; post_str += ''; } post_str += '
'; post_str += '' + data.options[i][1] + '0
'; if (data.allow_writein) { post_str += '
'; post_str += 'Write-in:
'; post_str += '
'; } } post_str += '

'; qposts.innerHTML = qposts.innerHTML + post_str; }; /* Websocket send */ function makePost() { let qparea = document.getElementById('postTextArea'); let text = qparea.value.trim(); qparea.value = ''; if (text === '') { return; } socket.send('text_post', {text: text, page_num: page_num, quest_id: quest_id}); } function form_post(form_id, event) { let formData = new FormData(document.getElementById(form_id)); let obj = {}; formData.forEach(function(value, key) { obj[key] = value; }); obj.quest_id = quest_id; obj.page_num = page_num; socket.send(event, obj); document.getElementById(form_id).reset(); } function close_post_send(post_id) { data = {post_id: post_id, quest_id: quest_id} let post = document.getElementById('questPostData-' + post_id); if (post.parentElement.classList.contains('dicePost')) { data.post_type = 'dice'; } else if (post.parentElement.classList.contains('pollPost')) { data.post_type = 'poll'; } socket.send('close_post', data); } function open_post_send(post_id) { data = {post_id: post_id, quest_id: quest_id} let post = document.getElementById('questPostData-' + post_id); if (post.parentElement.classList.contains('dicePost')) { data.post_type = 'dice'; } else if (post.parentElement.classList.contains('pollPost')) { data.post_type = 'poll'; } socket.send('open_post', data); } /* DOM editing */ function openPostTab(event, modeName) { let QMPostTabContent = document.getElementsByClassName("QMPostTabContent"); for (let i = 0; i < QMPostTabContent.length; i++) { QMPostTabContent[i].style.display = "none"; } let QMPostTab = document.getElementsByClassName("QMPostTab"); for (let i = 0; i < QMPostTab.length; i++) { QMPostTab[i].className = QMPostTab[i].className.replace(" active", ""); } document.getElementById(modeName).style.display = "block"; event.currentTarget.className += " active"; } function close_post(post_id) { let post = document.getElementById('questPostData-' + post_id); post.children[0].textContent = post.children[0].textContent.replace('Open', 'Closed'); /* QM only */ document.getElementById('closePost-' + post_id).style.display = 'none'; document.getElementById('openPost-' + post_id).style.display = 'initial'; /* end QM only */ if (post.parentElement.classList.contains('pollPost')) { let table = document.getElementById('poll-' + post_id); let boxes = table.getElementsByTagName('input'); for (let i = 0; i < boxes.length; i++) { boxes[i].disabled = true; } let writein = document.getElementById('writeinContainer-' + post_id); if (writein) { writein.style.display = 'none'; } } } function open_post(post_id) { let post = document.getElementById('questPostData-' + post_id); post.firstElementChild.textContent = post.firstElementChild.textContent.replace('Closed', 'Open'); post.parentElement.className += ' activePost'; /* QM only */ document.getElementById('closePost-' + post_id).style.display = 'initial'; document.getElementById('openPost-' + post_id).style.display = 'none'; /* end QM only */ if (post.parentElement.classList.contains('pollPost')) { let table = document.getElementById('poll-' + post_id); let boxes = table.getElementsByTagName('input'); for (let i = 0; i < boxes.length; i++) { boxes[i].disabled = false; } let writein = document.getElementById('writeinContainer-' + post_id); if (writein) { writein.style.display = 'initial'; } } } function insertPollOption() { let opts = document.getElementById('pollOptions'); let num = opts.children.length+1; let temp = document.createElement('template'); temp.innerHTML = '
'; opts.appendChild(temp.content); } function removePollOption() { let opts = document.getElementById('pollOptions'); if (opts.children.length == 0) { return; } opts.children[opts.children.length-1].outerHTML = ''; }