- условие самообновления — доменный предикат store.State.IsObservable() вместо фазы catched; один поллер на поверхность, интервалы 5 с и 15 с - отказ тика отвечает 200 и самозавершающимся фрагментом с корневым id цели вместо 404/500, который htmx не свопит - заведён ADR-2026-08-10-observability-is-not-terminality, переписан раздел «Живой поллинг» в конвенции веб-UI
11 lines
854 B
HTML
11 lines
854 B
HTML
{{define "seeding"}}{{if .Has}}<div class="section" id="seeding-{{.ID}}">
|
|
<div class="section-head"><h2>Раздача</h2><span class="hint">qBittorrent · источник продолжает раздаваться</span></div>
|
|
<div class="stat-row">
|
|
<div class="stat"><div class="v good">{{.Percent}}%</div><div class="k">скачано</div></div>
|
|
<div class="stat"><div class="v mono">{{.Ratio}}</div><div class="k">рейтинг</div></div>
|
|
<div class="stat"><div class="v mono">{{.Uploaded}}</div><div class="k">отдано</div></div>
|
|
<div class="stat"><div class="v mono">{{.Seeds}} / {{.Peers}}</div><div class="k">сиды / пиры</div></div>
|
|
<div class="stat"><div class="v mono">↑ {{.UpSpeed}}</div><div class="k">сейчас</div></div>
|
|
</div>
|
|
</div>{{else}}<div id="seeding-{{.ID}}"></div>{{end}}{{end}}
|