+3
-3
config.maple
+3
-3
config.maple
···
4
4
instance = {
5
5
name = 'beep'
6
6
welcome = 'welcome to beep!'
7
+
8
+
default_theme = 'https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css'
9
+
allow_changing_theme = true
7
10
}
8
11
9
12
http = {
···
48
51
bio_min_len = 0
49
52
bio_max_len = 200
50
53
bio_pattern = '(.|\s)*'
51
-
52
-
default_theme = 'https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.classless.min.css'
53
-
allow_changing_theme = true
54
54
}
+3
-3
src/api.v
+3
-3
src/api.v
···
32
32
password_salt: salt
33
33
}
34
34
35
-
if app.config.user.default_theme != '' {
36
-
user.theme = app.config.user.default_theme
35
+
if app.config.instance.default_theme != '' {
36
+
user.theme = app.config.instance.default_theme
37
37
}
38
38
39
39
sql app.db {
···
201
201
202
202
@['/api/user/set_theme'; post]
203
203
fn (mut app App) api_user_set_theme(mut ctx Context, url string) veb.Result {
204
-
if !app.config.user.allow_changing_theme {
204
+
if !app.config.instance.allow_changing_theme {
205
205
ctx.error('this instance disallows changing themes :(')
206
206
return ctx.redirect('/me')
207
207
}
+21
-21
src/config.v
+21
-21
src/config.v
···
8
8
static_path string
9
9
instance struct {
10
10
pub mut:
11
-
name string
12
-
welcome string
11
+
name string
12
+
welcome string
13
+
default_theme string
14
+
allow_changing_theme bool
13
15
}
14
16
http struct {
15
17
pub mut:
···
34
36
}
35
37
user struct {
36
38
pub mut:
37
-
username_min_len int
38
-
username_max_len int
39
-
username_pattern string
40
-
nickname_min_len int
41
-
nickname_max_len int
42
-
nickname_pattern string
43
-
password_min_len int
44
-
password_max_len int
45
-
password_pattern string
46
-
pronouns_min_len int
47
-
pronouns_max_len int
48
-
pronouns_pattern string
49
-
bio_min_len int
50
-
bio_max_len int
51
-
bio_pattern string
52
-
default_theme string
53
-
allow_changing_theme bool
39
+
username_min_len int
40
+
username_max_len int
41
+
username_pattern string
42
+
nickname_min_len int
43
+
nickname_max_len int
44
+
nickname_pattern string
45
+
password_min_len int
46
+
password_max_len int
47
+
password_pattern string
48
+
pronouns_min_len int
49
+
pronouns_max_len int
50
+
pronouns_pattern string
51
+
bio_min_len int
52
+
bio_max_len int
53
+
bio_pattern string
54
54
}
55
55
}
56
56
···
64
64
loaded_instance := loaded.get('instance')
65
65
config.instance.name = loaded_instance.get('name').to_str()
66
66
config.instance.welcome = loaded_instance.get('welcome').to_str()
67
+
config.instance.default_theme = loaded_instance.get('default_theme').to_str()
68
+
config.instance.allow_changing_theme = loaded_instance.get('allow_changing_theme').to_bool()
67
69
68
70
loaded_http := loaded.get('http')
69
71
config.http.port = loaded_http.get('port').to_int()
···
99
101
config.user.bio_min_len = loaded_user.get('bio_min_len').to_int()
100
102
config.user.bio_max_len = loaded_user.get('bio_max_len').to_int()
101
103
config.user.bio_pattern = loaded_user.get('bio_pattern').to_str()
102
-
config.user.default_theme = loaded_user.get('default_theme').to_str()
103
-
config.user.allow_changing_theme = loaded_user.get('allow_changing_theme').to_bool()
104
104
105
105
return config
106
106
}
+2
src/templates/partial/header.html
+2
src/templates/partial/header.html
···
10
10
@include 'assets/style.html'
11
11
@if ctx.is_logged_in() && user.theme != none
12
12
<link rel="stylesheet" href="@user.get_theme()">
13
+
@else if app.config.instance.default_theme != ''
14
+
<link rel="stylesheet" href="@app.config.instance.default_theme">
13
15
@endif
14
16
</head>
15
17
+1
-1
src/templates/user.html
+1
-1
src/templates/user.html
···
124
124
<form action="/api/user/set_nickname" method="post">
125
125
<input type="submit" value="reset nickname">
126
126
</form>
127
-
@if app.config.user.allow_changing_theme
127
+
@if app.config.instance.allow_changing_theme
128
128
<br>
129
129
<form action="/api/user/set_theme" method="post">
130
130
<label for="url">theme:</label>