Files
Bridge-and-Join-s/internal/lkgateway/web/templates/part_alerts.html
T

68 lines
6.8 KiB
HTML

{{/* Оповещения: почта и адресаты — общие для «Настройка → Оповещения» и мастера (данные — SetupData). */}}
{{define "smtpCard"}}
<div class="card" id="sec-smtp">
<h2>Почта (SMTP)</h2>
<p class="muted">Через какой почтовый сервер bj отправляет письма. Кому — в блоке «Кому писать».</p>
<form method="post" action="/admin/setup/alerts-smtp" style="margin-top:12px">
<label style="display:flex;align-items:center;gap:8px;font-weight:400;margin-bottom:12px"><input type="checkbox" name="enabled" style="width:auto" {{if .Settings.Alerts.SMTP.Enabled}}checked{{end}}> Включить почтовые уведомления</label>
<div class="grid" style="grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px">
<div><label>SMTP-сервер</label><input type="text" name="host" value="{{.Settings.Alerts.SMTP.Host}}" placeholder="smtp.example.ru" style="margin-top:3px"></div>
<div><label>Порт</label><input type="text" id="smtp-port" name="port" value="{{if .Settings.Alerts.SMTP.Port}}{{.Settings.Alerts.SMTP.Port}}{{else}}587{{end}}" style="margin-top:3px"></div>
<div><label>Шифрование</label>
<select id="smtp-security" name="security" style="margin-top:3px" onchange="smtpSyncPort(this.value)">
<option value="starttls" {{if eq .Settings.Alerts.SMTP.Security "starttls"}}selected{{end}}>STARTTLS (587)</option>
<option value="ssl" {{if eq .Settings.Alerts.SMTP.Security "ssl"}}selected{{end}}>SSL/TLS (465)</option>
<option value="none" {{if eq .Settings.Alerts.SMTP.Security "none"}}selected{{end}}>Без шифрования (25)</option>
</select></div>
</div>
<div class="grid" style="grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px">
<div><label>Логин</label><input type="text" name="username" value="{{.Settings.Alerts.SMTP.Username}}" autocomplete="off" style="margin-top:3px"></div>
<div><label>Пароль {{if .Settings.Alerts.SMTP.Password}}<span class="muted">(задан; пусто — оставить)</span>{{end}}</label><input type="password" name="password" autocomplete="new-password" style="margin-top:3px"></div>
<div><label>Отправитель (From)</label><input type="text" name="from" value="{{.Settings.Alerts.SMTP.From}}" placeholder="bj@example.ru" style="margin-top:3px"></div>
</div>
<div style="margin-top:12px;max-width:420px"><label>Проверочное письмо — кому</label><input type="text" name="test_to" value="{{if .Settings.Alerts.SMTP.TestTo}}{{.Settings.Alerts.SMTP.TestTo}}{{else}}{{.Settings.Alerts.SMTP.To}}{{end}}" placeholder="it@example.ru" style="margin-top:3px;width:100%">
<span class="muted" style="font-size:12px;display:block;margin-top:4px;line-height:1.4">По умолчанию — администратор системы из блока «Кому писать».</span></div>
<div style="margin-top:16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center">
<button type="submit" class="btn">Сохранить</button>
<button type="submit" formaction="/admin/setup/alerts-smtp-test" class="btn btn-secondary">Отправить проверочное письмо</button>
</div>
</form>
{{if .Settings.Alerts.SMTP.LastMsg}}<p class="muted" style="font-size:12px;margin-top:10px">Последняя проверка: {{.Settings.Alerts.SMTP.LastMsg}}</p>{{end}}
</div>
<script>
// Смена шифрования SMTP авто-подставляет типовой порт; править вручную можно.
function smtpSyncPort(sec){
var p=document.getElementById('smtp-port'); if(!p) return;
var def={starttls:'587', ssl:'465', none:'25'}[sec];
if(def) p.value=def;
}
</script>
{{end}}
{{define "notifyGroupsCard"}}
<div class="card" id="sec-notify-groups">
<h2>Кому писать</h2>
<p class="muted">Администратору системы — то, что нужно ИТ: сбои шлюза НРД и служб bj, потеря связи с НРД, обновления, лицензия и сертификаты. Отделам — переводы и поручения. Что кому отправлять — в таблице; группе без адреса bj не пишет.</p>
<form method="post" action="/admin/setup/incoming-notify" style="margin-top:12px">
<div style="display:grid;gap:10px;max-width:640px">
<div><label>Администратор системы (через запятую)</label><input type="text" name="emails_admin" value="{{.Settings.Alerts.SMTP.To}}" placeholder="it@example.ru" style="margin-top:3px;width:100%"></div>
<div><label>Депозитарий (через запятую)</label><input type="text" name="emails" value="{{.Settings.Incoming.Emails}}" placeholder="depo@example.ru" style="margin-top:3px;width:100%"></div>
<div><label>Бэк-офис (через запятую)</label><input type="text" name="emails_back" value="{{.Settings.Incoming.EmailsBack}}" placeholder="backoffice@example.ru" style="margin-top:3px;width:100%"></div>
<div><label>Мидл-офис (через запятую)</label><input type="text" name="emails_middle" value="{{.Settings.Incoming.EmailsMiddle}}" placeholder="middle@example.ru" style="margin-top:3px;width:100%"></div>
</div>
<div style="overflow-x:auto;margin-top:14px">
<table style="max-width:760px">
<thead><tr><th>Тип уведомления</th>{{range .NotifyGroups}}<th style="text-align:center">{{.Title}}</th>{{end}}</tr></thead>
<tbody>{{$inc := .Settings.Incoming}}{{range $k := .NotifyKinds}}<tr><td>{{$k.Title}}</td>{{range $g := $.NotifyGroups}}<td style="text-align:center"><input type="checkbox" name="route_{{$k.Key}}_{{$g.Key}}" value="1" {{if $inc.RouteHas $k.Key $g.Key}}checked{{end}} style="width:auto" aria-label="{{$k.Title}} — {{$g.Title}}"></td>{{end}}</tr>{{end}}</tbody>
</table>
</div>
<div style="margin-top:16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center">
<button type="submit" class="btn">Сохранить</button>
<button type="submit" formaction="/admin/setup/incoming-notify-test" class="btn btn-secondary">Отправить пробное уведомление о переводе</button>
</div>
</form>
<p class="muted" style="font-size:12px;margin-top:8px">Письма уходят через почтовый сервер из блока «Почта (SMTP)».</p>
</div>
{{end}}