diff --git a/admin/admin.go b/admin/admin.go index e3a932a..1b48191 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -48,7 +48,7 @@ func apiGetTableData(next http.Handler, udb auth.UserStore, dbAdapter mongodb.Db if dbAdapter.CheckTable(tableKey) { mapUrl, _ := dbAdapter.GetMapImageUrl(tableKey) auxMessage, _ := dbAdapter.GetAuxMessage(tableKey) - tokens, _ := dbAdapter.GetTokens(tableKey, true) + tokens, _ := dbAdapter.GetTokens(tableKey, false) diceRolls, _ := dbAdapter.GetDiceRolls(tableKey) AddContextValue(req, "tableData", models.Table{ diff --git a/gametable/server.go b/gametable/server.go index e103083..2ad47bf 100644 --- a/gametable/server.go +++ b/gametable/server.go @@ -272,14 +272,16 @@ func (self *GameTableServer) writeToDB(tableMsg *models.TableMessage) error { } } if tableMsg.Token != nil { - t := *tableMsg.Token + t := tableMsg.Token + strId := "" + if t.Id != nil { + strId = *t.Id + } + fmt.Println(strId +"::" + t.Name + "::" + t.Sprite) if t.Id == nil { - id, err := self.dbAdapter.CreateToken(key, t) - if err == nil { - *tableMsg.Token.Id = id - } else { - return err - } + id, err := self.dbAdapter.CreateToken(key, *t) + t.Id = &id + return err } else { if t.X == nil && t.Y == nil && !t.Active { err := self.dbAdapter.DestroyToken(key, *t.Id) diff --git a/mongodb/adapter.go b/mongodb/adapter.go index efe77c6..381b87a 100644 --- a/mongodb/adapter.go +++ b/mongodb/adapter.go @@ -319,6 +319,8 @@ func (self *DbEngine) CheckToken(table models.TableKey, tokenId string) (bool, b func (self *DbEngine) CreateToken(table models.TableKey, token models.Token) (string, error) { tables := self.db.Collection("tables") + id := primitive.NewObjectID().Hex() + token.Id = &id if tables != nil { var result models.Table err := tables.FindOneAndUpdate( @@ -332,8 +334,7 @@ func (self *DbEngine) CreateToken(table models.TableKey, token models.Token) (st }, ).Decode(&result) if err == nil { - newId := result.Tokens[len(result.Tokens)-1].Id - return *newId, nil + return id, err } else { return "", err } diff --git a/static/admin.js b/static/admin.js index 89eb16a..eb0130c 100644 --- a/static/admin.js +++ b/static/admin.js @@ -18,7 +18,7 @@ const tokenAspect = document.getElementById("tokenKeepAspect"); const aspectLockLabel = document.getElementById("aspectLockLabel"); const tokenZone = document.getElementById("tokenZone"); -async function getTable(name, pass) { +async function rebindUi(name, pass) { try { const headers = new Headers(); headers.set('Authorization', 'Bearer ' + adminToken.access_token); @@ -72,7 +72,7 @@ async function getTable(name, pass) { } tokenListHTML += ""; fillSpriteDropdown(tokens); - redrawTokenMasterList(); + } else { tokenListHTML += "" } @@ -88,15 +88,6 @@ async function getTable(name, pass) { } } -function redrawTokenMasterList() { - if (tokenZone) { - const headers = new Headers(); - headers.set('Authorization', 'Bearer ' + adminToken.access_token); - - const res = await fetch(`/` - } -} - function fillSpriteDropdown(tokens) { let options = ""; for (const t of tokens) { @@ -225,9 +216,21 @@ function createToken() { */ // really though we have to send it on the websocket and wait for it to come back - - + const [x, y] = getCascadingPos(); + sendToken({ + w: w, + h: h, + ox:oX, + oy:oY, + x: x, + y: y, + sprite: img, + name: name, + active: false} + ); + return; } + setErr("All token fields are required"); } function publishAuxMsg() { @@ -267,7 +270,7 @@ async function uploadMapImg() { }); if (res.ok) { // refresh so we can see the new entry in the list - getTable(tableKey.name, tableKey.passcode); + rebindUi(tableKey.name, tableKey.passcode); } else { throw new Error("Something went wrong uploading the map BG..."); } @@ -291,7 +294,7 @@ async function uploadTokenImg() { }); if (res.ok) { // refresh so we can see the new entry in the list - getTable(tableKey.name, tableKey.passcode); + rebindUi(tableKey.name, tableKey.passcode); } else { throw new Error("Something went wrong uploading the token sprite..."); } @@ -317,7 +320,7 @@ async function deleteImg(url) { if (res.ok) { // refresh UI - getTable(tableKey.name, tableKey.passcode); + rebindUi(tableKey.name, tableKey.passcode); } else { throw new Error ("Something went wrong deleting the image..."); } @@ -363,7 +366,7 @@ async function getTables() { const tableList = await res.json(); let tableListHTML = "" adminZone.innerHTML = tableListHTML; diff --git a/static/index.html b/static/index.html index c55b4bc..e47b645 100644 --- a/static/index.html +++ b/static/index.html @@ -9,7 +9,9 @@
+ +