Staff push notifications, and revalidate embedded assets
Notifications: staff turn them on per device from a new Notifications page, pick each type (bans, gags, mutes and silences added or lifted, server down and back up) and quiet hours. A watcher polls SimpleAdmin's tables, so in-game penalties are sent too. Web Push with VAPID and RFC 8291 encryption in internal/push, standard library only. Tables in sql/push.sql, created at startup; the VAPID key is made on first start and kept in saw_settings. Penalty notifications link to the public list searching for the player (#bans?q=<steamid64>). The Android app delegates notifications (versionCode 3). Caching: pages, scripts and styles are served with Cache-Control: no-cache and an ETag, so a deploy shows up at once instead of after Cloudflare's default 4-hour browser cache.
This commit is contained in:
parent
7900bf5b3e
commit
17232bd5a2
23 changed files with 2135 additions and 12 deletions
|
|
@ -676,6 +676,18 @@ td.num, th.num { text-align: right; white-space: nowrap; }
|
|||
.setting p { margin: 2px 0 0; color: var(--muted); font-size: 14px; }
|
||||
.setting .control { display: flex; justify-content: flex-end; }
|
||||
.setting code { font: 13px ui-monospace, "Cascadia Mono", Menlo, monospace; color: var(--faint); }
|
||||
.setting .control .tag + .switch { margin-left: 10px; }
|
||||
|
||||
/* Notifications page. */
|
||||
.notif-group {
|
||||
padding: 14px 18px 2px;
|
||||
color: var(--faint);
|
||||
font: 600 12px var(--body);
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.quiet-times { display: flex; align-items: center; gap: 8px; }
|
||||
.quiet-times .input { width: 120px; }
|
||||
|
||||
.savebar {
|
||||
position: sticky;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue