summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-04-24 10:50:36 +0200
committerTor Andersson <tor@ccxvii.net>2025-04-26 18:34:55 +0200
commit2856019174b7c289b0459d8d231e550b5ef92e74 (patch)
tree78e1a8637e23f5785a1c0e66ec1cafd6f3f39d8c
parentb9813695a82c2b494661ab15f47348ccd39ed032 (diff)
downloadserver-2856019174b7c289b0459d8d231e550b5ef92e74.tar.gz
Show client errors as alerts!
-rw-r--r--public/common/client.js44
-rw-r--r--public/common/replay.js4
2 files changed, 25 insertions, 23 deletions
diff --git a/public/common/client.js b/public/common/client.js
index f8a5e23..583f0e9 100644
--- a/public/common/client.js
+++ b/public/common/client.js
@@ -1,6 +1,6 @@
"use strict"
-/* global on_update, on_reply, on_log */
+/* global on_update, on_reply, on_log, on_prompt */
/* PUBLIC GLOBALS */
@@ -485,7 +485,7 @@ function connect_play() {
document.querySelector("header").classList.add("disconnected")
setTimeout(() => {
document.querySelector("header").classList.remove("disconnected")
- on_update_header()
+ update_header()
}, 1000)
break
@@ -542,11 +542,7 @@ function connect_play() {
for (let line of view.log)
game_log.push(line)
- on_update_header()
- on_update_roles()
- if (typeof on_update === "function")
- on_update()
- on_update_log(view.log_start, game_log.length)
+ update_view(view.log_start, game_log.length)
break
case "finished":
@@ -575,11 +571,23 @@ function connect_play() {
}
}
+function update_view(log_start, log_end) {
+ update_header()
+ update_roles()
+ try {
+ on_update()
+ } catch (err) {
+ console.error(err)
+ window.alert(err)
+ }
+ update_log(log_start, log_end)
+}
+
/* HEADER */
let is_your_turn = false
-function on_update_header() {
+function update_header() {
if (typeof on_prompt === "function")
document.getElementById("prompt").innerHTML = on_prompt(view.prompt)
else
@@ -600,17 +608,19 @@ function on_update_header() {
update_title()
}
-function on_update_roles() {
- if (view.active !== undefined)
- for (let role in roles)
+function update_roles() {
+ if (view.active !== undefined) {
+ for (let role in roles) {
roles[role].element.classList.toggle("active",
view.active === role || view.active === "Both" || view.active.includes(role)
)
+ }
+ }
}
/* LOG */
-function on_update_log(change_start, end) {
+function update_log(change_start, end) {
let div = document.getElementById("log")
let to_delete = div.children.length - change_start
@@ -918,10 +928,7 @@ function show_snap(snap_id) {
snap_view = view
view = snap_cache[snap_id]
view.prompt = "Replay " + snap_id + " / " + snap_count + " \u2013 " + snap_active[snap_id]
- on_update_header()
- on_update_roles()
- on_update()
- on_update_log(view.log, view.log)
+ update_view(view.log, view.log)
}
function on_snap_first() {
@@ -948,10 +955,7 @@ function on_snap_stop() {
if (snap_view) {
view = snap_view
snap_view = null
- on_update_header()
- on_update_roles()
- on_update()
- on_update_log(game_log.length, game_log.length)
+ update_view(game_log.length, game_log.length)
}
}
diff --git a/public/common/replay.js b/public/common/replay.js
index 24a0d67..bc52c42 100644
--- a/public/common/replay.js
+++ b/public/common/replay.js
@@ -185,9 +185,7 @@ function update_replay_view() {
for (let i = log_start; i < view.log.length; ++i)
game_log.push(view.log[i])
- on_update_header()
- on_update()
- on_update_log(log_start, game_log.length)
+ update_view(log_start, game_log.length)
}
replay_query = function replay_query(query, params) {