diff --git a/upload.min.js b/upload.min.js index 2df4f7a..848d89d 100644 --- a/upload.min.js +++ b/upload.min.js @@ -1,2 +1,2 @@ /*The MIT License (MIT) Copyright (c) 2016 Vivek Kumar https://github.com/vivekkr12/uploadjs/blob/master/LICENSE.md */ -"use strict";function Uploader(e){this.filesToBeUploaded=[],this.fileTable=document.getElementById(e.fileTableId),this.dropZone=document.getElementById(e.dropZoneId),this.addBtn=document.getElementById(e.addBtnId),this.removeBtn=document.getElementById(e.removeBtnId),this.uploadBtn=document.getElementById(e.uploadBtnId),this.removeAllBtn=document.getElementById(e.removeAllBtnId),this.serverUrl=e.serverUrl,this.wrapperForm=document.getElementById(e.wrapperFormId),this.setProgress=e.setProgress,this.getProgress=e.getProgress,this.getFileDetails=e.getFileDetails;var t=this,r=e.preAdd,i=e.postAdd,n=e.onDuplicateAdd,a=e.isValidFile,o=e.onCheckFail,s=e.preRemove,d=e.postRemove,l=e.preUpload,f=e.addPayload,p=e.postUpload,v=e.onSuccess,u=e.onError,c=e.preAddBtnAction,h=e.postAddBtnAction,m=e.preRemoveBtnAction,B=e.postRemoveBtnAction,g=e.preRemoveAllBtnAction,y=e.postRemoveAllBtnAction,E=e.preUploadBtnAction,T=e.postUploadBtnAction;this.chunkSize="undefined"!=typeof e.chunkSize?e.chunkSize:this.DEFAULT_CHUNK_SIZE;var A=function(e){c&&c();var s,d;for(d=0;d=0;r-=1)if(i=e[r],i.checked===!0){var a=i.parentElement.parentElement,o=a.rowIndex;n=t.filesToBeUploaded[o-1],s&&s(n),t.remove(o),d&&d(n)}B&&B()}),this.removeAllBtn.addEventListener("click",function(){g&&g();var e;for(e=t.filesToBeUploaded.length;e>0;e-=1)t.remove(e);y&&y()}),this.uploadBtn.addEventListener("click",function(){E&&E();var r,e=document.getElementsByClassName("fileRowCheckBox");if(1===e.length)r=t.filesToBeUploaded[0];else{var i,n;for(i=e.length-1;i>=0;i-=1)if(n=e[i],n.checked===!0){r=t.filesToBeUploaded[i];break}}if(r){l&&l(r);var a;f&&(a=f(r)),t.uploadFile(r,v,u,a),p&&p(r)}T&&T()})}File&&(File.prototype.equals=function(e){return this.name===e.name&&this.size===e.size&&this.type===e.type&&this.lastModified===e.lastModified}),Array.prototype.contains=function(e){if(this.indexOf(e)>-1)return!0;var t,r;for(r=0;r-1&&this.splice(t,1)},Array.prototype.removeByIndex=function(e){this.splice(e,1)},Uploader.prototype={constructor:Uploader,DEFAULT_CHUNK_SIZE:1048576,isSupported:function(){return File&&FileList&&FileReader&&Blob&&XMLHttpRequest},resetAddBtn:function(){this.wrapperForm.reset()},addFile:function(e){var t=this.getFileDetails(e),o=(e.name,e.type,e.size,e.lastModified,this.fileTable.insertRow());o.className="fileTableRow",o.insertCell().innerHTML="";var s;for(s in t)t.hasOwnProperty(s)&&(o.insertCell().innerHTML=t[s]);this.filesToBeUploaded.push(e)},remove:function(e){this.fileTable.deleteRow(e),this.filesToBeUploaded.removeByIndex(e-1)},uploadFile:function(e,t,r,i){var v,n=this,a=new XMLHttpRequest,o=0,s=this.chunkSize,d=o+s,l=e.size,f=e.size%s===0?parseInt(e.size/s,10):parseInt(e.size/s,10)+1,p=function(){a.open("POST",n.serverUrl,!0);var t=new FormData;if(t.append("name",e.name),t.append("blob",e.slice(o,d)),t.append("totalChunks",f),o=d,d=o+s,l-=s,0>=l){t.append("eof",!0);var r;for(r in i)i.hasOwnProperty(r)&&t.append(r,i[r])}else t.append("eof",!1);a.send(t)},u=100/f,c=0;a.upload.onprogress=function(e){n.setProgress&&e.lengthComputable&&(v=c+e.loaded/e.total*u,n.setProgress(v))},a.upload.onloadend=function(e){c=n.getProgress()},a.onreadystatechange=function(i){var a=i.target;a.readyState===XMLHttpRequest.DONE&&200===a.status?l>0?p(a):(n.setProgress&&n.setProgress(100),t(e,a.response)):a.readyState===XMLHttpRequest.DONE&&200!==a.status&&r(e,a.response,a.statusText)},p(a)}}; \ No newline at end of file +"use strict";function Uploader(e){if(this.filesToBeUploaded=[],this.fileTable=document.getElementById(e.fileTableId),this.dropZone=document.getElementById(e.dropZoneId),this.addBtn=document.getElementById(e.addBtnId),this.removeBtn=document.getElementById(e.removeBtnId),this.uploadBtn=document.getElementById(e.uploadBtnId),this.removeAllBtn=document.getElementById(e.removeAllBtnId),this.serverUrl=e.serverUrl,this.wrapperForm=document.getElementById(e.wrapperFormId),this.setProgress=e.setProgress,this.getProgress=e.getProgress,this.getFileDetails=e.getFileDetails,this.customDisplay="undefined"==typeof e.customDisplay?!1:e.customDisplay,this.customDisplay){if("undefined"==typeof e.displayAddedFile||"undefined"==typeof e.removeFileFromDisplay)throw"For custom display, two methods displayAddedFile and removeFileFromDisplay must be implemented";this.displayAddedFile=e.displayAddedFile,this.getSelectedFile=e.getSelectedFile,this.removeFileFromDisplay=e.removeFileFromDisplay}var t=this,i=e.preAdd,s=e.postAdd,o=e.onDuplicateAdd,r=e.isValidFile,a=e.onCheckFail,n=e.preRemove,l=e.postRemove,d=e.preUpload,f=e.addPayload,p=e.postUpload,u=e.onSuccess,v=e.onError,c=e.preAddBtnAction,h=e.postAddBtnAction,m=e.preRemoveBtnAction,y=e.postRemoveBtnAction,B=e.preRemoveAllBtnAction,g=e.postRemoveAllBtnAction,F=e.preUploadBtnAction,T=e.postUploadBtnAction;this.chunkSize="undefined"!=typeof e.chunkSize?e.chunkSize:this.DEFAULT_CHUNK_SIZE;var A=function(e){c&&c();var n,l;for(l=0;l=0;s-=1)if(o=i[s],o.checked===!0){var r=o.parentElement.parentElement,a=r.rowIndex;e=t.filesToBeUploaded[a-1],n&&n(e),t.remove(e),l&&l(e)}}y&&y()}),this.removeAllBtn.addEventListener("click",function(){B&&B();var e,i;for(i=t.filesToBeUploaded.length;i>0;i-=1)e=t.filesToBeUploaded[i-1],t.remove(e);g&&g()}),this.uploadBtn.addEventListener("click",function(){F&&F();var e;if(t.customDisplay)e=t.getSelectedFile();else{var i=document.getElementsByClassName("fileRowCheckBox");if(1===i.length)e=t.filesToBeUploaded[0];else{var s,o;for(s=i.length-1;s>=0;s-=1)if(o=i[s],o.checked===!0){e=t.filesToBeUploaded[s];break}}}if(e){d&&d(e);var r;f&&(r=f(e)),t.uploadFile(e,u,v,r),p&&p(e)}T&&T()})}File&&(File.prototype.equals=function(e){return this.name===e.name&&this.size===e.size&&this.type===e.type&&this.lastModified===e.lastModified}),Array.prototype.contains=function(e){if(this.indexOf(e)>-1)return!0;var t,i;for(i=0;i-1&&this.splice(t,1)},Array.prototype.removeByIndex=function(e){this.splice(e,1)},Uploader.isSupported=function(){return File&&FileList&&FileReader&&Blob&&XMLHttpRequest},Uploader.prototype={constructor:Uploader,DEFAULT_CHUNK_SIZE:1048576,resetAddBtn:function(){this.wrapperForm.reset()},addFile:function(e){if(this.customDisplay)this.displayAddedFile(e);else{var t;this.getFileDetails?t=this.getFileDetails(e):(t.fileName=e.name,t.fileType=e.type,t.fileSize=e.size,t.fileLastModified=e.lastModified);var i=this.fileTable.insertRow();i.className="fileTableRow",i.insertCell().innerHTML="";var s;for(s in t)t.hasOwnProperty(s)&&(i.insertCell().innerHTML=t[s])}this.filesToBeUploaded.push(e)},remove:function(e){if(this.customDisplay)this.removeFileFromDisplay(e),this.filesToBeUploaded.removeByElement(e);else{var t=this.filesToBeUploaded.indexOf(e)+1;this.fileTable.deleteRow(t),this.filesToBeUploaded.removeByIndex(t-1)}},uploadFile:function(e,t,i,s){var u,o=this,r=new XMLHttpRequest,a=0,n=this.chunkSize,l=a+n,d=e.size,f=e.size%n===0?parseInt(e.size/n,10):parseInt(e.size/n,10)+1,p=function(){r.open("POST",o.serverUrl,!0);var t=new FormData;if(t.append("name",e.name),t.append("blob",e.slice(a,l)),t.append("totalChunks",f),a=l,l=a+n,d-=n,0>=d){t.append("eof",!0);var i;for(i in s)s.hasOwnProperty(i)&&t.append(i,s[i])}else t.append("eof",!1);r.send(t)},v=100/f,c=0;r.upload.onprogress=function(e){o.setProgress&&e.lengthComputable&&(u=c+e.loaded/e.total*v,o.setProgress(u))},r.upload.onloadend=function(e){c=o.getProgress()},r.onreadystatechange=function(s){var r=s.target;r.readyState===XMLHttpRequest.DONE&&200===r.status?d>0?p(r):(o.setProgress&&o.setProgress(100),t(e,r.response)):r.readyState===XMLHttpRequest.DONE&&200!==r.status&&i(e,r.response,r.statusText)},p(r)}}; \ No newline at end of file