fix: Open button, backup/restore preserves files, openFile in new tab
This commit is contained in:
parent
8e6b578878
commit
6767494d2e
37
index.html
37
index.html
@ -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>";
|
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++){
|
for(var fi=0;fi<fa.length;fi++){
|
||||||
var f=fa[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){}
|
}catch(ex){}
|
||||||
}
|
}
|
||||||
@ -1272,7 +1272,7 @@ function openEv(id,subIdx){
|
|||||||
var fa=JSON.parse(fd);
|
var fa=JSON.parse(fd);
|
||||||
for(var fi=0;fi<fa.length;fi++){
|
for(var fi=0;fi<fa.length;fi++){
|
||||||
var f=fa[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){}
|
}catch(ex){}
|
||||||
}
|
}
|
||||||
@ -1358,6 +1358,13 @@ function upFile(id){
|
|||||||
};
|
};
|
||||||
fr.readAsDataURL(f)
|
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){
|
function dlFile(id,idx,br){
|
||||||
var inm=document.getElementById("evm_"+id);
|
var inm=document.getElementById("evm_"+id);
|
||||||
var monthKey=inm?"_m"+inm.value:"";
|
var monthKey=inm?"_m"+inm.value:"";
|
||||||
@ -1396,11 +1403,11 @@ function delFile(id,idx,br){
|
|||||||
|
|
||||||
function saveBackup(){
|
function saveBackup(){
|
||||||
saveEv();
|
saveEv();
|
||||||
var blob=new Blob([JSON.stringify(evs,null,2)],{type:"application/json"});
|
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 a=document.createElement("a");
|
var fkeys=[];for(var k in localStorage){if(localStorage.hasOwnProperty(k)&&k.indexOf("sf_")===0)fkeys.push(k)}
|
||||||
a.href=URL.createObjectURL(blob);
|
for(var i=0;i<fkeys.length;i++){backup.files[fkeys[i]]=localStorage.getItem(fkeys[i])}
|
||||||
a.download="backup_"+new Date().toISOString().slice(0,10)+".json";
|
var blob=new Blob([JSON.stringify(backup,null,2)],{type:"application/json"});
|
||||||
a.click()
|
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){
|
function loadBackup(inp){
|
||||||
if(!inp.files||!inp.files[0])return;
|
if(!inp.files||!inp.files[0])return;
|
||||||
@ -1408,15 +1415,13 @@ function loadBackup(inp){
|
|||||||
fr.onload=function(){
|
fr.onload=function(){
|
||||||
try{
|
try{
|
||||||
var d=JSON.parse(fr.result);
|
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}
|
if(!d||!d.events){alert("\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442");return}
|
||||||
var out=[];
|
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||""})}
|
||||||
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||[]})
|
|
||||||
}
|
|
||||||
localStorage.setItem("se5",JSON.stringify(out));
|
localStorage.setItem("se5",JSON.stringify(out));
|
||||||
loadEv();
|
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){}}}
|
||||||
renderEv();
|
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")
|
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")}
|
}catch(e){alert("\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438")}
|
||||||
};
|
};
|
||||||
fr.readAsText(inp.files[0])
|
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()
|
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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user