get this to work a slight bit more
This commit is contained in:
parent
ed87d3fb51
commit
5160929958
10 changed files with 484 additions and 108 deletions
26
static/chat.js
Normal file
26
static/chat.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
init_polling();
|
||||
|
||||
// terrible hack. uses polling.
|
||||
function init_polling() {
|
||||
let history_el = document.getElementById("history");
|
||||
let msg_template = document.querySelector("#chatmessage");
|
||||
setInterval(() => {
|
||||
let messages = document.getElementsByClassName("message");
|
||||
let last_msg_uuid = messages[messages.length - 1].id;
|
||||
fetch(`/poll/${last_msg_uuid}`)
|
||||
.then(data => data.text().then(bleh => {
|
||||
let new_messages = JSON.parse(bleh);
|
||||
for (const message of new_messages) {
|
||||
const clone = msg_template.content.cloneNode(true);
|
||||
let msgclone = clone.querySelector("div");
|
||||
msgclone.id = message.id;
|
||||
msgclone.classList.add(message.from_admin ? "from_admin" : "from_user");
|
||||
let content = msgclone.querySelector("p");
|
||||
content.textContent = message.content;
|
||||
let ts = msgclone.querySelector(".timestamp");
|
||||
ts.textContent = message.timestamp;
|
||||
history_el.appendChild(msgclone);
|
||||
}
|
||||
}));
|
||||
}, 5000)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue