Баннер режима разработки в шапке с личным выключателем

Пока лицензия разрешает режим разработки, в шапке висит баннер; нажатие выключает режим визуально для этого пользователя и включает обратно. В шаблонах .DevMode заменён на devOn.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 11:18:27 +03:00
parent 054222d154
commit b4b4788035
18 changed files with 152 additions and 72 deletions
@@ -44,7 +44,7 @@
.dc-rec.mixed{background:var(--warn-weak,#fff4e0);color:var(--warn,#9a6b12)}
</style>
<div style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">
<h2 style="margin:0">Сверка с DEPO — {{if .DevMode}}эмуляция ответа{{else}}рекомендация по ответу{{end}}</h2>
<h2 style="margin:0">Сверка с DEPO — {{if devOn}}эмуляция ответа{{else}}рекомендация по ответу{{end}}</h2>
{{if .Depo.Ran}}<span class="dc-rec {{.Depo.Recommend}}">рекомендуем: {{.Depo.Summary}}</span>{{end}}
</div>
<p class="muted" style="font-size:12.5px;margin:6px 0 0">Проверки по регламенту депозитария (инвестор, торговый счёт депо, бумага на обслуживании, договор не ИИС, блокировки). <b>Ответ контрагенту НЕ отправлен</b> — это только рекомендация; она подставлена в форму ниже, проверьте и нажмите «Отправить решение».</p>
@@ -73,7 +73,7 @@
<div class="card">
<h2>Решение по бумагам ({{len .It.Securities}})</h2>
{{if $answered}}
<p class="muted">Решение уже отправлено {{if .DevMode}}роботу{{else}}контрагенту через НРД{{end}}. Ниже — что было выбрано по каждой бумаге.</p>
<p class="muted">Решение уже отправлено {{if devOn}}роботу{{else}}контрагенту через НРД{{end}}. Ниже — что было выбрано по каждой бумаге.</p>
<table>
<thead><tr><th>ReferenceId</th><th>Код НРД / ISIN</th><th>Кол-во</th><th>Счёт зачисления</th><th>Решение</th></tr></thead>
<tbody>
@@ -89,9 +89,9 @@
</tbody>
</table>
{{else}}
<p class="muted">По каждой бумаге выберите: <b>принять</b> (зачислим на наш депо-счёт из настроек НРД) или <b>отказать</b> (с кодом отказа). Решение уйдёт {{if .DevMode}}роботу{{else}}контрагенту через НРД{{end}} одним сообщением M2MTransferDecision.</p>
<p class="muted">По каждой бумаге выберите: <b>принять</b> (зачислим на наш депо-счёт из настроек НРД) или <b>отказать</b> (с кодом отказа). Решение уйдёт {{if devOn}}роботу{{else}}контрагенту через НРД{{end}} одним сообщением M2MTransferDecision.</p>
{{if .DevMode}}{{/* подсказки по сценариям робота НРД — только в режиме разработки */}}
{{if devOn}}{{/* подсказки по сценариям робота НРД — только в режиме разработки */}}
<div style="padding:10px 14px;background:var(--accent-weak,#e7f0fb);border-radius:10px;margin:6px 0 14px">
<label style="font-size:13px;font-weight:600">Сценарий тестирования:
<select id="m2m-scen" style="margin-left:8px;padding:5px 8px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text)">
@@ -142,7 +142,7 @@
</table>
<p class="muted" style="font-size:12.5px;margin:10px 0 0">Пакет принимается только целиком: при отказе по одной бумаге отказ ставится всем бумагам с тем же кодом (так и будет отправлено).</p>
<div style="display:flex;gap:8px;margin-top:14px;flex-wrap:wrap">
<button type="submit" class="btn btn-ok">Отправить решение{{if .DevMode}} роботу{{end}}</button>
<button type="submit" class="btn btn-ok">Отправить решение{{if devOn}} роботу{{end}}</button>
<button type="button" class="btn" onclick="m2mSetAll('confirm')">Принять все</button>
<button type="button" class="btn" onclick="m2mSetAll('reject')">Отказать все</button>
</div>
@@ -356,7 +356,7 @@
{{/* ===== QUIK МНП: зачисление клиенту ===== */}}
{{$back := printf "/admin/incoming/%s" .It.ID}}
{{if .DevMode}}{{/* прогон копии в DEPO — служебный инструмент режима разработки */}}
{{if devOn}}{{/* прогон копии в DEPO — служебный инструмент режима разработки */}}
<div class="card">
<h2 style="margin:0">Тестовый прогон в DEPO с реальным клиентом</h2>
<p class="muted" style="font-size:12.5px;margin:6px 0 8px">Копия этого входящего (те же бумаги и решения) записывается в трансферные таблицы DEPO под новым GUID на реального клиента из картотеки — по паспорту. Джоба bj2depo создаёт по нему документ; в НРД ничего не уходит. Полный сценарий приёма: получен → приняли → подали 16/1 → НРД принял → исполнено.</p>