diff --git a/index.html b/index.html index 2d4a8d7..a7dfa4a 100644 --- a/index.html +++ b/index.html @@ -282,11 +282,12 @@ function renderDashboard(){ h+=''; h+=''; - // Regional breakdown (for curator/admin) + // Branch detail for curator if(curUser.role==="curator"||curUser.role==="admin"){ - h+='

🌍 Исполнение по регионам

'; - regions.forEach(function(r,ri){var items=events.filter(function(e){return branchRegion[e.b]===ri}),d=items.filter(function(e){return e.s==="done"}).length; - h+=''; + h+='

📋 Сводка по филиалам — что загружено

РегионВсегоИсполнено%
'+r+''+items.length+''+d+''+pct(items.length?Math.round(d/items.length*100):0)+'
'; + branches.forEach(function(b,bi){var items=events.filter(function(e){return e.b===bi}),withRpt=0,totalFiles=0; + items.forEach(function(e){var d=getMD(e.id,-1);var has=false;for(var k in d){if(d.hasOwnProperty(k)&&d[k]&&(d[k].report||(d[k].files&&d[k].files.length))){has=true;totalFiles+=(d[k].files||[]).length}}if(e.sub)e.sub.forEach(function(s,si){var sd=getMD(e.id,si);for(var sk in sd){if(sd.hasOwnProperty(sk)&&sd[sk]&&(sd[sk].report||(sd[sk].files&&sd[sk].files.length))){has=true;totalFiles+=(sd[sk].files||[]).length}}});if(has)withRpt++}); + h+=''; }); h+='
ФилиалРегионМеропр.С отчётамиФайловПрогресс
'+b+''+regions[branchRegion[bi]]+''+items.length+''+(withRpt?withRpt+' ✅':'—')+''+(totalFiles||'—')+''+pct(items.length?Math.round(withRpt/items.length*100):0)+'
'; }