mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-21 23:22:34 +01:00
fix(setup): reduce friction in installation procedure
- Add Language default ("jp") so missing field no longer produces empty
string, and include language selector in setup wizard
- Add --setup flag to re-run wizard even when config.json exists,
providing a recovery path for corrupted configs
- Auto-apply seed data on fresh databases so users who skip the wizard
still get shops, events, and gacha
- Fix stale docs referencing non-existent init/setup.sh and
schemas/patch-schema/ in docker/README, CONTRIBUTING, and README
This commit is contained in:
@@ -26,6 +26,7 @@ type FinishRequest struct {
|
||||
DBPassword string `json:"dbPassword"`
|
||||
DBName string `json:"dbName"`
|
||||
Host string `json:"host"`
|
||||
Language string `json:"language"`
|
||||
ClientMode string `json:"clientMode"`
|
||||
AutoCreateAccount bool `json:"autoCreateAccount"`
|
||||
}
|
||||
@@ -33,8 +34,13 @@ type FinishRequest struct {
|
||||
// buildDefaultConfig produces a minimal config map with only user-provided values.
|
||||
// All other settings are filled by Viper's registered defaults at load time.
|
||||
func buildDefaultConfig(req FinishRequest) map[string]interface{} {
|
||||
lang := req.Language
|
||||
if lang == "" {
|
||||
lang = "jp"
|
||||
}
|
||||
return map[string]interface{}{
|
||||
"Host": req.Host,
|
||||
"Language": lang,
|
||||
"ClientMode": req.ClientMode,
|
||||
"AutoCreateAccount": req.AutoCreateAccount,
|
||||
"Database": map[string]interface{}{
|
||||
|
||||
@@ -145,10 +145,20 @@ h1{font-size:1.75rem;margin-bottom:.5rem;color:#e94560;text-align:center}
|
||||
</div>
|
||||
<div style="font-size:.75rem;color:#666;margin-top:.3rem">Use 127.0.0.1 for local play, or auto-detect for LAN/internet play.</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Client Mode</label>
|
||||
<select id="srv-client-mode"></select>
|
||||
<div style="font-size:.75rem;color:#666;margin-top:.3rem">Must match your game client version. ZZ is the latest.</div>
|
||||
<div class="field-row">
|
||||
<div class="field">
|
||||
<label>Client Mode</label>
|
||||
<select id="srv-client-mode"></select>
|
||||
<div style="font-size:.75rem;color:#666;margin-top:.3rem">Must match your game client version. ZZ is the latest.</div>
|
||||
</div>
|
||||
<div class="field field-sm">
|
||||
<label>Language</label>
|
||||
<select id="srv-language">
|
||||
<option value="jp" selected>jp</option>
|
||||
<option value="en">en</option>
|
||||
</select>
|
||||
<div style="font-size:.75rem;color:#666;margin-top:.3rem">Game text language.</div>
|
||||
</div>
|
||||
</div>
|
||||
<label class="checkbox" style="margin-top:1rem"><input type="checkbox" id="srv-auto-create" checked> Auto-create accounts (recommended for private servers)</label>
|
||||
<div class="actions">
|
||||
@@ -339,6 +349,7 @@ function buildReview() {
|
||||
['Database Password', masked],
|
||||
['Database Name', document.getElementById('db-name').value],
|
||||
['Server Host', document.getElementById('srv-host').value],
|
||||
['Language', document.getElementById('srv-language').value],
|
||||
['Client Mode', document.getElementById('srv-client-mode').value],
|
||||
['Auto-create Accounts', document.getElementById('srv-auto-create').checked ? 'Yes' : 'No'],
|
||||
];
|
||||
@@ -362,6 +373,7 @@ async function finish() {
|
||||
dbPassword: document.getElementById('db-password').value,
|
||||
dbName: document.getElementById('db-name').value,
|
||||
host: document.getElementById('srv-host').value,
|
||||
language: document.getElementById('srv-language').value,
|
||||
clientMode: document.getElementById('srv-client-mode').value,
|
||||
autoCreateAccount: document.getElementById('srv-auto-create').checked,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user