fix: Open button, backup/restore preserves files, openFile in new tab

This commit is contained in:
Dauren777 2026-06-11 10:14:13 +00:00
parent 8e6b578878
commit 6767494d2e

View File

@ -1259,7 +1259,7 @@ function openEv(id,subIdx){
if(fa.length)h+="<div style='font-size:11px;color:#64748B;margin-top:4px'><strong>"+esc(brs[bi])+":</strong></div>";
for(var fi=0;fi<fa.length;fi++){
var f=fa[fi];
h+="<div class='file-item'><span class='fn'>"+esc(f.n)+"</span><span class='fs'>("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")</span><a onclick='dlFile("+e.id+","+fi+","+bi+")'>Скачать</a><a style='color:#EF4444;margin-left:4px' onclick='delFile("+e.id+","+fi+","+bi+")'>Удалить</a></div>"
h+="<div class='file-item'><span class='fn'>"+esc(f.n)+"</span><span class='fs'>("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")</span><a onclick='openFile("+e.id+","+fi+","+bi+")'>Открыть</a> <a onclick='dlFile("+e.id+","+fi+","+bi+")'>Скачать</a><a style='color:#EF4444;margin-left:4px' onclick='delFile("+e.id+","+fi+","+bi+")'>Удалить</a></div>"
}
}catch(ex){}
}
@ -1272,7 +1272,7 @@ function openEv(id,subIdx){
var fa=JSON.parse(fd);
for(var fi=0;fi<fa.length;fi++){
var f=fa[fi];
h+="<div class='file-item'><span class='fn'>"+esc(f.n)+"</span><span class='fs'>("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")</span><a onclick='dlFile("+e.id+","+fi+","+(cu?cu.bg:0)+")'>Скачать</a><a style='color:#EF4444;margin-left:4px' onclick='delFile("+e.id+","+fi+","+(cu?cu.bg:0)+")'>Удалить</a></div>"
h+="<div class='file-item'><span class='fn'>"+esc(f.n)+"</span><span class='fs'>("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+")</span><a onclick='openFile("+e.id+","+fi+","+(cu?cu.bg:0)+")'>Открыть</a> <a onclick='dlFile("+e.id+","+fi+","+(cu?cu.bg:0)+")'>Скачать</a><a style='color:#EF4444;margin-left:4px' onclick='delFile("+e.id+","+fi+","+(cu?cu.bg:0)+")'>Удалить</a></div>"
}
}catch(ex){}
}
@ -1358,6 +1358,13 @@ function upFile(id){
};
fr.readAsDataURL(f)
}
function openFile(id,idx,br){
var inm=document.getElementById("evm_"+id);
var mk=inm?"_m"+inm.value:"";var bk="_b"+(br!==undefined?br:(cu?cu.bg:0));
var key="sf_"+id+mk+(curSub!==null?"_s"+curSub:"")+bk;
var ex=localStorage.getItem(key);if(!ex)return;
try{var arr=JSON.parse(ex);var f=arr[idx];if(f&&f.data){var w=window.open("","_blank");w.document.write("<iframe src='"+f.data+"' style='width:100%;height:100%;border:none'></iframe>")}}catch(e){}
}
function dlFile(id,idx,br){
var inm=document.getElementById("evm_"+id);
var monthKey=inm?"_m"+inm.value:"";
@ -1396,11 +1403,11 @@ function delFile(id,idx,br){
function saveBackup(){
saveEv();
var blob=new Blob([JSON.stringify(evs,null,2)],{type:"application/json"});
var a=document.createElement("a");
a.href=URL.createObjectURL(blob);
a.download="backup_"+new Date().toISOString().slice(0,10)+".json";
a.click()
var backup={events:evs.map(function(e){return{id:e.id,s:e.s,p:e.p,done:e.done,h:e.h,q:e.q,n:e.n}}),files:{}};
var fkeys=[];for(var k in localStorage){if(localStorage.hasOwnProperty(k)&&k.indexOf("sf_")===0)fkeys.push(k)}
for(var i=0;i<fkeys.length;i++){backup.files[fkeys[i]]=localStorage.getItem(fkeys[i])}
var blob=new Blob([JSON.stringify(backup,null,2)],{type:"application/json"});
var a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="backup_"+new Date().toISOString().slice(0,10)+".json";a.click()
}
function loadBackup(inp){
if(!inp.files||!inp.files[0])return;
@ -1408,15 +1415,13 @@ function loadBackup(inp){
fr.onload=function(){
try{
var d=JSON.parse(fr.result);
if(!d||!d.length){alert("\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442");return}
var out=[];
for(var i=0;i<d.length;i++){
out.push({id:d[i].id,s:d[i].s||"warn",p:d[i].p||0,done:d[i].done||"\u2014",h:d[i].h||[]})
}
if(!d||!d.events){alert("\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442");return}
var out=[];for(var i=0;i<d.events.length;i++){out.push({id:d.events[i].id,s:d.events[i].s||"warn",p:d.events[i].p||0,done:d.events[i].done||"\u2014",h:d.events[i].h||[],q:d.events[i].q||0,n:d.events[i].n||""})}
localStorage.setItem("se5",JSON.stringify(out));
loadEv();
renderEv();
alert("\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E "+out.length+" \u0437\u0430\u043F\u0438\u0441\u0435\u0439")
if(d.files){var fk=Object.keys(d.files);for(var i=0;i<fk.length;i++){try{localStorage.setItem(fk[i],d.files[fk[i]])}catch(e){}}}
loadEv();renderEv();
var fc=d.files?Object.keys(d.files).length:0;
alert("\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E "+out.length+" \u0437\u0430\u043F\u0438\u0441\u0435\u0439, "+fc+" \u0444\u0430\u0439\u043B\u043E\u0432")
}catch(e){alert("\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438")}
};
fr.readAsText(inp.files[0])
@ -1995,6 +2000,6 @@ function dlAnalyticsWord(){
var a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="analytics.doc";a.click()
}
</script></script></script></script>
</script></script></script></script></script>
</body>
</html>