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"`
|
||||
Sender string `yaml:"sender"`
|
||||
} `yaml:"smtp"`
|
||||
IMAP struct {
|
||||
Host string `yaml:"host"`
|
||||
Port int `yaml:"port"`
|
||||
} `yaml:"imap"`
|
||||
}
|
||||
|
||||
// --- Config loading ---
|
||||
|
|
@ -258,9 +262,10 @@ func adminHandler(w http.ResponseWriter, r *http.Request) {
|
|||
// If settings JSON format requested
|
||||
if r.URL.Query().Get("format") == "settings" {
|
||||
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.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))
|
||||
return
|
||||
}
|
||||
|
|
@ -434,6 +439,8 @@ func globalSettingsSaveHandler(w http.ResponseWriter, r *http.Request) {
|
|||
settings.SMTP.Port, _ = strconv.Atoi(r.FormValue("smtp_port"))
|
||||
settings.SMTP.User = r.FormValue("smtp_user")
|
||||
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)
|
||||
|
||||
|
|
@ -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>
|
||||
</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">
|
||||
<h3>System (read-only)</h3>
|
||||
<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_user"]').value = s.smtp_user || '';
|
||||
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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue