From decd413cb0fb290e9ddb185252dee51dc8b6b9ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Wed, 4 Dec 2013 14:32:48 +0100 Subject: [PATCH] =?utf8?q?Avancement=20sur=20l=E2=80=99upload=20par=20glis?= =?utf8?q?ser=20/=20d=C3=A9poser=20dans=20les=20dossiers.=20On=20affiche?= =?utf8?q?=20le=20fragment=20html=20apr=C3=A8s=20upload.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- profiles/default/types.xml | 0 profiles/default/types/CMF_Site.xml | 2 -- profiles/default/types/Huge_Plinn_Folder.xml | 6 ++---- profiles/default/types/Photo.xml | 1 + profiles/photo/types/Huge_Plinn_Folder.xml | 1 + profiles/photo/types/Photo.xml | 1 + skins/ajax_scripts/folder_contents_script.js | 14 +++++++++++++- skins/photo_theme/folder_contents_macros.pt | 4 ++-- skins/photo_theme/folder_jsupload_snippet.py | 15 +++++++++++++++ .../folder_jsupload_snippet_template.pt | 5 +++++ 10 files changed, 40 insertions(+), 9 deletions(-) mode change 100755 => 100644 profiles/default/types.xml create mode 100644 skins/photo_theme/folder_jsupload_snippet.py create mode 100644 skins/photo_theme/folder_jsupload_snippet_template.pt diff --git a/profiles/default/types.xml b/profiles/default/types.xml old mode 100755 new mode 100644 diff --git a/profiles/default/types/CMF_Site.xml b/profiles/default/types/CMF_Site.xml index d36c06c..b530b34 100644 --- a/profiles/default/types/CMF_Site.xml +++ b/profiles/default/types/CMF_Site.xml @@ -18,9 +18,7 @@ <element value="File"/> <element value="Huge Plinn Folder"/> <element value="News Item"/> - <element value="Order Folder"/> <element value="Plinn Document"/> - <element value="Huge Plinn Folder"/> <element value="Portfolio"/> <element value="Topic"/> </property> diff --git a/profiles/default/types/Huge_Plinn_Folder.xml b/profiles/default/types/Huge_Plinn_Folder.xml index 38799ea..b589b21 100644 --- a/profiles/default/types/Huge_Plinn_Folder.xml +++ b/profiles/default/types/Huge_Plinn_Folder.xml @@ -17,17 +17,15 @@ <element value="Calendar"/> <element value="Document"/> <element value="File"/> - <element value="Link"/> - <element value="Mosaic Document"/> + <element value="Huge Plinn Folder"/> <element value="News Item"/> <element value="Plinn Document"/> - <element value="Huge Plinn Folder"/> - <element value="Huge Plinn Folder"/> <element value="Portfolio"/> <element value="Topic"/> </property> <property name="allow_discussion">False</property> <alias from="(Default)" to="folder_contents"/> + <alias from="jsupload_snippet" to="folder_jsupload_snippet"/> <alias from="mkdir" to="createHugePlinnFolder"/> <alias from="view" to="folder_contents"/> <action title="View" action_id="view" category="object" condition_expr="" diff --git a/profiles/default/types/Photo.xml b/profiles/default/types/Photo.xml index 9ab28d1..99bd4bc 100644 --- a/profiles/default/types/Photo.xml +++ b/profiles/default/types/Photo.xml @@ -16,6 +16,7 @@ <property name="allow_discussion">False</property> <alias from="(Default)" to="photo_view"/> <alias from="info" to="photo_info"/> + <alias from="jsupload_snippet" to="photo_gridthumbnail"/> <alias from="view" to="photo_view"/> <action title="View" action_id="view" category="object" condition_expr="" icon_expr="" link_target="" url_expr="string:${object_url}/photo_view" diff --git a/profiles/photo/types/Huge_Plinn_Folder.xml b/profiles/photo/types/Huge_Plinn_Folder.xml index 79b48ac..b589b21 100644 --- a/profiles/photo/types/Huge_Plinn_Folder.xml +++ b/profiles/photo/types/Huge_Plinn_Folder.xml @@ -25,6 +25,7 @@ </property> <property name="allow_discussion">False</property> <alias from="(Default)" to="folder_contents"/> + <alias from="jsupload_snippet" to="folder_jsupload_snippet"/> <alias from="mkdir" to="createHugePlinnFolder"/> <alias from="view" to="folder_contents"/> <action title="View" action_id="view" category="object" condition_expr="" diff --git a/profiles/photo/types/Photo.xml b/profiles/photo/types/Photo.xml index 9ab28d1..99bd4bc 100644 --- a/profiles/photo/types/Photo.xml +++ b/profiles/photo/types/Photo.xml @@ -16,6 +16,7 @@ <property name="allow_discussion">False</property> <alias from="(Default)" to="photo_view"/> <alias from="info" to="photo_info"/> + <alias from="jsupload_snippet" to="photo_gridthumbnail"/> <alias from="view" to="photo_view"/> <action title="View" action_id="view" category="object" condition_expr="" icon_expr="" link_target="" url_expr="string:${object_url}/photo_view" diff --git a/skins/ajax_scripts/folder_contents_script.js b/skins/ajax_scripts/folder_contents_script.js index dc31b4c..7204a4e 100644 --- a/skins/ajax_scripts/folder_contents_script.js +++ b/skins/ajax_scripts/folder_contents_script.js @@ -290,11 +290,23 @@ DDFolderUploader.prototype.handleFiles = function(files) { }; DDFolderUploader.prototype.beforeUpload = function(item) { + this.uploadedItem = item; // To be implemented by decendant. }; DDFolderUploader.prototype.uploadCompleteHandlerCB = function(req) { - // To be implemented by descendant. + var item = this.uploadedItem; + var row = getCopyOfNode(req.responseXML.documentElement.firstChild); + row.className = item.className; + + if (req.status === 200) { + // update + console.log('todo'); + } + else if(req.status === 201) { + // creation + this.listing.replaceChild(row, item); + } }; DDFolderUploader.prototype.progressHandlerCB = function(progress) { diff --git a/skins/photo_theme/folder_contents_macros.pt b/skins/photo_theme/folder_contents_macros.pt index bd8e7f5..7d25a02 100644 --- a/skins/photo_theme/folder_contents_macros.pt +++ b/skins/photo_theme/folder_contents_macros.pt @@ -39,7 +39,7 @@ </tr> </thead> <tbody id="FolderListingBody"> -<tbody tal:repeat="item_info listItemInfos" tal:omit-tag=""> +<tbody tal:repeat="item_info listItemInfos" tal:omit-tag="" metal:define-macro="itemListing"> <tr class="" tal:attributes="class python: (even and 'even') or 'odd'" tal:define="even repeat/item_info/even"> <td><img src="." alt="lock" height="16" width="16" border="0" tal:condition="python:not isAnon and item_info['lock']" @@ -112,7 +112,7 @@ } var uploadUrl = absolute_url() + '/put_upload'; - // new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, listing); + new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, listing); }()); </script> diff --git a/skins/photo_theme/folder_jsupload_snippet.py b/skins/photo_theme/folder_jsupload_snippet.py new file mode 100644 index 0000000..f932675 --- /dev/null +++ b/skins/photo_theme/folder_jsupload_snippet.py @@ -0,0 +1,15 @@ +##parameters=ob +from Products.CMFCore.utils import getUtilityByInterfaceName +utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool') +locale_date_fmt = context.locale_date_fmt() +infos = {'checkbox' : True, + 'url' : ob.absolute_url(), + 'lock' : False, + 'modified' : ob.modified().strftime(locale_date_fmt), + 'title_or_id' : ob.title_or_id(), + 'position' : context.getObjectPosition(ob.getId()), + 'type' : ob.Type() or None, + 'id' : ob.getId(), + 'icon': '%s/%s' % (utool(), ob.getIcon())} + +return context.folder_jsupload_snippet_template(listItemInfos=[infos]) \ No newline at end of file diff --git a/skins/photo_theme/folder_jsupload_snippet_template.pt b/skins/photo_theme/folder_jsupload_snippet_template.pt new file mode 100644 index 0000000..8b1e813 --- /dev/null +++ b/skins/photo_theme/folder_jsupload_snippet_template.pt @@ -0,0 +1,5 @@ +<metal:block metal:use-macro="here/main_template_macros/macros/global_defines"/> +<tal:block tal:define="listItemInfos options/listItemInfos"> + <div metal:use-macro="here/folder_contents_macros/macros/itemListing"/> +</tal:block> +<tal:block tal:define="global dummy python:request.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8')" /> \ No newline at end of file -- 2.20.1