Админка: стек документов сайт/бот — высоты сегментов в px (фикс белого зазора)
Вложенные проценты во flex-стеке не резолвились → между синим (сайт) и фиолетовым (бот) появлялся прозрачный зазор (белый фон карточки). Теперь высоты сегментов считаются в пикселях от высоты графика (78px), сегменты стыкуются вплотную. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
14
app/main.py
14
app/main.py
@@ -3232,16 +3232,18 @@ _ADMIN_HTML = """<!doctype html>
|
|||||||
document.getElementById('vis-total').textContent = '· всего ' + (d.visits.total||0).toLocaleString('ru-RU') +
|
document.getElementById('vis-total').textContent = '· всего ' + (d.visits.total||0).toLocaleString('ru-RU') +
|
||||||
' (уник. ' + (d.visits.unique_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 mD = barMax(function(x){return (x.files_site||0)+(x.files_bot||0);});
|
||||||
|
var CH = 78;
|
||||||
var totSite=0, totBot=0;
|
var totSite=0, totBot=0;
|
||||||
document.getElementById('bars-docs').innerHTML = dl.length ? dl.map(function(x){
|
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 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 segs='';
|
||||||
var both = si>0 && bo>0, 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(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.max(2,Math.round(si/mD*CH))+'px;background:#007AFF"></div>';
|
||||||
if(si>0) segs += '<div class="seg" style="height:'+Math.round(si/tot*100)+'%;background:#007AFF"></div>';
|
return '<div class="b stack" title="'+x.day+': '+tot+' документов (сайт '+si+', бот '+bo+')"><b>'+(tot||'')+'</b>'+segs+'<span>'+dd(x)+'</span></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>';
|
|
||||||
}).join('') : emptyBars;
|
}).join('') : emptyBars;
|
||||||
document.getElementById('docs-cap').textContent = '· сайт ' + totSite + ' / бот ' + totBot + ' за 14 дн.';
|
document.getElementById('docs-cap').textContent = '· сайт ' + totSite + ' / бот ' + totBot + ' за 14 дн.';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user