commit d2a6338e309d78a129073e720958c14d836b95c8
parent c53f76f15c100c300e9d8d78f6df1e4f0896dafa
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 12 Jun 2023 11:41:04 -0700
add sounds enabled/disabled indicator
Diffstat:
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.