Add alert for browsers that don't support named disk downloads

This commit is contained in:
Jeff Parsons 2016-02-18 09:06:41 -08:00
commit 24d1544192
6 changed files with 31 additions and 25 deletions

View file

@ -1020,9 +1020,9 @@ b+" changes applied)";b=-1;break}if(this.cf){c="unable to modify write-protected
h.toJSON=function(){var a=JSON.stringify(this.A,function(a,c){return"file"==a?void 0:c}),a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,""),a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:"),a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,""),a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function Mo(a){Ya.call(this,"FDC",a,Mo,524288);this.dmaRead=this.xk;this.dmaWrite=this.yk;this.dmaFormat=this.Nk;this.W=a.autoMount||null;this.C=[];this.qa=!Ka("Mobi")&&window&&"FileReader"in window}hb(Mo);aa={};var No={3:{Qd:3,fe:0,name:aa.Yn},4:{Qd:2,fe:1,name:aa.Wn},5:{Qd:9,fe:7,name:aa.ho},6:{Qd:9,fe:7,name:aa.Rn},7:{Qd:2,fe:0,name:aa.Tn},8:{Qd:1,fe:2,name:aa.Xn},10:{Qd:2,fe:7,name:aa.Sn},13:{Qd:6,fe:7,name:aa.En},15:{Qd:3,fe:0,name:aa.Vn}};h=Mo.prototype;
h.Ub=function(a,b,c){var d=this;switch(b){case "listDisks":return this.xa[b]=c,c.onchange=function(){var a=d.xa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){Ca("FDC option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.xa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Oo(d,a)},!0;
case "loadDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDisks;a&&Po(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDrives;if(a&&a.options&&d.A)if(a=ca(a.value,10),a=d.A[a])if(a.Da){for(var b=a.Da,c="",k=0,q;q=wo(b,k++);)for(var r=0,x=q.length;r<x;r++)c+=String.fromCharCode(xo(b,q,r,1));b="data:application/octet-stream;base64,"+btoa(c);c=document.createElement("a");"string"==typeof c.download?(c.href=b,c.download=
a.Da.ni.replace(".json",".img"),document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(b)}else d.Ua("No disk loaded in drive");else d.Ua("No drive selected")},!0;case "mountDrive":return this.qa?(this.xa[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Po(d,ja(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.ia=a;this.R=Kb(a,"ChipSet");if((this.W=Qo(this.ia,"autoMount")||this.W)&&"string"==typeof this.W)try{this.W=eval("("+this.W+")")}catch(e){Ca("FDC auto-mount error: "+e.message+" ("+this.W+")"),this.W=null}Ro(this);oc(b,this,So);sc(b,this,To);this.qa&&Uo(this,"Local Disk","?");Uo(this,"Remote Disk","??");Vo(this)||yb(this)};
case "loadDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDisks;a&&Po(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDrives;if(a&&a.options&&d.A)if(a=ca(a.value,10),a=d.A[a])if(a.Da){for(var b=a.Da,c="",k=0,q;q=wo(b,k++);)for(var r=0,x=q.length;r<x;r++)c+=String.fromCharCode(xo(b,q,r,1));b="data:application/octet-stream;base64,"+btoa(c);c=document.createElement("a");a=a.Da.ni.replace(".json",".img");"string"==
typeof c.download?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c)):(window.open(b),Ca('The disk is being downloaded, but you will need to manually rename it to "'+a+'".'))}else d.Ua("No disk loaded in drive");else d.Ua("No drive selected")},!0;case "mountDrive":return this.qa?(this.xa[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=
a.name;Po(d,ja(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.ia=a;this.R=Kb(a,"ChipSet");if((this.W=Qo(this.ia,"autoMount")||this.W)&&"string"==typeof this.W)try{this.W=eval("("+this.W+")")}catch(e){Ca("FDC auto-mount error: "+e.message+" ("+this.W+")"),this.W=null}Ro(this);oc(b,this,So);sc(b,this,To);this.qa&&Uo(this,"Local Disk","?");Uo(this,"Remote Disk","??");Vo(this)||yb(this)};
h.lc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ia.eh){this.C=[];for(var c=0;c<this.A.length;c++)Wo(this,c,!0);Vo(this,!0)}}else if(!this.restore(a))return!1;if(c=this.xa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.la;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.la&&(c.value="0",Oo(this,0))}}return!0};h.kc=function(a){return a?this.save():!0};
h.reset=function(){Ro(this)};
h.save=function(){var a=new ef(this),b=0,c=[];c[b++]=this.kb;c[b++]=0;c[b++]=this.sa;c[b++]=this.Y;c[b++]=this.P;c[b++]=this.O;c[b++]=this.da;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var k=e++,q=this.A[g],r=0,x=[];x[r++]=q.Hb;x[r++]=[q.name,q.Gb,q.yb,q.ob,q.$a,q.$e,q.yg,q.Kf,q.Lf];x[r++]=q.mb;x[r++]=q.de+100;x[r++]=q.Wb;x[r++]=q.Cb;x[r++]=q.ee;x[r++]=q.Nb;x[r++]=q.jb;x[r++]=q.Ye;x[r++]=q.ik;x[r]=q.Je;f[k]=x}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.Da&&Xo(this,f.Je,f.Da);c[d]=