Списки: период, сортировка, подгрузка; анкета участника — строкой исходящих

«Исходящие», «Входящие», «Журнал обмена»: быстрые периоды (сегодня, 7, 30
дней, всё время), даты с–по, сортировка (время, инвестор/контрагент,
направление, статус), первые 50 строк и подгрузка при прокрутке
(part=rows&offset=N). Раньше показывались только последние 200/100.

Анкета участника — исходящий пакет в НРД: строка в «Исходящих» и
«Журнале» с ответом НРД (принята / отклонена с кодом / ждёт), вместо
плашки над списком. Отправки копятся в participant-regs.json (прежний
participant-reg.json подхватывается). userTemplate — функции текущего
пользователя и для порций строк.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-22 10:50:43 +03:00
parent 890e575d3d
commit 60b4d46277
13 changed files with 522 additions and 92 deletions
@@ -0,0 +1,11 @@
{{/* Панель списка (период, сортировка) и подгрузка при прокрутке — «Исходящие», «Входящие», «Журнал обмена». */}}
{{define "listTools"}}<form method="get" action="{{.Path}}" class="list-tools">
<span class="lt-presets">{{range .Presets}}<a href="{{.Href}}" class="lt-p{{if .On}} on{{end}}">{{.Label}}</a>{{end}}</span>
<label>с <input type="date" name="from" value="{{.Q.FromS}}" onchange="this.form.submit()"></label>
<label>по <input type="date" name="to" value="{{.Q.ToS}}" onchange="this.form.submit()"></label>
<label>сортировка <select name="sort" onchange="this.form.submit()">{{range .Sorts}}<option value="{{.Key}}"{{if .On}} selected{{end}}>{{.Label}}</option>{{end}}</select></label>
<select name="dir" onchange="this.form.submit()" aria-label="Порядок"><option value="desc"{{if not .Q.Asc}} selected{{end}}>{{if eq .Q.Sort "time"}}сначала новые{{else}}Я → А{{end}}</option><option value="asc"{{if .Q.Asc}} selected{{end}}>{{if eq .Q.Sort "time"}}сначала старые{{else}}А → Я{{end}}</option></select>
<span class="muted lt-n">найдено: {{.Total}}</span>
</form>{{end}}
{{define "listMore"}}<div class="list-more muted" data-list-more data-body="{{.Body}}" data-q="{{.Q.Query}}" data-next="{{.Next}}"{{if not .More}} hidden{{end}}>Загружаю ещё…</div>{{end}}