You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by jw...@apache.org on 2009/01/06 01:26:30 UTC

svn commit: r731786 - in /myfaces/trinidad/trunk_1.2.x: trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java

Author: jwaldman
Date: Mon Jan  5 16:26:29 2009
New Revision: 731786

URL: http://svn.apache.org/viewvc?rev=731786&view=rev
Log:
TRINIDAD-1359 filedownloadactionlistener firefox long filename is truncated
put quotes around the filename that is set in the Content-Disposition--
 hsr.setHeader("Content-Disposition", "attachment; filename=\""+encodeHTTPHeaderFilename + "\"");]

trunk_1.2.x

Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx?rev=731786&r1=731785&r2=731786&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-examples/trinidad-demo/src/main/webapp/demos/tableDemos/exportAsCSV.jspx Mon Jan  5 16:26:29 2009
@@ -33,11 +33,19 @@
           <tr:table var="row" binding="#{csv.table}"
                     value="#{periodicTable.tableData}" rows="10">
             <f:facet name="actions">
+              <tr:panelGroupLayout layout="horizontal">
               <tr:commandButton text="Export as CSV">
                 <tr:fileDownloadActionListener contentType="text/csv; charset=utf-8"
-                                    filename="content.csv"
+                                    filename="content.csv"                                   
                                     method="#{csv.sendContent}"/>           
               </tr:commandButton>
+              <tr:commandButton text="Export as CSV long filename test">
+                <tr:fileDownloadActionListener contentType="text/csv; charset=utf-8"
+                                    filename="This-is-a-long-filename-that-should-still-download-property.csv"
+                                    
+                                    method="#{csv.sendContent}"/>           
+              </tr:commandButton>
+              </tr:panelGroupLayout>
             </f:facet>
             <tr:column headerText="Name">
               <tr:outputText value="#{row.name}"/>

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java?rev=731786&r1=731785&r2=731786&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/taglib/listener/FileDownloadActionListener.java Mon Jan  5 16:26:29 2009
@@ -109,8 +109,12 @@
           if (agentName.contains("msie") || agentName.contains("applewebkit") || agentName.contains("safari"))
             isGecko = false;
           // boolean isIE = CoreRenderer.isIE(RenderingContext.getCurrentInstance());
+          String encodeHTTPHeaderFilename = MimeUtility.encodeHTTPHeader(filename, !isGecko);
+          // double quotes are needed in case the filename is long. otherwise the filename gets
+          // truncated in Firefox.
           hsr.setHeader("Content-Disposition",
-                        "attachment; filename=" + MimeUtility.encodeHTTPHeader(filename, !isGecko));
+                        "attachment; filename=\""+encodeHTTPHeaderFilename + "\"");
+
         }
         MethodExpression method = getMethod();
         OutputStream out = new BufferedOutputStream(hsr.getOutputStream());