From 0cfb875cbacb607734f1a3c25fffcbe028c33fed Mon Sep 17 00:00:00 2001
From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr>
Date: Fri, 21 Jun 2013 18:41:53 +0200
Subject: [PATCH] Upload avec script adhoc.

---
 skins/fileupload.js          |  3 ++-
 skins/jsupload.py            | 12 ++++++++++++
 skins/photo_layout_macros.pt |  2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 skins/jsupload.py

diff --git a/skins/fileupload.js b/skins/fileupload.js
index 980fb44..a67b3cf 100644
--- a/skins/fileupload.js
+++ b/skins/fileupload.js
@@ -64,8 +64,9 @@ DDFileUploader.prototype.upload = function(slide) {
 	addListener(req.upload, 'progress', function(evt){self.progressHandler(evt);});
 	addListener(req.upload, 'load', function(evt){self.uploadCompleteHandler(evt);});
 
-	req.open("PUT", this.uploadUrl + '/' + file.name);
+	req.open("PUT", this.uploadUrl); // + '/' + file.name);
 	req.setRequestHeader("Content-Type", file.type);
+	req.setRequestHeader("X-File-Name", file.name);
 	addListener(reader, 'load', function(evt){req.sendAsBinary(evt.target.result);});
 	reader.readAsBinaryString(file);
 };
diff --git a/skins/jsupload.py b/skins/jsupload.py
new file mode 100644
index 0000000..c4af561
--- /dev/null
+++ b/skins/jsupload.py
@@ -0,0 +1,12 @@
+##parameters=REQUEST, RESPONSE
+
+from Products.Plinn.utils import makeValidId
+
+factory = context.PUT_factory
+typ = REQUEST.get_header('content-type', None)
+body = REQUEST.get('BODY', '')
+
+id = makeValidId(context, name)
+ob = factory(id, typ, body)
+
+return RESPONSE
diff --git a/skins/photo_layout_macros.pt b/skins/photo_layout_macros.pt
index 6e1d7aa..ec56985 100644
--- a/skins/photo_layout_macros.pt
+++ b/skins/photo_layout_macros.pt
@@ -86,7 +86,7 @@
       // <!--
       (function(){
         var lb = document.getElementById('lightbox');
-        var uploadUrl = absolute_url();
+        var uploadUrl = absolute_url() + '/jsupload';
         new Lightbox(lb);
         new DDFileUploader(lb, uploadUrl);
       })();
-- 
2.20.1