Skip to content

Commit b5f7774

Browse files
committed
move profile, users, version into Settings, general settings page
1 parent d211951 commit b5f7774

File tree

7 files changed

+56
-35
lines changed

7 files changed

+56
-35
lines changed

assets/l10n/en_US.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,8 @@
209209
"settings.title": "Settings",
210210
"settings.header": "Settings",
211211
"settings.netplay": "Netplay available. Activate in the game settings to play",
212-
"settings.general.header": "General",
212+
"settings.general.title": "General settings",
213+
"settings.general.header": "General settings",
213214
"settings.general.saved": "Settings saved",
214215
"settings.general.language.label": "Emulator language",
215216
"settings.general.submit": "Save",

assets/l10n/ru_RU.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,8 @@
209209
"settings.title": "Настройки",
210210
"settings.header": "Настройки",
211211
"settings.netplay": "Доступна сетевая игра. Вы можете включить ее в настройках игры",
212-
"settings.general.header": "Основные",
212+
"settings.general.title": "Основные настройки",
213+
"settings.general.header": "Основные настройки",
213214
"settings.general.saved": "Настройки сохранены",
214215
"settings.general.language.label": "Язык эмулятора",
215216
"settings.general.submit": "Сохранить",

templates/includes/navbar.twig

-11
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,9 @@
2727
</li>
2828
{% endif %}
2929
{% if user %}
30-
<li class="nav-item">
31-
<a class="nav-link" href="/profile">{{ loc("nav.profile") }}</a>
32-
</li>
3330
<li class="nav-item">
3431
<a class="nav-link" href="/settings">{{ loc("nav.settings") }}</a>
3532
</li>
36-
{% if user.CanControlUsers() %}
37-
<li class="nav-item">
38-
<a class="nav-link" href="/users">{{ loc("nav.users") }}</a>
39-
</li>
40-
{% endif %}
41-
<li class="nav-item">
42-
<a class="nav-link" href="/version">{{ loc("nav.version") }}</a>
43-
</li>
4433
<li class="nav-item">
4534
<a class="nav-link" href="/logout">{{ loc("nav.logout") }}</a>
4635
</li>

templates/settings.twig

+8-17
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
{{ loc("settings.title") }} - {{ loc("brand") }}
55
{% endblock %}
66

7-
{% block assets %}
8-
<script src="/assets/game-options.js"></script>
9-
{% endblock %}
10-
117
{% block content %}
128
<h1>{{ loc("settings.header") }}</h1>
139
<hr>
@@ -18,19 +14,14 @@
1814
</div>
1915
{% endif %}
2016

21-
<h2>{{ loc("settings.general.header") }}</h2>
22-
23-
{% if done %}
24-
<div class="alert alert-success mb-3">{{ loc("settings.general.saved") }}</div>
25-
{% endif %}
26-
27-
<form action="/settings" method="post" enctype="application/x-www-form-urlencoded" class="mb-5">
28-
<input type="hidden" name="_playtime_csrf" value="{{ _csrf_token }}">
29-
{% include "includes/form_settings.twig" %}
30-
<div class="text-end">
31-
<button type="submit" class="btn btn-primary">{{ loc("settings.general.submit") }}</button>
32-
</div>
33-
</form>
17+
<div class="list-group list-group-hover mb-5">
18+
<a class="lead list-group-item list-group-item-action" href="/settings/general">{{ loc("settings.general.title") }}</a>
19+
<a class="lead list-group-item list-group-item-action" href="/profile">{{ loc("nav.profile") }}</a>
20+
{% if user.CanControlUsers() %}
21+
<a class="lead list-group-item list-group-item-action" href="/users">{{ loc("nav.users") }}</a>
22+
{% endif %}
23+
<a class="lead list-group-item list-group-item-action" href="/version">{{ loc("nav.version") }}</a>
24+
</div>
3425

3526
<h2>{{ loc("settings.platform.header") }}</h2>
3627

templates/settings_general.twig

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{% extends "layouts/layout.twig" %}
2+
3+
{% block title %}
4+
{{ loc("settings.general.title") }} - {{ loc("brand") }}
5+
{% endblock %}
6+
7+
{% block assets %}
8+
<script src="/assets/game-options.js"></script>
9+
{% endblock %}
10+
11+
{% block content %}
12+
13+
<h1>{{ loc("settings.general.header") }}</h1>
14+
<hr>
15+
16+
{% if done %}
17+
<div class="alert alert-success mb-3">{{ loc("settings.general.saved") }}</div>
18+
{% endif %}
19+
20+
<form action="/settings/general" method="post" enctype="application/x-www-form-urlencoded" class="mb-5">
21+
<input type="hidden" name="_playtime_csrf" value="{{ _csrf_token }}">
22+
{% include "includes/form_settings.twig" %}
23+
<hr>
24+
<div class="mb-3 text-end">
25+
<button type="submit" class="btn btn-primary">{{ loc("settings.general.submit") }}</button>
26+
</div>
27+
</form>
28+
{% endblock %}

web/handlers_settings.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,26 @@ import (
1111
"strconv"
1212
)
1313

14-
func (s *Server) settingsGeneralForm(c echo.Context) error {
14+
func (s *Server) settings(c echo.Context) error {
1515
context := c.(*PlaytimeContext)
1616

1717
return c.Render(http.StatusOK, "settings", pongo2.Context{
18+
"_csrf_token": c.Get("csrf"),
19+
"user": context.user,
20+
"settings": context.settings,
21+
"platforms": sortedPlatforms(),
22+
})
23+
}
24+
25+
func (s *Server) settingsGeneralForm(c echo.Context) error {
26+
context := c.(*PlaytimeContext)
27+
28+
return c.Render(http.StatusOK, "settings_general", pongo2.Context{
1829
"_csrf_token": c.Get("csrf"),
1930
"user": context.user,
2031
"settings": context.settings,
2132
"done": c.QueryParam("done"),
2233
"languages": storage.Languages,
23-
"platforms": sortedPlatforms(),
2434
})
2535
}
2636

@@ -52,7 +62,7 @@ func (s *Server) settingsGeneralSubmit(c echo.Context) error {
5262
return err
5363
}
5464

55-
return c.Redirect(http.StatusFound, "/settings?done=1")
65+
return c.Redirect(http.StatusFound, "/settings/general?done=1")
5666
}
5767

5868
func (s *Server) settingsByPlatformForm(c echo.Context) error {

web/main.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,12 @@ func New(config *Configuration, storage *storage.Storage) *Server {
129129
settings := e.Group("/settings")
130130
settings.Use(s.authenticationRequiredMiddleware)
131131
settings.Use(s.settingsRequiredMiddleware)
132-
settings.GET("", s.settingsGeneralForm)
132+
settings.GET("", s.settings)
133+
settings.GET("/general", s.settingsGeneralForm)
133134
settings.GET("/:platform", s.settingsByPlatformForm)
134135
settings.GET("/:platform/restore", s.settingsByPlatformRestoreDefaults)
135136
settings.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(10)))
136-
settings.POST("", s.settingsGeneralSubmit)
137+
settings.POST("/general", s.settingsGeneralSubmit)
137138
settings.POST("/:platform", s.settingsByPlatformSubmit)
138139
settings.POST("/:platform/restore", s.settingsByPlatformRestoreDefaultsSave)
139140

0 commit comments

Comments
 (0)