Changeset f040421 for apps


Ignore:
Timestamp:
Apr 19, 2018 9:20:58 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
ceeacf6
Parents:
9fcddbb
Message:

SusiMail?: Fix reply/forward filling in compose form
Better formatting of addresses in forwarded mail

Location:
apps/susimail/src/src/i2p/susi/webmail
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/webmail/Mail.java

    r9fcddbb rf040421  
    3838import java.io.InputStream;
    3939import java.io.InputStreamReader;
     40import java.io.PrintWriter;
    4041import java.text.DateFormat;
    4142import java.text.ParseException;
     
    342343         * Adds all items from the list
    343344         * to the builder, separated by tabs.
     345         * This is for SMTP/POP.
    344346         *
    345347         * @param buf out param
     
    356358                        buf.append( "\r\n" );
    357359                }
     360        }
     361
     362        /**
     363         * Adds all items from the array
     364         * to the builder, separated by commas
     365         * This is for display of a forwarded email.
     366         *
     367         * @param prefix prepended to the addresses, includes trailing ": "
     368         * @since 0.9.35
     369         */
     370        public static void appendRecipients(PrintWriter out, String[] recipients, String prefix)
     371        {
     372                StringBuilder buf = new StringBuilder(120);
     373                buf.append(prefix);
     374                for (int i = 0; i < recipients.length; i++) {
     375                        buf.append(recipients[i]);
     376                        if (i < recipients.length - 1)
     377                                buf.append(", ");
     378                        if (buf.length() > 75) {
     379                                out.println(buf);
     380                                buf.setLength(0);
     381                        }
     382                }
     383                if (buf.length() > 0)
     384                        out.println(buf);
    358385        }
    359386
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r9fcddbb rf040421  
    12211221                                                        StringBuilder buf = new StringBuilder();
    12221222                                                        String pad = "";
     1223                                                        // TODO original recipients should be in the To: line, not the CC: line
    12231224                                                        if( mail.to != null ) {
    12241225                                                                for( int i = 0; i < mail.to.length; i++ ) {
     
    12631264                                                        pw.println( "---- " + _t("begin forwarded mail") + " ----" );
    12641265                                                        pw.println( "From: " + sender );
    1265                                                         if( mail.to != null ) {
    1266                                                                 String pad = "To: ";
    1267                                                                 for( int i = 0; i < mail.to.length; i++ ) {
    1268                                                                         pw.println( pad );
    1269                                                                         pw.println(mail.to[i]);
    1270                                                                         pad = "    ";
    1271                                                                 }
    1272                                                         }
    1273                                                         if( mail.cc != null ) {
    1274                                                                 String pad = "Cc: ";
    1275                                                                 for( int i = 0; i < mail.cc.length; i++ ) {
    1276                                                                         pw.println( pad );
    1277                                                                         pw.println(mail.cc[i]);
    1278                                                                         pad = "    ";
    1279                                                                 }
    1280                                                         }
     1266                                                        if (mail.to != null && mail.to.length > 0)
     1267                                                                Mail.appendRecipients(pw, mail.to, "To: ");
     1268                                                        if (mail.cc != null && mail.cc.length > 0)
     1269                                                                Mail.appendRecipients(pw, mail.cc, "Cc: ");
    12811270                                                        if( mail.dateString != null )
    12821271                                                                pw.print( "Date: " + mail.dateString );
     
    12871276                                                        sessionObject.body = text.toString();
    12881277                                                }
     1278                                                // TODO store as draft here, then P-R-G
    12891279                                                state = State.NEW;
    12901280                                        }
    12911281                                        else {
    12921282                                                sessionObject.error += _t("Could not fetch mail body.") + '\n';
    1293                                         }
    1294                                 }
    1295                         }
     1283                                        } // part != null
     1284                                } // uidl != null
     1285                        }  // reply/fwd
    12961286
    12971287                // Set state if unknown
     
    21002090
    21012091                        if (state == State.NEW) {
    2102                                 if (isPOST) {
     2092                                // TODO we can't P-R-G for reply/fwd or we lose the form data;
     2093                                // must store immediately as draft in PCSB above, before enabling P-R-G
     2094                                if (isPOST &&
     2095                                    !(buttonPressed(request, REPLY) ||
     2096                                      buttonPressed(request, REPLYALL) ||
     2097                                      buttonPressed(request, FORWARD))) {
    21032098                                        String q = '?' + NEW_UIDL;
    21042099                                        String newUIDL = request.getParameter(NEW_UIDL);
     
    24012396         *  @since 0.9.33 adapted from I2PSnarkServlet
    24022397         */
    2403         private static void sendRedirect(HttpServletRequest req, HttpServletResponse resp, String q) throws IOException {
     2398        private void sendRedirect(HttpServletRequest req, HttpServletResponse resp, String q) throws IOException {
    24042399                String url = req.getRequestURL().toString();
    24052400                StringBuilder buf = new StringBuilder(128);
     
    24132408                resp.setStatus(303);
    24142409                resp.getOutputStream().close();
    2415                 //if (_log.shouldDebug()) _log.debug("P-R-G to " + q);
     2410                if (_log.shouldDebug()) _log.debug("P-R-G to " + q);
    24162411        }
    24172412
Note: See TracChangeset for help on using the changeset viewer.