dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit d2a6338e309d78a129073e720958c14d836b95c8
parent c53f76f15c100c300e9d8d78f6df1e4f0896dafa
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 12 Jun 2023 11:41:04 -0700

add sounds enabled/disabled indicator

Diffstat:
Mpkg/web/handlers/handlers.go | 6+++---
Mpkg/web/handlers/interceptors/chess.go | 30++++++++++++++++++++----------
Apkg/web/public/img/no-sound.png | 0
Apkg/web/public/img/sounds-enabled.png | 0
4 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -5041,7 +5041,7 @@ func ChessGameHandler(c echo.Context) error { c.Response().WriteHeader(http.StatusOK) send(cssReset) send(`<style>html, body { background-color: #222; }</style>`) - card := g.DrawPlayerCard(key, isFlipped, false) + card := g.DrawPlayerCard(key, isFlipped, false, authUser.ChessSoundsEnabled) send(card) return nil } @@ -5069,9 +5069,9 @@ func ChessGameHandler(c echo.Context) error { var card1 string if isSpectator { - card1 = g.DrawSpectatorCard(isFlipped) + card1 = g.DrawSpectatorCard(isFlipped, authUser.ChessSoundsEnabled) } else { - card1 = g.DrawPlayerCard(key, isFlipped, false) + card1 = g.DrawPlayerCard(key, isFlipped, false, authUser.ChessSoundsEnabled) } send(fmt.Sprintf(`<div id="div_0">%s</div>`, card1)) diff --git a/pkg/web/handlers/interceptors/chess.go b/pkg/web/handlers/interceptors/chess.go @@ -302,11 +302,11 @@ func (g *ChessGame) renderBoardB64(isFlipped bool) string { return imgB64 } -func (g *ChessGame) DrawPlayerCard(key string, isBlack, isYourTurn bool) string { - return g.drawPlayerCard(key, isBlack, false, isYourTurn) +func (g *ChessGame) DrawPlayerCard(key string, isBlack, isYourTurn, soundsEnabled bool) string { + return g.drawPlayerCard(key, isBlack, false, isYourTurn, soundsEnabled) } -func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn bool) string { +func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn, soundsEnabled bool) string { htmlTmpl := ` <style> #p1Status { @@ -329,7 +329,7 @@ func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn <td align="center"> <table style="aspect-ratio: 1/1; height: 70%; max-width: 90%;"> <tr> - <td style="padding: 10px 0;"> + <td style="padding: 10px 0;" colspan="2"> <table> <tr> <td style="padding-right: 10px;"><div id="p1Status"></div></td> @@ -357,9 +357,18 @@ func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn <span id="black-advantage" style="color: #888;" title="black advantage"><span class="score"></span></span>) </span> </td> + <td align="right" style="vertical-align: middle;"> + <a href="/settings/chat" rel="noopener noreferrer" target="_blank"> + {{ if .SoundsEnabled }} + <img src="/public/img/sounds-enabled.png" style="height: 20px;" alt="" title="Sounds enabled" /> + {{ else }} + <img src="/public/img/no-sound.png" style="height: 20px;" alt="" title="Sounds disabled" /> + {{ end }} + </a> + </td> </tr> <tr> - <td> + <td colspan="2"> {{ if or .IsSpectator .GameOver }} {{ .Table }} {{ else }} @@ -374,11 +383,11 @@ func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn </td> </tr> {{ if .IsSpectator }} - <tr><td style="padding: 10px 0;"><a href="?{{ if not .IsFlipped }}r=1{{ end }}" style="color: #eee;">Flip board</a></td></tr> + <tr><td style="padding: 10px 0;" colspan="2"><a href="?{{ if not .IsFlipped }}r=1{{ end }}" style="color: #eee;">Flip board</a></td></tr> {{ end }} - <tr style="height: 100%;"><td><div style="color: #eee;">Outcome: {{ .Outcome }}</div></td></tr> + <tr style="height: 100%;"><td colspan="2"><div style="color: #eee;">Outcome: {{ .Outcome }}</div></td></tr> - {{ if .GameOver }}<tr><td><div><textarea>{{ .PGN }}</textarea></div></td></tr>{{ end }} + {{ if .GameOver }}<tr><td colspan="2"><div><textarea>{{ .PGN }}</textarea></div></td></tr>{{ end }} </table> </td> </tr> @@ -390,6 +399,7 @@ func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn whiteAdvantage, whiteScore, blackAdvantage, blackScore := CalcAdvantage(g.Game.Position()) data := map[string]any{ + "SoundsEnabled": soundsEnabled, "Key": key, "IsFlipped": isBlack, "IsSpectator": isSpectator, @@ -418,8 +428,8 @@ func (g *ChessGame) drawPlayerCard(key string, isBlack, isSpectator, isYourTurn return buf1.String() } -func (g *ChessGame) DrawSpectatorCard(isFlipped bool) string { - return g.drawPlayerCard("", isFlipped, true, false) +func (g *ChessGame) DrawSpectatorCard(isFlipped, soundsEnabled bool) string { + return g.drawPlayerCard("", isFlipped, true, false, soundsEnabled) } func (b *Chess) GetGame(key string) *ChessGame { diff --git a/pkg/web/public/img/no-sound.png b/pkg/web/public/img/no-sound.png Binary files differ. diff --git a/pkg/web/public/img/sounds-enabled.png b/pkg/web/public/img/sounds-enabled.png Binary files differ.