Админка: стек документов сайт/бот — высоты сегментов в px (фикс белого зазора)

Вложенные проценты во flex-стеке не резолвились → между синим (сайт) и фиолетовым
(бот) появлялся прозрачный зазор (белый фон карточки). Теперь высоты сегментов
считаются в пикселях от высоты графика (78px), сегменты стыкуются вплотную.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
berkio_admin_gitea
2026-07-08 06:47:22 +00:00
parent ed881e19a6
commit 1bc90ce9f5

View File

@@ -3232,16 +3232,18 @@ _ADMIN_HTML = """<!doctype html>
document.getElementById('vis-total').textContent = '· всего ' + (d.visits.total||0).toLocaleString('ru-RU') +
' (уник. ' + (d.visits.unique_total||0).toLocaleString('ru-RU') + ')';
// 2) Документы — стек сайт (низ, синий) + бот (верх, фиолетовый)
// 2) Документы — стек сайт (низ, синий) + бот (верх, фиолетовый).
// Высоты сегментов В ПИКСЕЛЯХ (высота графика = 78px, см. .bars) — иначе
// вложенные проценты во flex не резолвятся и между сегментами появляется зазор.
var mD = barMax(function(x){return (x.files_site||0)+(x.files_bot||0);});
var CH = 78;
var totSite=0, totBot=0;
document.getElementById('bars-docs').innerHTML = dl.length ? dl.map(function(x){
var si=x.files_site||0, bo=x.files_bot||0, tot=si+bo; totSite+=si; totBot+=bo;
var h=Math.round(tot/mD*100);
var both = si>0 && bo>0, segs='';
if(bo>0) segs += '<div class="seg'+(both?' top':'')+'" style="height:'+Math.round(bo/tot*100)+'%;background:#5856d6"></div>';
if(si>0) segs += '<div class="seg" style="height:'+Math.round(si/tot*100)+'%;background:#007AFF"></div>';
return '<div class="b stack" style="height:'+(tot?h:0)+'%" title="'+x.day+': '+tot+' документов (сайт '+si+', бот '+bo+')"><b>'+(tot||'')+'</b>'+segs+'<span>'+dd(x)+'</span></div>';
var segs='';
if(bo>0) segs += '<div class="seg'+(si>0?' top':'')+'" style="height:'+Math.max(2,Math.round(bo/mD*CH))+'px;background:#5856d6"></div>';
if(si>0) segs += '<div class="seg" style="height:'+Math.max(2,Math.round(si/mD*CH))+'px;background:#007AFF"></div>';
return '<div class="b stack" title="'+x.day+': '+tot+' документов (сайт '+si+', бот '+bo+')"><b>'+(tot||'')+'</b>'+segs+'<span>'+dd(x)+'</span></div>';
}).join('') : emptyBars;
document.getElementById('docs-cap').textContent = '· сайт ' + totSite + ' / бот ' + totBot + ' за 14 дн.';