testing clientside token stuff

This commit is contained in:
Iris Lightshard 2023-07-05 01:18:46 -06:00
parent f797337074
commit 825f2ac762
Signed by: nilix
GPG key ID: 3B7FBC22144E6398
5 changed files with 60 additions and 24 deletions

View file

@ -278,13 +278,14 @@ func apiListImages(next http.Handler, uploads string, uploadType string, udb aut
return return
} }
return http.HandlerFunc(handlerFunc) return http.HandlerFunc(handlerFunc)
} }
func apiDeleteImage(next http.Handler, uploads string, uploadType string, udb auth.UserStore, dbAdapter mongodb.DbAdapter) http.Handler { func apiDeleteImage(next http.Handler, uploads string, uploadType string, udb auth.UserStore, dbAdapter mongodb.DbAdapter) http.Handler {
handlerFunc := func(w http.ResponseWriter, req *http.Request) { handlerFunc := func(w http.ResponseWriter, req *http.Request) {
// put the path together // put the path together
urlParams := req.Context().Value("params").(map[string]string) urlParams := req.Context().Value("params").(map[string]string)
tableName := urlParams["table"] tableName := urlParams["table"]
tableKey := models.TableKey{ tableKey := models.TableKey{
Name: tableName, Name: tableName,

View file

@ -165,13 +165,14 @@ func (self *GameTableServer) publish(msg []byte) {
} }
err = self.writeToDB(&tableMsg) err = self.writeToDB(&tableMsg)
// sanitize auth for rebroadcast
tableMsg.Auth = nil tableMsg.Auth = nil
clean, err := json.Marshal(tableMsg) clean, err := json.Marshal(tableMsg)
fmt.Println(string(clean[:]))
if err != nil { if err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
return return
} }
self.publishLimiter.Wait(context.Background()) self.publishLimiter.Wait(context.Background())
for s, k := range self.subscribers { for s, k := range self.subscribers {
@ -241,8 +242,6 @@ func (self *GameTableServer) writeToDB(tableMsg *models.TableMessage) error {
} }
} }
} }
tableMsg.Auth = nil
return nil return nil
} }

View file

@ -40,8 +40,9 @@ async function getTable(name, pass) {
infoHtml += "<label>Maps couldn't be retrieved</label>"; infoHtml += "<label>Maps couldn't be retrieved</label>";
} }
adminZone.innerHTML = infoHtml; adminZone.innerHTML = infoHtml;
}
else { // also, we have to fill and toggle the tokens window
} else {
console.log(res.status); console.log(res.status);
} }
} catch (err) { } catch (err) {

View file

@ -1,9 +1,11 @@
let map = null; let map = null;
let mapImg = null; let mapImg = null;
let tokens = [];
function initializeMap(mapImgUrl) { function initializeMap(mapImgUrl) {
if (!map) { if (!map) {
map = L.map('map', { minZoom: 0, maxZoom: 4, crs: L.CRS.Simple }); map = L.map('map', { minZoom: 0, maxZoom: 4, crs: L.CRS.Simple });
map.on("zoomend", resizeMarkers);
} }
if (mapImg) { if (mapImg) {
mapImg.removeFrom(map); mapImg.removeFrom(map);
@ -13,3 +15,36 @@ function initializeMap(mapImgUrl) {
map.setMaxBounds([[-180,180],[180,-180]]); map.setMaxBounds([[-180,180],[180,-180]]);
map.setView([0,0], 2); map.setView([0,0], 2);
} }
// this works but assumes the map is square (reasonable limitation I think)
function resizeMarkers() {
tokens.forEach(t=>{
const icon = t.m.options.icon;
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
icon.options.iconSize = [scaleFactor * t.sz[0], scaleFactor * t.sz[1]];
t.m.setIcon(icon);
});
}
function addToken(token) {
const self = { sz: token.sz, m: L.marker(token.pos, {
icon: L.icon({
iconUrl: token.img,
iconSize: token.sz,
}),
title: token.name,
draggable: true,
autoPan: true
})};
tokens.push(self);
self.m.addTo(map);
}
// token for testing in browser console
const t = {
img: "https://nilfm.cc/favicon.png",
sz: [32,32],
pos: [0,0],
name: "test",
}

View file

@ -155,7 +155,7 @@ pre {
nav { nav {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: auto 1fr;
} }
.leaflet-container { .leaflet-container {