all repos — felt @ 42bb254d8472561a299daef5006dd1b397d7e378

virtual tabletop for dungeons and dragons (and similar) using Go, MongoDB, and websockets

add auxmsg publish
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmRYeYgACgkQO3+8IhRO
Y5gK3Q/+Jk3mXl++OUP9cMKtcRsvgHryEkWxnKmnOomYdK8jy2NWcgPX5frTQ0vu
SYEwcoLf9yx39dXUk/48wgf3ow3V+HXBG++Xwgr3YUSdZ2zB4CKhsaKVIhdrOLTs
XNVsgNAyVT3L8R9tWkaxnyiymmm+RRwm7xtB9AylfEYT+T/YwoQjvw3h8EgRDfVD
gSdlOdqVD+hox5OUEiviB79YzV2OPRz2+RDLWwU5hRmh4M071ilWLZKFaHXXls1k
JP8Dg4icJ0DclZWqj8do3EJChllOh0rDQZn7+9VSVsL7lpTscs9RYM7lErLb++XI
zyjhviYoUtJ1qRaZd0Rvm4/+a40k47aLM/86Aibx9wFmUiovR+naVK9eUL7Wc4Xk
fBTpbKwN8nY3KxlnwsxAIvDVIsx1KsUveeLXRtw0E3810Vy0eyuFpw8zit8El7Vo
8Sgv9F1X7OYDq5mbDdHVALXpMdz7ISwah7J03PdUp7P3YkwDj2mDh0mE02QwrJhA
VciULew9kFRl1hLk9DFfmot3hQfWo9Q7xRjG43I/Lc3xm5zkluGDGrQYkwJUQNH5
XywfwvYHYeqKzHBrPlrSDtl6s0NJ0aJvEthnUHvpXoyqRMJPv1bNtgv414ggTmZh
vM1ES/448TUQAKfHalp2fAgDMO7ceF41GE61UIk3/n+JW+XV0cM=
=p2ly
-----END PGP SIGNATURE-----
commit

42bb254d8472561a299daef5006dd1b397d7e378

parent

1fd828f6fd9aef1ccbd335c0d31dfc3126a30e27

3 files changed, 19 insertions(+), 6 deletions(-)

jump to
M gametable/server.gogametable/server.go

@@ -221,7 +221,7 @@ return err

} } - // map image change and token addition/removal require admin authorization + // map image change, aux message, and token addition/removal require admin authorization if tableMsg.Auth != nil { authorized, _ := self.udb.ValidateToken(*tableMsg.Auth) if authorized {

@@ -230,6 +230,12 @@ err := self.dbAdapter.SetMapImageUrl(key, *tableMsg.MapImg)

if err != nil { return err } + } + if tableMsg.AuxMsg != nil { + err := self.dbAdapter.SetAuxMessage(key, *tableMsg.AuxMsg) + if err != nil { + return err + } } } }
M models/models.gomodels/models.go

@@ -17,12 +17,13 @@ Note string `json:"note"`

Timestamp time.Time `json:"timestamp"` } + type Token struct { Id string `json:"id"` Name string `json:"name"` SpriteUri string `json:"spriteUrl"` - X int `json:"x"` - Y int `json:"y"` + X *int `json:"x"` + Y *int `json:"y"` } type Table struct {
M static/admin.jsstatic/admin.js

@@ -23,9 +23,8 @@ if (res.ok) {

document.getElementById("input_table_name").value = name; document.getElementById("input_table_pass").value = pass; dial(); - infoHtml = "<a href='#' onclick='getTables()'>&larr; table list</a><br><pre>"; - infoHtml += await res.text(); - infoHtml += "</pre>" + infoHtml = "<a href='#' onclick='getTables()'>&larr; table list</a><br>"; + infoHtml += `<textarea id='auxMsgZone'>${(await res.json()).auxMsg}</textarea><br><button onclick='publishAuxMsg()'>Change</button>` infoHtml += "<button onclick='destroyTable()'>Destroy</button>" infoHtml += "<input id='map_img_upload' type='file'>Map Image</input><button onclick='uploadMapImg()'>Upload</button>" if (mapImgs.ok) {

@@ -45,6 +44,13 @@ console.log(res.status);

} } catch (err) { setErr(`${err.name}: ${err.message}`); + } +} + +function publishAuxMsg() { + const txtArea = document.getElementById("auxMsgZone"); + if (txtArea != null) { + publish({auxMsg: txtArea.value, auth: adminToken.access_token}); } }