Исходящие: карточка «Регистрация участника M2M» (отправка анкеты + ответ НРД)
На странице «Исходящие» (/admin/claims) сверху показываем карточку регистрации участника: когда отправили анкету, пакет, наименование и вердикт НРД («принял» / «отклонил» с текстом, напр. M2M37). Данные — из participant-reg.json (template-функция participantRegHTML). Карточки нет, пока анкету не отправляли. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -20,8 +20,8 @@
|
|||||||
"version": "2026.10.21.6"
|
"version": "2026.10.21.6"
|
||||||
},
|
},
|
||||||
"bj-server": {
|
"bj-server": {
|
||||||
"fingerprint": "729ea3d2cdb6ba9d3f5e56d8acb967d7a5620771a6949d723482ee14d882a83c",
|
"fingerprint": "6a2896e2078e2388caf8822568efa8b7d798a51891433ce1e6413cb7a11eeca1",
|
||||||
"version": "2026.10.21.13"
|
"version": "2026.10.21.14"
|
||||||
},
|
},
|
||||||
"crypto-service.jar": {
|
"crypto-service.jar": {
|
||||||
"fingerprint": "2c4fd536bc9b1c20c69a70e8dcd374a61847b263aeb2e474c45debb01fbd8233",
|
"fingerprint": "2c4fd536bc9b1c20c69a70e8dcd374a61847b263aeb2e474c45debb01fbd8233",
|
||||||
|
|||||||
@@ -37,6 +37,30 @@ type admin struct {
|
|||||||
// русификация статусов и других технических обозначений (см. требование
|
// русификация статусов и других технических обозначений (см. требование
|
||||||
// «всё UI на русском, кроме программных терминов»).
|
// «всё UI на русском, кроме программных терминов»).
|
||||||
var templateFuncs = template.FuncMap{
|
var templateFuncs = template.FuncMap{
|
||||||
|
// Карточка «Регистрация участника M2M» для «Исходящих»: когда отправили анкету и вердикт НРД.
|
||||||
|
"participantRegHTML": func() template.HTML {
|
||||||
|
reg := loadParticipantReg()
|
||||||
|
if reg.SentAt.IsZero() {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
esc := template.HTMLEscapeString
|
||||||
|
var b strings.Builder
|
||||||
|
b.WriteString(`<div class="card"><h2>Регистрация участника M2M (анкета)</h2><p>Анкета отправлена ` + reg.SentAt.Format("02.01.2006 15:04") + `, пакет ` + esc(reg.PkgID))
|
||||||
|
if reg.Name != "" {
|
||||||
|
b.WriteString(`, наименование «` + esc(reg.Name) + `»`)
|
||||||
|
}
|
||||||
|
b.WriteString(`. `)
|
||||||
|
switch {
|
||||||
|
case reg.RespAt.IsZero():
|
||||||
|
b.WriteString(`Ответ НРД пока не получен.`)
|
||||||
|
case strings.EqualFold(reg.Status, "ERROR"):
|
||||||
|
b.WriteString(`<b style="color:var(--err,#c0392b)">НРД отклонил</b> ` + reg.RespAt.Format("02.01 15:04") + `: ` + esc(reg.RespText) + `.`)
|
||||||
|
default:
|
||||||
|
b.WriteString(`<b style="color:#1a7f37">НРД принял</b> ` + reg.RespAt.Format("02.01 15:04") + `. ` + esc(reg.RespText))
|
||||||
|
}
|
||||||
|
b.WriteString(` <a href="/admin/setup/participant-form">открыть анкету →</a></p></div>`)
|
||||||
|
return template.HTML(b.String())
|
||||||
|
},
|
||||||
"ru": russianText,
|
"ru": russianText,
|
||||||
"ruState": russianState,
|
"ruState": russianState,
|
||||||
"ruOutcome": russianOutcome,
|
"ruOutcome": russianOutcome,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{{define "content"}}
|
{{define "content"}}
|
||||||
{{if .Flash}}<div class="card" style="background:var(--accent-weak,#e7f0fb)">{{.Flash}}</div>{{end}}
|
{{if .Flash}}<div class="card" style="background:var(--accent-weak,#e7f0fb)">{{.Flash}}</div>{{end}}
|
||||||
|
{{participantRegHTML}}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h2>Журнал заявок ({{len .Items}})</h2>
|
<h2>Журнал заявок ({{len .Items}})</h2>
|
||||||
{{if .Items}}
|
{{if .Items}}
|
||||||
|
|||||||
Reference in New Issue
Block a user