feat: IMAP host/port in global settings
This commit is contained in:
parent
6b00f081c0
commit
1ca2b028c8
1 changed files with 18 additions and 2 deletions
20
main.go
20
main.go
|
|
@ -62,6 +62,10 @@ type Settings struct {
|
||||||
User string `yaml:"user"`
|
User string `yaml:"user"`
|
||||||
Sender string `yaml:"sender"`
|
Sender string `yaml:"sender"`
|
||||||
} `yaml:"smtp"`
|
} `yaml:"smtp"`
|
||||||
|
IMAP struct {
|
||||||
|
Host string `yaml:"host"`
|
||||||
|
Port int `yaml:"port"`
|
||||||
|
} `yaml:"imap"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Config loading ---
|
// --- Config loading ---
|
||||||
|
|
@ -258,9 +262,10 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
// If settings JSON format requested
|
// If settings JSON format requested
|
||||||
if r.URL.Query().Get("format") == "settings" {
|
if r.URL.Query().Get("format") == "settings" {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
jsonData := fmt.Sprintf(`{"company_name":"%s","language":"%s","timezone":"%s","smtp_host":"%s","smtp_port":"%d","smtp_user":"%s","smtp_sender":"%s"}`,
|
jsonData := fmt.Sprintf(`{"company_name":"%s","language":"%s","timezone":"%s","smtp_host":"%s","smtp_port":"%d","smtp_user":"%s","smtp_sender":"%s","imap_host":"%s","imap_port":"%d"}`,
|
||||||
settings.Company.Name, settings.Company.Language, settings.Company.Timezone,
|
settings.Company.Name, settings.Company.Language, settings.Company.Timezone,
|
||||||
settings.SMTP.Host, settings.SMTP.Port, settings.SMTP.User, settings.SMTP.Sender)
|
settings.SMTP.Host, settings.SMTP.Port, settings.SMTP.User, settings.SMTP.Sender,
|
||||||
|
settings.IMAP.Host, settings.IMAP.Port)
|
||||||
w.Write([]byte(jsonData))
|
w.Write([]byte(jsonData))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
@ -434,6 +439,8 @@ func globalSettingsSaveHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
settings.SMTP.Port, _ = strconv.Atoi(r.FormValue("smtp_port"))
|
settings.SMTP.Port, _ = strconv.Atoi(r.FormValue("smtp_port"))
|
||||||
settings.SMTP.User = r.FormValue("smtp_user")
|
settings.SMTP.User = r.FormValue("smtp_user")
|
||||||
settings.SMTP.Sender = r.FormValue("smtp_sender")
|
settings.SMTP.Sender = r.FormValue("smtp_sender")
|
||||||
|
settings.IMAP.Host = r.FormValue("imap_host")
|
||||||
|
settings.IMAP.Port, _ = strconv.Atoi(r.FormValue("imap_port"))
|
||||||
|
|
||||||
saveSettings(configDir, settings)
|
saveSettings(configDir, settings)
|
||||||
|
|
||||||
|
|
@ -951,6 +958,13 @@ const adminHTML = `<!DOCTYPE html>
|
||||||
<div class="field"><label>Sender Email</label><input type="email" name="smtp_sender" value="{{.Settings.SMTP.Sender}}" placeholder="post@nextwks.eu"></div>
|
<div class="field"><label>Sender Email</label><input type="email" name="smtp_sender" value="{{.Settings.SMTP.Sender}}" placeholder="post@nextwks.eu"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<h3>IMAP (Mail Client)</h3>
|
||||||
|
<div class="field-row">
|
||||||
|
<div class="field"><label>IMAP Host</label><input type="text" name="imap_host" value="{{.Settings.IMAP.Host}}" placeholder="imap.openxchange.eu"></div>
|
||||||
|
<div class="field"><label>IMAP Port</label><input type="number" name="imap_port" value="{{.Settings.IMAP.Port}}" placeholder="993"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3>System (read-only)</h3>
|
<h3>System (read-only)</h3>
|
||||||
<div class="info-grid">
|
<div class="info-grid">
|
||||||
|
|
@ -1051,6 +1065,8 @@ const adminHTML = `<!DOCTYPE html>
|
||||||
document.querySelector('[name="smtp_port"]').value = s.smtp_port || '587';
|
document.querySelector('[name="smtp_port"]').value = s.smtp_port || '587';
|
||||||
document.querySelector('[name="smtp_user"]').value = s.smtp_user || '';
|
document.querySelector('[name="smtp_user"]').value = s.smtp_user || '';
|
||||||
document.querySelector('[name="smtp_sender"]').value = s.smtp_sender || '';
|
document.querySelector('[name="smtp_sender"]').value = s.smtp_sender || '';
|
||||||
|
document.querySelector('[name="imap_host"]').value = s.imap_host || '';
|
||||||
|
document.querySelector('[name="imap_port"]').value = s.imap_port || '993';
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveGlobal(e) {
|
async function saveGlobal(e) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue