From 9fef0cb2f81715577c2da2a8b3bf5b6c8f3da47b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Wed, 14 Aug 2013 12:40:36 +0200 Subject: [PATCH] =?utf8?q?fileupload.js=20a=20=C3=A9t=C3=A9=20g=C3=A9n?= =?utf8?q?=C3=A9ricis=C3=A9=20et=20d=C3=A9plac=C3=A9=20dans=20Plinn.fileup?= =?utf8?q?load.js=20a=20=C3=A9t=C3=A9=20g=C3=A9n=C3=A9ricis=C3=A9=20et=20d?= =?utf8?q?=C3=A9plac=C3=A9=20dans=20Plinn.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/fileupload.js | 127 -------------------------------------------- 1 file changed, 127 deletions(-) delete mode 100644 skins/fileupload.js diff --git a/skins/fileupload.js b/skins/fileupload.js deleted file mode 100644 index bf36628..0000000 --- a/skins/fileupload.js +++ /dev/null @@ -1,127 +0,0 @@ -// © 2013 Benoît Pin MINES ParisTech -var DDFileUploaderBase; - -(function(){ - -DDFileUploaderBase = function(dropbox, uploadUrl) { - this.dropbox = dropbox; - this.uploadUrl = uploadUrl; - this.uploadQueue = []; - this._uploadQueueRunning = false; - var self = this; - addListener(dropbox, 'dragenter', function(evt){self.dragenter(evt);}); - addListener(dropbox, 'dragover', function(evt){self.dragover(evt);}); - addListener(dropbox, 'drop', function(evt){self.drop(evt);}); -}; - -// Drag and drop -DDFileUploaderBase.prototype.dragenter = function(evt) { - disableDefault(evt); - disablePropagation(evt); -}; - -DDFileUploaderBase.prototype.dragover = function(evt) { - disableDefault(evt); - disablePropagation(evt); - evt = getEventObject(evt); - var dt = evt.dataTransfer; - dt.dropEffect = 'copy'; -}; - -DDFileUploaderBase.prototype.drop = function(evt) { - disableDefault(evt); - disablePropagation(evt); - getEventObject(evt); - var dt = evt.dataTransfer; - dt.dropEffect = 'copy'; - this.handleFiles(dt.files); -}; - -// Methods about upload -DDFileUploaderBase.prototype.handleFiles = function(files) { - // To be implemented by descendant. -}; - - - -DDFileUploaderBase.prototype.beforeUpload = function(item) { - // To be implemented by decendant. -}; - - -DDFileUploaderBase.prototype.upload = function(item) { - // item.file must be the file to be uploaded - this.beforeUpload(item); - var reader = new FileReader(); - var req = new XMLHttpRequest(); - var file = item.file; - - var self = this; - - addListener(req.upload, 'progress', function(evt){self.progressHandler(evt);}); - addListener(req, 'readystatechange', - function(evt) { - if (req.readyState === 4) { - self.uploadCompleteHandler(req); - } - }); - - req.open("PUT", this.uploadUrl); - req.setRequestHeader("Content-Type", file.type); - req.setRequestHeader("X-File-Name", file.name); - addListener(reader, 'load', - function(evt){ - try { - req.sendAsBinary(evt.target.result); - } - catch(e){} - }); - reader.readAsBinaryString(file); -}; - - -DDFileUploaderBase.prototype.uploadCompleteHandlerCB = function(req) { - // To be implemented by descendant. -}; - -DDFileUploaderBase.prototype.uploadCompleteHandler = function(req) { - this.uploadCompleteHandlerCB(req); - this.uploadQueueLoadNext(); -}; - -DDFileUploaderBase.prototype.progressHandlerCB = function(progress) { - // To be implemented by descendant. - // 0 <= progress <= 1 -}; - -DDFileUploaderBase.prototype.progressHandler = function(evt) { - if (evt.lengthComputable) { - var progress = evt.loaded / evt.total; - this.progressHandlerCB(progress); - } -}; - -// Methods about queue -DDFileUploaderBase.prototype.uploadQueuePush = function(item) { - this.uploadQueue.push(item); - if (!this._uploadQueueRunning) { - this.startUploadQueue(); - } -}; - -DDFileUploaderBase.prototype.startUploadQueue = function() { - this._uploadQueueRunning = true; - this.uploadQueueLoadNext(); -}; - -DDFileUploaderBase.prototype.uploadQueueLoadNext = function() { - var item = this.uploadQueue.shift(); - if (item) { - this.upload(item); - } - else { - this._uploadQueueRunning = false; - } -}; - -}()); -- 2.20.1