From a8f0edf22418e87346d8561e5e5904dc262acbdd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Tue, 3 Dec 2013 23:30:31 +0100 Subject: [PATCH 1/1] =?utf8?q?D=C3=A9but=20d=E2=80=99impl=C3=A9mentation?= =?utf8?q?=20de=20l=E2=80=99upload=20par=20glisser=20/=20d=C3=A9poser=20da?= =?utf8?q?ns=20les=20dossiers=20Plinn.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/ajax_scripts/folder_contents_script.js | 62 ++++++++++++++++++++ skins/photo_theme/folder_contents_macros.pt | 7 ++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/skins/ajax_scripts/folder_contents_script.js b/skins/ajax_scripts/folder_contents_script.js index ece076d..dc31b4c 100644 --- a/skins/ajax_scripts/folder_contents_script.js +++ b/skins/ajax_scripts/folder_contents_script.js @@ -7,6 +7,7 @@ var FolderDDropControler; var DropTarget; var loadListing; +var DDFolderUploader; (function(){ @@ -240,4 +241,65 @@ loadListing = function(evt) { return false; } +DDFolderUploader = function(dropbox, uploadUrl, listing) { + DDFileUploaderBase.apply(this, [dropbox, uploadUrl]); + this.listing = listing; + var thead = listing; + do { + thead = thead.previousSibling; + } while (thead.tagName !== 'THEAD') + + var cells = thead.getElementsByTagName('th'); + var cell; + this.tableSpan = 0; + for (var i = 0 ; i < cells.length ; i++) { + cell = cells[i]; + this.tableSpan += cell.getAttribute('colspan') ? Number(cell.getAttribute('colspan')) : 1; + } + var lastRow = listing.lastChild; + while(lastRow && lastRow.tagName !== 'TR') { + lastRow = lastRow.previousSibling; + } + this.lastRowClassName = lastRow ? lastRow.className : 'even'; +}; + +copyPrototype(DDFolderUploader, DDFileUploaderBase); + + +DDFolderUploader.prototype.createRow = function(file) { + var row = document.createElement('tr'); + row.file = file; + row.className = this.lastRowClassName === 'even' ? 'odd' : 'even'; + this.lastRowClassName = row.className; + var td = document.createElement('td'); + td.setAttribute('colspan', this.tableSpan); + td.innerHTML = file.name; + row.appendChild(td); + this.listing.appendChild(row); + return row; +}; + +// Methods about upload +DDFolderUploader.prototype.handleFiles = function(files) { + var file, i, row; + for (i = 0; i < files.length; i++) { + file = files[i]; + row = this.createRow(file); + this.uploadQueuePush(row); + } +}; + +DDFolderUploader.prototype.beforeUpload = function(item) { + // To be implemented by decendant. +}; + +DDFolderUploader.prototype.uploadCompleteHandlerCB = function(req) { + // To be implemented by descendant. +}; + +DDFolderUploader.prototype.progressHandlerCB = function(progress) { + // To be implemented by descendant. + // 0 <= progress <= 1 +}; + }()); \ No newline at end of file diff --git a/skins/photo_theme/folder_contents_macros.pt b/skins/photo_theme/folder_contents_macros.pt index 00d2ee9..bd8e7f5 100644 --- a/skins/photo_theme/folder_contents_macros.pt +++ b/skins/photo_theme/folder_contents_macros.pt @@ -77,7 +77,7 @@ batch navigation -- 2.20.1