mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
2 lines
2.7 KiB
JavaScript
Executable File
2 lines
2.7 KiB
JavaScript
Executable File
!function(a){jQuery.event.props.push("dataTransfer");var b={url:"",paramname:"content",maxfilesize:2048,dragover:function(){},dragleave:function(){},announce:function(){},initialize:function(){},progress:function(){},success:function(){},error:function(a,b,c){alert(c)},complete:function(){},error_filesize:"File exceeds 2GB. Please use an FTP client.",error_default:"Please make sure the file is available.",error_server:"Upload request failed.",error_login:"Uploads require you to log in.",error_missing:"No upload content available."},c={},d={},e=0,f=0,g=!1,h=!1,i=null,j=null;a.fn.uploadbox=function(k){function l(a){return a.dataTransfer?(p(a.dataTransfer.files),a.preventDefault(),!1):void 0}function m(a){a.preventDefault(),c.dragover.call(a)}function n(a){a.stopPropagation(),c.dragleave.call(a)}function o(a){a.lengthComputable&&c.progress(this.index,this.file,Math.round(100*a.loaded/a.total))}function p(a){if(!g){for(var b=e,h=0;h<a.length;h++){var i=String(e++);d[i]=a[h],c.announce(i,d[i],""),f++}return b}}function q(a){d[a]&&(delete d[a],f--)}function r(){if(0==f||h)return h=!1,g=!1,void c.complete();g=!0;var a=-1;for(var b in d){a=b;break}var e=d[a];q(a);var i=e.size,j=(e.mode,1048576*c.maxfilesize);if(j>i||"ftp"==e.mode){var k=c.initialize(a,e);k?s(a,e,k):u(a,e,c.error_missing)}else u(a,e,c.error_filesize)}function s(a,b,d){var e=new FormData;for(var f in d)e.append(f,d[f]);b.size>0&&c.paramname&&e.append(c.paramname,b,b.name),j=new XMLHttpRequest,j.open("POST",c.url,!0),j.setRequestHeader("Accept","application/json"),j.setRequestHeader("Cache-Control","no-cache"),j.setRequestHeader("X-Requested-With","XMLHttpRequest"),j.onreadystatechange=function(){if(j.readyState==j.DONE){var d=null;if(j.responseText)try{d=jQuery.parseJSON(j.responseText)}catch(e){d=j.responseText}if(j.status<200||j.status>299){var f=j.statusText;403==j.status?f=c.error_login:0==j.status?f=c.error_server:f||(f=c.error_default),u(a,b,f+" ("+j.status+")")}else t(a,b,d)}},j.upload.index=a,j.upload.file=b,j.upload.addEventListener("progress",o,!1),j.send(e)}function t(a,b,d){c.success(a,b,d),r()}function u(a,b,d){c.error(a,b,d),r()}function v(){a("#uploadbox_input").trigger("click")}function w(a){for(a in d)q(a)}function x(){g||(g=!0,r())}function y(){h=!0}function z(b){return c=a.extend({},c,b)}function A(){return window.File&&window.FormData&&window.XMLHttpRequest&&window.FileList}return c=a.extend({},b,k),i=this,i.append('<input id="uploadbox_input" type="file" style="display: none" multiple>'),i.on("drop",l),i.on("dragover",m),i.on("dragleave",n),a("#uploadbox_input").change(function(b){p(b.target.files),a(this).val("")}),{select:v,add:p,remove:q,start:x,stop:y,reset:w,configure:z,compatible:A}}}(jQuery);
|
|
//# sourceMappingURL=../../maps/utils/uploadbox.js.map
|