diff --git a/app.html b/app.html index e6db40a..da1b9b6 100644 --- a/app.html +++ b/app.html @@ -210,7 +210,7 @@ function resetF(){ document.getElementById("pfiles").value="";document.getElementById("fn").textContent=""; } -function exportCSV(){var a=getA();if(a.length===0){alert("Нет данных");return}var all=allU(),h="Бланк №;Дата;Место;Наблюдатель;Должность;Филиал;Регион;Город;Статус;Нарушений",rs=a.map(function(x){var u=all[x.createdBy]||{};return(x.number||"")+";"+x.date+";"+x.location+";"+x.observer+";"+(x.observerRole||"")+";"+(u.branch||"")+";"+(u.region||"")+";"+(u.city||"")+";"+(x.overallSafe?"Безопасно":"Нарушения")+";"+(x.totalViolations||0)}),csv="\uFEFF"+h+"\n"+rs.join("\n"),bl=new Blob([csv],{type:"text/csv"}),ur=URL.createObjectURL(bl),dl=document.createElement("a");dl.href=ur;dl.download="pab.csv";dl.click();URL.revokeObjectURL(ur)} +function exportCSV(){var a=getA();if(a.length===0){alert("Нет данных");return}var all=allU(),h="Бланк №;Дата;Место;Область;Город;Наблюдатель;Должность;Филиал;Регион;Статус;Нарушений",rs=a.map(function(x){var u=all[x.createdBy]||{};return(x.number||"")+";"+x.date+";"+x.location+";"+(x.oblast||"")+";"+(x.city||"")+";"+x.observer+";"+(x.observerRole||"")+";"+(u.branch||"")+";"+(u.region||"")+";"+(x.overallSafe?"Безопасно":"Нарушения")+";"+(x.totalViolations||0)});var bom="\uFEFF",csv=bom+h+"\n"+rs.join("\n"),bl=new Blob([csv],{type:"text/csv;charset=utf-8"}),ur=URL.createObjectURL(bl),dl=document.createElement("a");dl.href=ur;dl.download="pab.csv";dl.click();URL.revokeObjectURL(ur);alert("CSV в кодировке UTF-8. Откройте в Excel: Данные → Из текста → выберите файл → UTF-8")} function editA(id){if(!isA()){alert("Только админ");return}alert("Редактирование: аудит #"+id)} function delA(id){if(!isA()){alert("Только админ");return}if(!confirm("Удалить?"))return;saveA(getA().filter(function(a){return a.id!==id}));rHS()} function delUser(login){if(!isA())return;if(!confirm("Удалить пользователя "+login+" и все его аудиты?"))return;var u=getU();delete u[login];saveU(u);var a=getA().filter(function(x){return x.createdBy!==login});saveA(a);fetch(SBU+"/rest/v1/users?login=eq."+encodeURIComponent(login),{method:"DELETE",headers:{"apikey":SBK,"Authorization":"Bearer "+SBK}}).catch(function(){});rMS();rHS();rDB()} @@ -218,12 +218,11 @@ function downloadFullCSV(){var a=getA();if(a.length===0){alert("Нет данн function showAllUsers(){if(!isA())return;var all=allU(),h="
| Логин | ФИО | Должность | Филиал | Регион | Город |
|---|---|---|---|---|---|
| "+k+(k==="admin"?" ⭐":"")+" | "+u.name+" | "+u.role+" | "+(u.branch||"—")+" | "+(u.region||"—")+" | "+(u.city||"—")+" |
Сформирован: "+new Date().toLocaleString("ru")+" | Всего аудитов: "+t+"
| № | Дата | Место | Наблюдатель | Статус | Нарушений |
|---|---|---|---|---|---|
| "+(x.number||"—")+" | "+x.date+" | "+x.location+" | "+x.observer+" | "+(x.overallSafe?"Безопасно":"Нарушения")+" | "+(x.totalViolations||0)+" |