Author: xlawrence
Date: Thu May 31 09:40:26 2007
New Revision: 17405

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17405&repname=
=3Djahia
Log:
Improve handling of files by associating the uploaded file to a FileField

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/filemanage=
r/DAVFilemanager_Engine.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form/FormC=
ontentMapperHandlerTag.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/file=
manager/DAVFilemanager_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/filemanager/DAVFilemanager_Engine.j=
ava&rev=3D17405&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/filemanage=
r/DAVFilemanager_Engine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/filemanage=
r/DAVFilemanager_Engine.java Thu May 31 09:40:26 2007
@@ -1240,8 +1240,7 @@
                     return null;
                 }
                 logger.debug("Finished uploading: " + result);
-                return jahiaWebdavBaseService.getDAVFileAccess(processingC=
ontext, processingContext.getSite(),
-                        adminUser, path + "/" + fileName).getDownloadURL();
+                return path + "/" + fileName;
             }
         }
         return null;

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form=
/FormContentMapperHandlerTag.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/taglibs/form/FormContentMapperHandlerTag.ja=
va&rev=3D17405&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form/FormC=
ontentMapperHandlerTag.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/taglibs/form/FormC=
ontentMapperHandlerTag.java Thu May 31 09:40:26 2007
@@ -1,23 +1,24 @@
 /*
  * Copyright 2002-2006 Jahia Ltd
  *
- * Licensed under the JAHIA COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (J=
CDDL), =

- * Version 1.0 (the "License"), or (at your option) any later version; you=
 may =

- * not use this file except in compliance with the License. You should hav=
e =

- * received a copy of the License along with this program; if not, you may=
 obtain =

- * a copy of the License at =

+ * Licensed under the JAHIA COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (J=
CDDL),
+ * Version 1.0 (the "License"), or (at your option) any later version; you=
 may
+ * not use this file except in compliance with the License. You should have
+ * received a copy of the License along with this program; if not, you may=
 obtain
+ * a copy of the License at
  *
  *  http://www.jahia.org/license/
  *
- * Unless required by applicable law or agreed to in writing, software =

- * distributed under the License is distributed on an "AS IS" BASIS, =

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied=
. =

- * See the License for the specific language governing permissions and =

+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.jahia.taglibs.form;
 =

 import org.jahia.data.JahiaData;
+import org.jahia.data.files.JahiaFileField;
 import org.jahia.data.beans.ContainerListBean;
 import org.jahia.data.containers.JahiaContainer;
 import org.jahia.data.containers.JahiaContainerDefinition;
@@ -25,6 +26,7 @@
 import org.jahia.data.containers.JahiaContainerStructure;
 import org.jahia.data.fields.JahiaField;
 import org.jahia.data.fields.JahiaFieldDefinition;
+import org.jahia.data.fields.FieldTypes;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.hibernate.model.JahiaAclEntry;
 import org.jahia.params.ProcessingContext;
@@ -32,17 +34,18 @@
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.acl.JahiaBaseACL;
 import org.jahia.services.containers.ContentContainer;
-import org.jahia.services.usermanager.JahiaGroup;
-import org.jahia.services.usermanager.JahiaGroupManagerService;
-import org.jahia.services.usermanager.JahiaUser;
-import org.jahia.services.usermanager.JahiaUserManagerService;
+import org.jahia.services.usermanager.*;
 import org.jahia.services.workflow.WorkflowService;
+import org.jahia.services.webdav.DAVFileAccess;
+import org.jahia.services.webdav.JahiaWebdavBaseService;
 import org.jahia.tools.files.FileUpload;
 =

 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.BodyTagSupport;
 import java.util.Enumeration;
+import java.util.Set;
+import java.util.HashSet;
 =

 /**
  * <p>Title: Form handler that maps to Content objects </p>
@@ -265,22 +268,52 @@
             curFieldValues =3D jData.getProcessingContext().getParameterVa=
lues(curFieldName);
 =

             final JahiaField curField =3D container.getField(curFieldName);
-            final StringBuffer curFieldValueBuf =3D new StringBuffer();
-            if (curFieldValues !=3D null) {
-                for (int i =3D 0; i < curFieldValues.length; i++) {
-                    curFieldValueBuf.append(curFieldValues[i]);
-                    if (i < (curFieldValues.length - 1)) {
-                        curFieldValueBuf.append("$$$");
+            if (curField !=3D null) {
+                if (curField.getType() =3D=3D FieldTypes.FILE) {
+                    if (curFieldValues !=3D null && curFieldValues.length =
> 0) {
+                        final String path =3D curFieldValues[0];
+                        final DAVFileAccess objectDav =3D JahiaWebdavBaseS=
ervice.getInstance().getDAVFileAccess(
+                                jData.params(),
+                                jData.getProcessingContext().getSite(),
+                                JahiaAdminUser.getAdminUser(jData.getProce=
ssingContext().getSiteID()),
+                                path);
+                        final JahiaFileField fField =3D objectDav.getJahia=
FileField();
+                        curField.setValue(path);
+                        curField.setObject(fField);
+
+                        final Set uris =3D new HashSet();
+                        final String[] users =3D jData.getProcessingContex=
t().getParameterValues("user");
+                        if (users !=3D null) {
+                            for (int i =3D 0; i < users.length; i++) {
+                                uris.add(users[i]);
+                            }
+                        }
+                        if (!uris.isEmpty()) {
+                            objectDav.beginTransaction();
+                            objectDav.alignPermsWithField(curField, uris);
+                            objectDav.commitTransaction();
+                        }
+
+                        curField.save(jData.getProcessingContext());
+                    }
+                } else {
+                    final StringBuffer curFieldValueBuf =3D new StringBuff=
er();
+                    if (curFieldValues !=3D null) {
+                        for (int i =3D 0; i < curFieldValues.length; i++) {
+                            curFieldValueBuf.append(curFieldValues[i]);
+                            if (i < (curFieldValues.length - 1)) {
+                                curFieldValueBuf.append("$$$");
+                            }
+                        }
+                    }
+                    final String curFieldValue =3D curFieldValueBuf.toStri=
ng();
+                    if ((curFieldValues !=3D null) && (!"".equals(curField=
Value))) {
+                        curField.setValue(curFieldValue);
+                        curField.setObject(curFieldValue);
+                        curField.save(jData.getProcessingContext());
                     }
                 }
             }
-            final String curFieldValue =3D curFieldValueBuf.toString();
-            if ((curFieldValues !=3D null) && (!"".equals(curFieldValue)) =
&&
-                    (curField !=3D null)) {
-                curField.setValue(curFieldValue);
-                curField.setObject(curFieldValue);
-                curField.save(jData.getProcessingContext());
-            }
         }
         if (isImmediatePublication()) {
             if (ServicesRegistry.getInstance().getWorkflowService().getWor=
kflowMode(

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to