diff --git a/NEWS b/NEWS
index 42dc8deb6..c448d9879 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@ Enhancements
Bug fixes
- [web] fixed all-day event dates with different timezone
- [web] fixed display of Bcc header (#4642)
+ - [web] fixed refresh of drafts folder when saving a draft
- [core] ignore transparent events in time conflict validation (#4539)
- [core] fixed yearly recurrence calculator when starting from previous year
diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m
index c12aee115..4621c8450 100644
--- a/SoObjects/Mailer/SOGoDraftObject.m
+++ b/SoObjects/Mailer/SOGoDraftObject.m
@@ -874,6 +874,7 @@ static NSString *userAgent = nil;
NSDictionary *h;
NSMutableArray *addresses;
NGImap4Envelope *sourceEnvelope;
+ SOGoUserDefaults *ud;
id priority, receipt;
[sourceMail fetchCoreInfos];
@@ -917,10 +918,12 @@ static NSString *userAgent = nil;
if ([receipt isNotEmpty] && [receipt isKindOfClass: [NSString class]])
[info setObject: (NSString*)receipt forKey: @"Disposition-Notification-To"];
- [self setHeaders: info];
+ ud = [[context activeUser] userDefaults];
+ [self setHeaders: info];
[self setText: [sourceMail contentForEditing]];
[self setIMAP4ID: [[sourceMail nameInContainer] intValue]];
+ [self setIsHTML: [[ud mailComposeMessageType] isEqualToString: @"html"]];
}
//
@@ -934,6 +937,7 @@ static NSString *userAgent = nil;
NSMutableArray *addresses;
NSMutableDictionary *info;
NGImap4Envelope *sourceEnvelope;
+ SOGoUserDefaults *ud;
fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
[sourceMail fetchCoreInfos];
@@ -955,8 +959,11 @@ static NSString *userAgent = nil;
if ([addresses count])
[info setObject: [addresses objectAtIndex: 0] forKey: @"from"];
+ ud = [[context activeUser] userDefaults];
+
[self setText: [sourceMail contentForReply]];
[self setHeaders: info];
+ [self setIsHTML: [[ud mailComposeMessageType] isEqualToString: @"html"]];
[self setSourceURL: [sourceMail imap4URLString]];
[self setSourceFlag: @"Answered"];
[self setSourceIMAP4ID: [[sourceMail nameInContainer] intValue]];
diff --git a/UI/MailerUI/UIxMailAccountActions.m b/UI/MailerUI/UIxMailAccountActions.m
index fed021f4d..49514cbd9 100644
--- a/UI/MailerUI/UIxMailAccountActions.m
+++ b/UI/MailerUI/UIxMailAccountActions.m
@@ -106,6 +106,7 @@
NSDictionary *data;
NSString *accountName, *mailboxName, *messageName;
SOGoDraftsFolder *drafts;
+ SOGoUserDefaults *ud;
id mailTo;
BOOL save;
@@ -139,10 +140,11 @@
signature = [[self clientObject] signature];
if ([signature length])
{
- nl = ([[[[context activeUser] userDefaults] mailComposeMessageType] isEqualToString: @"html"] ? @"
" : @"\n");
+ ud = [[context activeUser] userDefaults];
+ [newDraftMessage setIsHTML: [[ud mailComposeMessageType] isEqualToString: @"html"]];
+ nl = ([newDraftMessage isHTML] ? @"
" : @"\n");
- [newDraftMessage
- setText: [NSString stringWithFormat: @"%@%@-- %@%@", nl, nl, nl, signature]];
+ [newDraftMessage setText: [NSString stringWithFormat: @"%@%@-- %@%@", nl, nl, nl, signature]];
save = YES;
}
if (save)
diff --git a/UI/MailerUI/UIxMailEditor.m b/UI/MailerUI/UIxMailEditor.m
index d93345a1e..cbd1a0918 100644
--- a/UI/MailerUI/UIxMailEditor.m
+++ b/UI/MailerUI/UIxMailEditor.m
@@ -756,6 +756,7 @@ static NSArray *infoKeys = nil;
co = [self clientObject];
[co fetchInfo];
[self loadInfo: [co headers]];
+ [self setIsHTML: [co isHTML]];
[self setText: [co text]];
[self setSourceUID: [co IMAP4ID]];
[self setSourceFolder: [co sourceFolder]];
@@ -793,7 +794,7 @@ static NSArray *infoKeys = nil;
SOGoDraftObject *co;
co = [self clientObject];
- [self setIsHTML: [self isHTML]];
+ [co setIsHTML: isHTML];
result = [self _saveRequestInfo];
if (!result)
@@ -805,6 +806,7 @@ static NSArray *infoKeys = nil;
{
// Save new UID to plist
[self setSourceUID: [co IMAP4ID]];
+ [co setIsHTML: isHTML];
[co storeInfo];
// Prepare response
diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js
index 517c237a3..1fd90b667 100644
--- a/UI/WebServerResources/js/Mailer/Mailbox.service.js
+++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js
@@ -434,9 +434,11 @@
}
}
- Mailbox.$log.debug('Loading UIDs ' + uids.join(' '));
- futureHeadersData = Mailbox.$$resource.post(this.id, 'headers', {uids: uids});
- this.$unwrapHeaders(futureHeadersData);
+ if (uids.length) {
+ Mailbox.$log.debug('Loading UIDs ' + uids.join(' '));
+ futureHeadersData = Mailbox.$$resource.post(this.id, 'headers', {uids: uids});
+ this.$unwrapHeaders(futureHeadersData);
+ }
}
}
return loaded;
diff --git a/UI/WebServerResources/js/Mailer/Message.service.js b/UI/WebServerResources/js/Mailer/Message.service.js
index 099ec6434..4e676b76f 100644
--- a/UI/WebServerResources/js/Mailer/Message.service.js
+++ b/UI/WebServerResources/js/Mailer/Message.service.js
@@ -171,10 +171,11 @@
index = this.$mailbox.uidsMap[oldUID];
this.$mailbox.uidsMap[uid] = index;
delete this.$mailbox.uidsMap[oldUID];
+ this.$mailbox.$messages[index].uid = this.uid;
// Update messages list of mailbox
_.forEach(['from', 'to', 'subject'], function(attr) {
- _this.$mailbox.$messages[index][attr] = _this[attr];
+ _this.$mailbox.$messages[index][attr] = _this.editable[attr];
});
}
}
diff --git a/UI/WebServerResources/js/Mailer/MessageEditorController.js b/UI/WebServerResources/js/Mailer/MessageEditorController.js
index af624d843..0dcf1ed41 100644
--- a/UI/WebServerResources/js/Mailer/MessageEditorController.js
+++ b/UI/WebServerResources/js/Mailer/MessageEditorController.js
@@ -128,7 +128,7 @@
// },
onSuccessItem: function(item, response, status, headers) {
vm.message.$setUID(response.uid);
- vm.message.$reload({asDraft: false});
+ vm.message.$reload();
item.inlineUrl = response.lastAttachmentAttrs[0].url;
//console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));
},