Changeset d8516314 for apps


Ignore:
Timestamp:
Jan 15, 2019 5:18:59 PM (17 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
6ca38307
Parents:
16f4f04
Message:

SusiMail?: Fix sending mail with attachments (ticket #2373)
Fix deleting attachments from drafts
Fix dup attachments after clicking add attachment without browsing first
Fix update of draft folder after saving as draft
Change text of add attachment button for clarity
Debug logging

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

Legend:

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

    r16f4f04 rd8516314  
    9696                data.delete();
    9797        }
     98
     99        /**
     100         * @since 0.9.38
     101         */
     102        @Override
     103        public int hashCode() {
     104                return fileName.hashCode() ^ data.hashCode();
     105        }
     106
     107        /**
     108         * @since 0.9.38
     109         */
     110        @Override
     111        public boolean equals (Object o) {
     112                if (o == null || !(o instanceof Attachment))
     113                        return false;
     114                Attachment a = (Attachment) o;         
     115                return fileName.equals(a.fileName) && data.equals(a.data);
     116        }
    98117}
  • apps/susimail/src/src/i2p/susi/webmail/Draft.java

    r16f4f04 rd8516314  
    7272                                String type = flds[1];
    7373                                String enc = flds[2];
    74                                 b = Base64.decode(flds[0]);
     74                                b = Base64.decode(flds[3]);
    7575                                if (b == null)
    7676                                        continue;
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r16f4f04 rd8516314  
    14061406                String filename = request.getFilename( NEW_FILENAME );
    14071407                // We handle an attachment whether sending or uploading
    1408                 if (filename != null &&
    1409                     (buttonPressed(request, NEW_UPLOAD) || buttonPressed(request, SEND))) {
     1408                if (filename != null && filename.length() > 0 &&
     1409                    (buttonPressed(request, NEW_UPLOAD) || buttonPressed(request, SEND) || buttonPressed(request, SAVE_AS_DRAFT))) {
    14101410                        int i = filename.lastIndexOf('/');
    14111411                        if( i != - 1 )
     
    14141414                        if( i != -1 )
    14151415                                filename = filename.substring( i + 1 );
    1416                         if( filename != null && filename.length() > 0 ) {
     1416                        if (filename.length() > 0) {
    14171417                                InputStream in = null;
    14181418                                OutputStream out = null;
     
    14531453                                                        new Attachment(filename, contentType, encodeTo, f)
    14541454                                                );
     1455                                                // Save the draft
     1456                                                String uidl = Base64.decodeToString(request.getParameter(NEW_UIDL));
     1457                                                if (uidl != null) {
     1458                                                        StringBuilder draft = composeDraft(sessionObject, request);
     1459                                                        saveDraft(sessionObject, uidl, draft);
     1460                                                }
    14551461                                        } else {
    14561462                                                sessionObject.error += _t("No Encoding found for {0}", encodeTo) + '\n';
     
    14671473                }
    14681474                else if( sessionObject.attachments != null && buttonPressed( request, DELETE_ATTACHMENT ) ) {
     1475                        boolean deleted = false;
    14691476                        for (String item : getCheckedItems(request)) {
    14701477                                try {
     
    14741481                                                if( attachment.hashCode() == n ) {
    14751482                                                        sessionObject.attachments.remove( i );
     1483                                                        attachment.deleteData();
     1484                                                        deleted = true;
    14761485                                                        break;
    14771486                                                }
     
    14791488                                } catch (NumberFormatException nfe) {}
    14801489                        }                       
     1490                        // Save the draft or else the attachment comes back
     1491                        if (deleted) {
     1492                                String uidl = Base64.decodeToString(request.getParameter(NEW_UIDL));
     1493                                if (uidl != null) {
     1494                                        StringBuilder draft = composeDraft(sessionObject, request);
     1495                                        saveDraft(sessionObject, uidl, draft);
     1496                                }
     1497                        }
    14811498                        state = State.NEW;
    14821499                }
     
    28942911                                } else {
    28952912                                        sessionObject.error += relay.error;
     2913                                        if (log.shouldWarn()) log.warn("Error sending mail: " + relay.error);
    28962914                                }
    28972915                                sessionObject.info = sessionObject.info.replace(_t("Sending mail.") + '\n', "");
     
    29983016                                        if (sessionObject.attachments == null)
    29993017                                                sessionObject.attachments = new ArrayList<Attachment>(a.size());
     3018                                        else
     3019                                                sessionObject.attachments.clear();
    30003020                                        sessionObject.attachments.addAll(a);
     3021                                } else if (sessionObject.attachments != null) {
     3022                                        sessionObject.attachments.clear();
    30013023                                }
    30023024                                // needed when processing the CANCEL button
     
    30373059                                "<tr><td></td><td align=\"left\"><textarea cols=\"" + Config.getProperty( CONFIG_COMPOSER_COLS, 80 )+ "\" rows=\"" + Config.getProperty( CONFIG_COMPOSER_ROWS, 10 )+ "\" name=\"" + NEW_TEXT + "\">" + text + "</textarea></td></tr>" +
    30383060                                "<tr class=\"bottombuttons\"><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
    3039                                 "<tr class=\"bottombuttons\"><td align=\"right\">" + _t("Add Attachment") + ":</td><td id=\"addattach\" align=\"left\"><input type=\"file\" size=\"50%\" name=\"" + NEW_FILENAME + "\" value=\"\">&nbsp;" + button(NEW_UPLOAD, _t("Add another attachment")) + "</td></tr>");
     3061                                "<tr class=\"bottombuttons\"><td align=\"right\">" + _t("Add Attachment") + ":</td><td id=\"addattach\" align=\"left\"><input type=\"file\" size=\"50%\" name=\"" + NEW_FILENAME + "\" value=\"\">&nbsp;" + button(NEW_UPLOAD, _t("Add Attachment")) + "</td></tr>");
    30403062               
    30413063                if( sessionObject.attachments != null && !sessionObject.attachments.isEmpty() ) {
  • apps/susimail/src/src/i2p/susi/webmail/smtp/SMTPClient.java

    r16f4f04 rd8516314  
    347347                        }
    348348                } catch (IOException e) {
     349                        if (_log.shouldWarn())
     350                                _log.warn("Error sending mail", e);
    349351                        error += _t("Error sending mail") + ": " + e.getMessage() + '\n';
    350352                }
Note: See TracChangeset for help on using the changeset viewer.