diff --git a/NEWS b/NEWS index 11189b45f..3e1044bd4 100644 --- a/NEWS +++ b/NEWS @@ -3,10 +3,12 @@ Enhancements - improved badges of active tasks count + - refresh draft folder after sending a message Bug fixes - fixed rename of calendars - we now correctly add the "METHOD:REPLY" when sending out ITIP messages from DAV clients + - fixed refresh of message headers when forwarding a message (#2818) 2.2.6 (2014-07-02) ------------------ diff --git a/SoObjects/Mailer/SOGoDraftObject.h b/SoObjects/Mailer/SOGoDraftObject.h index 0405a8ebe..cf4e06d27 100644 --- a/SoObjects/Mailer/SOGoDraftObject.h +++ b/SoObjects/Mailer/SOGoDraftObject.h @@ -53,6 +53,7 @@ { NSString *path; int IMAP4ID; + int sourceIMAP4ID; NSMutableDictionary *headers; NSString *inReplyTo; NSString *text; @@ -87,6 +88,9 @@ - (void) setSourceFolder: (NSString *) newSourceFolder; - (NSString *) sourceFolder; +- (void) setSourceIMAP4ID: (int) newSourceIMAPID; +- (int) sourceIMAP4ID; + - (void) setIMAP4ID: (int) newIMAPID; - (int) IMAP4ID; diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 4d0f9aa38..764963534 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -197,6 +197,7 @@ static NSString *userAgent = nil; { if ((self = [super init])) { + sourceIMAP4ID = -1; IMAP4ID = -1; headers = [NSMutableDictionary new]; text = @""; @@ -234,8 +235,7 @@ static NSString *userAgent = nil; { if (!path) { - path = [[self userSpoolFolderPath] stringByAppendingPathComponent: - nameInContainer]; + path = [[self userSpoolFolderPath] stringByAppendingPathComponent: nameInContainer]; [path retain]; } @@ -466,6 +466,9 @@ static NSString *userAgent = nil; forKey: @"isHTML"]; if (inReplyTo) [infos setObject: inReplyTo forKey: @"inReplyTo"]; + if (sourceIMAP4ID > -1) + [infos setObject: [NSString stringWithFormat: @"%i", sourceIMAP4ID] + forKey: @"sourceIMAP4ID"]; if (IMAP4ID > -1) [infos setObject: [NSString stringWithFormat: @"%i", IMAP4ID] forKey: @"IMAP4ID"]; @@ -513,6 +516,10 @@ static NSString *userAgent = nil; [self setText: value]; isHTML = [[infoDict objectForKey: @"isHTML"] boolValue]; + value = [infoDict objectForKey: @"sourceIMAP4ID"]; + if (value) + [self setSourceIMAP4ID: [value intValue]]; + value = [infoDict objectForKey: @"IMAP4ID"]; if (value) [self setIMAP4ID: [value intValue]]; @@ -564,6 +571,22 @@ static NSString *userAgent = nil; [self debugWithFormat: @"Note: info object does not yet exist: %@", p]; } +// +// +// +- (void) setSourceIMAP4ID: (int) newSourceIMAP4ID +{ + sourceIMAP4ID = newSourceIMAP4ID; +} + +// +// +// +- (int) sourceIMAP4ID +{ + return sourceIMAP4ID; +} + // // // @@ -610,7 +633,7 @@ static NSString *userAgent = nil; { if (IMAP4ID > -1) error = [imap4 markURLDeleted: [self imap4URL]]; - IMAP4ID = [self IMAP4IDFromAppendResult: result]; + [self setIMAP4ID: [self IMAP4IDFromAppendResult: result]]; if (imap4URL) { // Invalidate the IMAP message URL since the message ID has changed @@ -902,9 +925,7 @@ static NSString *userAgent = nil; [self setHeaders: info]; [self setText: [sourceMail contentForEditing]]; - [self setSourceURL: [sourceMail imap4URLString]]; [self setIMAP4ID: [[sourceMail nameInContainer] intValue]]; - [self setSourceFolderWithMailObject: sourceMail]; [self storeInfo]; } @@ -934,7 +955,7 @@ static NSString *userAgent = nil; [self setHeaders: info]; [self setSourceURL: [sourceMail imap4URLString]]; [self setSourceFlag: @"Answered"]; - [self setIMAP4ID: [[sourceMail nameInContainer] intValue]]; + [self setSourceIMAP4ID: [[sourceMail nameInContainer] intValue]]; [self setSourceFolderWithMailObject: sourceMail]; [self storeInfo]; @@ -957,7 +978,7 @@ static NSString *userAgent = nil; [self setSourceURL: [sourceMail imap4URLString]]; [self setSourceFlag: @"$Forwarded"]; - [self setIMAP4ID: [[sourceMail nameInContainer] intValue]]; + [self setSourceIMAP4ID: [[sourceMail nameInContainer] intValue]]; [self setSourceFolderWithMailObject: sourceMail]; /* attach message */ diff --git a/UI/MailerUI/UIxMailEditor.m b/UI/MailerUI/UIxMailEditor.m index f78843b53..a140d1a2e 100644 --- a/UI/MailerUI/UIxMailEditor.m +++ b/UI/MailerUI/UIxMailEditor.m @@ -808,7 +808,7 @@ static NSArray *infoKeys = nil; jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys: @"success", @"status", [co sourceFolder], @"sourceFolder", - [NSNumber numberWithInt: [co IMAP4ID]], @"messageID", + [NSNumber numberWithInt: [co sourceIMAP4ID]], @"sourceMessageID", nil]; recipients_count += [[co allRecipients] count]; diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 4f87b2a84..2df20dd8b 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -1840,7 +1840,7 @@ function refreshCurrentFolder() { /* Called after sending an email */ function refreshMessage(mailbox, messageUID) { - if (Mailer.currentMailboxType == 'sent') + if (Mailer.currentMailboxType == 'sent' || Mailer.currentMailboxType == 'draft') refreshCurrentFolder(); else if (mailbox == Mailer.currentMailbox) { Mailer.dataTable.invalidate(messageUID); diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index cb9923137..dfe9e02e6 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -166,7 +166,7 @@ function onPostComplete(http) { p = window.opener; if (p && p.refreshMessage) p.refreshMessage(jsonResponse["sourceFolder"], - jsonResponse["messageID"]); + jsonResponse["sourceMessageID"]); onCloseButtonClick(); } else {