You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/12/16 22:53:29 UTC

svn commit: r487902 - in /tapestry/tapestry4/trunk: tapestry-examples/Workbench/src/context/ tapestry-framework/src/java/org/apache/tapestry/multipart/ tapestry-framework/src/js/dojo/src/validate/

Author: jkuhnert
Date: Sat Dec 16 13:53:28 2006
New Revision: 487902

URL: http://svn.apache.org/viewvc?view=rev&rev=487902
Log:
Resolves TAPESTRY-957 (sort of). 

Made dojo client side required check not skip file upload fields so that we can at least check that much on 
the client side. Rest of the issue lies solely with the jakarta commons fileupload devs.

Modified:
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Upload.html
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Upload.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Upload.html?view=diff&rev=487902&r1=487901&r2=487902
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Upload.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Upload.html Sat Dec 16 13:53:28 2006
@@ -18,7 +18,8 @@
 <table class="form">
 	<tr>
 		<th><span jwcid="@FieldLabel" field="component:inputFile"/>:</th>
-		<td><input jwcid="inputFile@Upload" file="ognl:file" size="30" displayName="File" validators="validators:required"/></td>
+		<td><input jwcid="inputFile@Upload" file="ognl:file" size="30"
+					displayName="File" validators="validators:required"/></td>
 	</tr>
 	<tr>
 		<th>Options:</th>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java?view=diff&rev=487902&r1=487901&r2=487902
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java Sat Dec 16 13:53:28 2006
@@ -127,7 +127,8 @@
 
         if (part == null)
             _valueParts.put(name, new ValuePart(value));
-        else part.add(value);
+        else 
+            part.add(value);
     }
 
     private String extractFileItemValue(FileItem item)

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java?view=diff&rev=487902&r1=487901&r2=487902
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java Sat Dec 16 13:53:28 2006
@@ -35,8 +35,7 @@
  * @author Joe Panico
  * @since 4.0
  */
-public class MultipartDecoderImpl extends AbstractMultipartDecoder implements
-        ServletMultipartDecoder
+public class MultipartDecoderImpl extends AbstractMultipartDecoder implements ServletMultipartDecoder
 {
 
     /* maximum size of file allowed to be uploaded */
@@ -45,36 +44,35 @@
     public HttpServletRequest decode(HttpServletRequest request)
     {
         _encoding = request.getCharacterEncoding();
-
+        
         ServletFileUpload upload = createFileUpload();
-
+        
         try
         {
             List fileItems = upload.parseRequest(request);
-
+            
             processFileItems(fileItems);
         }
         catch (FileUploadException ex)
         {
-            throw new ApplicationRuntimeException(MultipartMessages
-                    .unableToDecode(ex), ex);
+            throw new ApplicationRuntimeException(MultipartMessages.unableToDecode(ex), ex);
         }
-
+        
         Map parameterMap = buildParameterMap();
-
+        
         return new UploadFormParametersWrapper(request, parameterMap);
     }
 
     private ServletFileUpload createFileUpload()
     {
-        FileItemFactory factory = new DiskFileItemFactory(_thresholdSize,
-                new File(_repositoryPath));
+        FileItemFactory factory = new DiskFileItemFactory(_thresholdSize, new File(_repositoryPath));
         ServletFileUpload upload = new ServletFileUpload(factory);
-
+        
         // set maximum file upload size
         upload.setSizeMax(_maxSize);
-
-        if (_encoding != null) upload.setHeaderEncoding(_encoding);
+        
+        if (_encoding != null) 
+            upload.setHeaderEncoding(_encoding);
 
         return upload;
     }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js?view=diff&rev=487902&r1=487901&r2=487902
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js Sat Dec 16 13:53:28 2006
@@ -12,7 +12,9 @@
 if(profile.digit instanceof Array){for(var i = 0; i < profile.digit.length; i++){var elem = form[profile.digit[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
 elem.value = elem.value.replace(/\D/g, "");}}
 if(profile.required instanceof Array){for(var i = 0; i < profile.required.length; i++){if(!dojo.lang.isString(profile.required[i])){ continue; }
-var elem = form[profile.required[i]];if(!dj_undef("type", elem) && (elem.type == "text" || elem.type == "textarea" || elem.type == "password") && /^\s*$/.test(elem.value)){missing[missing.length] = elem.name;}
+var elem = form[profile.required[i]];if(!dj_undef("type", elem)
+&& (elem.type == "text" || elem.type == "textarea" || elem.type == "password" || elem.type == "file")
+&& /^\s*$/.test(elem.value)){missing[missing.length] = elem.name;}
 else if(!dj_undef("type", elem) && (elem.type == "select-one" || elem.type == "select-multiple")
 && (elem.selectedIndex == -1
 || /^\s*$/.test(elem.options[elem.selectedIndex].value))){missing[missing.length] = elem.name;}