diff --git a/index.html b/index.html index 8058314..2d4a8d7 100644 --- a/index.html +++ b/index.html @@ -105,7 +105,7 @@ td{border-bottom:1px solid var(--gray-200)}tr:hover td{background:var(--cyan-50)
АО «Казахтелеком» — мониторинг производственной безопасности
-curator@telecom.kz (куратор) / admin@telecom.kz / north@telecom.kz (Север) / almaty@telecom.kz (Алматы) — пароль любой
+curator@telecom.kz (куратор, всё) / dpp@telecom.kz (ДПБ, ваш филиал) / пароль любой
Неверная почта или пароль
@@ -160,6 +160,7 @@ function pct(p){var c=p>=80?"var(--green)":p>=40?"var(--amber)":"var(--red)";ret var users={ "curator@telecom.kz":{name:"Куратор Плана",branch:0,role:"curator",region:-1}, + "dpp@telecom.kz":{name:"Директор ДПБ (Вы)",branch:0,role:"branch",region:0}, "admin@telecom.kz":{name:"Администратор",branch:0,role:"admin",region:-1}, "ahmetov@telecom.kz":{name:"Ахметов К.Т.",branch:6,role:"branch",region:4}, "serikov@telecom.kz":{name:"Сериков А.М.",branch:1,role:"branch",region:3}, @@ -295,11 +296,11 @@ function renderDashboard(){ function downloadReport(){ var from=parseInt(document.getElementById("rptFrom").value),to=parseInt(document.getElementById("rptTo").value); - var my=getMy(),csv="№;Мероприятие;Подпункт;Раздел;Дивизион;Статус;Прогресс;Срок;Факт;Отчёт (текст);Файлы\n"; + var my=getMy(),csv="№;Регион;Филиал;Мероприятие;Подпункт;Раздел;Статус;Прогресс;Срок;Факт;Отчёт (текст);Файлы\n"; my.forEach(function(e){ function addRow(subLabel,subIdx){var rep="",fls="",d=getMD(e.id,subIdx); for(var i=from;i<=to;i++){var m=months[i];if(d[m]){if(d[m].report)rep+=M(i)+": "+d[m].report.replace(/"/g,'""')+"; ";if(d[m].files&&d[m].files.length)fls+=M(i)+": "+d[m].files.map(function(f){return f.name}).join(", ")+"; "}} - csv+=e.id+';"'+e.t.replace(/"/g,'""')+'";'+(subLabel||"общее")+';'+sections[e.sec]+';'+branches[e.b]+';'+statusMap[e.s]+';'+e.p+'%;'+e.due+';'+(e.done||"—")+';"'+rep+'";"'+fls+'"\n';} + csv+=e.id+';'+regions[branchRegion[e.b]]+';'+branches[e.b]+';"'+e.t.replace(/"/g,'""')+'";'+(subLabel||"общее")+';'+sections[e.sec]+';'+statusMap[e.s]+';'+e.p+'%;'+e.due+';'+(e.done||"—")+';"'+rep+'";"'+fls+'"\n';} addRow("",-1); if(e.sub) e.sub.forEach(function(s,i){ addRow(s.l,i); }); }); @@ -314,7 +315,7 @@ function downloadHTML(){ my.forEach(function(e){ var scls={done:"g",warn:"a",late:"r",wait:"w"}[e.s]; h+='| № | Мероприятие / Подпункты | Раздел | Срок | Прогресс | Статус |
|---|
| № | Мероприятие / Подпункты | Регион | Филиал | Раздел | Срок | Прогресс | Статус | ||
|---|---|---|---|---|---|---|---|---|---|
| '+e.id+' | '; - h+=''; + h+=' | '; if(hasSub) h+=''+(expandedEvents[e.id]?'▼':'▶')+''; - h+=''; + h+=''; if(hasSub) h+=' ('+subDone+'/'+subTotal+')'; h+=' | '; + h+=''+regions[branchRegion[e.b]]+' | '; + h+=''+branches[e.b]+' | '; h+=''+["I","II","III","IV","V"][e.sec]+' | '; h+=''+e.due+' | '+pct(e.p)+' | '+sb(e.s)+' | '; h+='