parent
51e07fc306
commit
c5922b07aa
1
NEWS
1
NEWS
|
@ -39,6 +39,7 @@ Bug fixes
|
||||||
- fixed missing characters in shared folder names over ActiveSync (#2709)
|
- fixed missing characters in shared folder names over ActiveSync (#2709)
|
||||||
- fixed reply and forward mail templates for Brazilian Portuguese (#2738)
|
- fixed reply and forward mail templates for Brazilian Portuguese (#2738)
|
||||||
- fixed newline in signature when forwarding a message as attachment in HTML mode (#2787)
|
- fixed newline in signature when forwarding a message as attachment in HTML mode (#2787)
|
||||||
|
- fixed restoration of options (priority & return receipt) when editing a draft (#193)
|
||||||
|
|
||||||
2.2.3 (2014-04-03)
|
2.2.3 (2014-04-03)
|
||||||
------------------
|
------------------
|
||||||
|
|
|
@ -266,7 +266,7 @@ static NSString *userAgent = nil;
|
||||||
{
|
{
|
||||||
id headerValue;
|
id headerValue;
|
||||||
unsigned int count;
|
unsigned int count;
|
||||||
NSString *messageID, *priority, *pureSender, *replyTo;
|
NSString *messageID, *priority, *pureSender, *replyTo, *receipt;
|
||||||
|
|
||||||
for (count = 0; count < 8; count++)
|
for (count = 0; count < 8; count++)
|
||||||
{
|
{
|
||||||
|
@ -285,26 +285,57 @@ static NSString *userAgent = nil;
|
||||||
[headers setObject: messageID forKey: @"message-id"];
|
[headers setObject: messageID forKey: @"message-id"];
|
||||||
}
|
}
|
||||||
|
|
||||||
priority = [newHeaders objectForKey: @"priority"];
|
priority = [newHeaders objectForKey: @"X-Priority"];
|
||||||
if (!priority || [priority isEqualToString: @"NORMAL"])
|
if (priority)
|
||||||
{
|
{
|
||||||
[headers removeObjectForKey: @"X-Priority"];
|
// newHeaders come from MIME message; convert X-Priority to Web representation
|
||||||
}
|
[headers setObject: priority forKey: @"X-Priority"];
|
||||||
else if ([priority isEqualToString: @"HIGHEST"])
|
[headers removeObjectForKey: @"priority"];
|
||||||
{
|
if ([priority isEqualToString: @"1 (Highest)"])
|
||||||
[headers setObject: @"1 (Highest)" forKey: @"X-Priority"];
|
{
|
||||||
}
|
[headers setObject: @"HIGHEST" forKey: @"priority"];
|
||||||
else if ([priority isEqualToString: @"HIGH"])
|
}
|
||||||
{
|
else if ([priority isEqualToString: @"2 (High)"])
|
||||||
[headers setObject: @"2 (High)" forKey: @"X-Priority"];
|
{
|
||||||
}
|
[headers setObject: @"HIGH" forKey: @"priority"];
|
||||||
else if ([priority isEqualToString: @"LOW"])
|
}
|
||||||
{
|
else if ([priority isEqualToString: @"4 (Low)"])
|
||||||
[headers setObject: @"4 (Low)" forKey: @"X-Priority"];
|
{
|
||||||
|
[headers setObject: @"LOW" forKey: @"priority"];
|
||||||
|
}
|
||||||
|
else if ([priority isEqualToString: @"5 (Lowest)"])
|
||||||
|
{
|
||||||
|
[headers setObject: @"LOWEST" forKey: @"priority"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
[headers setObject: @"5 (Lowest)" forKey: @"X-Priority"];
|
// newHeaders come from Web form; convert priority to MIME header representation
|
||||||
|
priority = [newHeaders objectForKey: @"priority"];
|
||||||
|
if (!priority || [priority isEqualToString: @"NORMAL"])
|
||||||
|
{
|
||||||
|
[headers removeObjectForKey: @"X-Priority"];
|
||||||
|
}
|
||||||
|
else if ([priority isEqualToString: @"HIGHEST"])
|
||||||
|
{
|
||||||
|
[headers setObject: @"1 (Highest)" forKey: @"X-Priority"];
|
||||||
|
}
|
||||||
|
else if ([priority isEqualToString: @"HIGH"])
|
||||||
|
{
|
||||||
|
[headers setObject: @"2 (High)" forKey: @"X-Priority"];
|
||||||
|
}
|
||||||
|
else if ([priority isEqualToString: @"LOW"])
|
||||||
|
{
|
||||||
|
[headers setObject: @"4 (Low)" forKey: @"X-Priority"];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[headers setObject: @"5 (Lowest)" forKey: @"X-Priority"];
|
||||||
|
}
|
||||||
|
if (priority)
|
||||||
|
{
|
||||||
|
[headers setObject: priority forKey: @"priority"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
replyTo = [headers objectForKey: @"replyTo"];
|
replyTo = [headers objectForKey: @"replyTo"];
|
||||||
|
@ -314,14 +345,30 @@ static NSString *userAgent = nil;
|
||||||
}
|
}
|
||||||
[headers removeObjectForKey: @"replyTo"];
|
[headers removeObjectForKey: @"replyTo"];
|
||||||
|
|
||||||
if ([[newHeaders objectForKey: @"receipt"] isEqualToString: @"true"])
|
receipt = [newHeaders objectForKey: @"Disposition-Notification-To"];
|
||||||
|
if ([receipt length] > 0)
|
||||||
{
|
{
|
||||||
pureSender = [[newHeaders objectForKey: @"from"] pureEMailAddress];
|
[headers setObject: @"true" forKey: @"receipt"];
|
||||||
if (pureSender)
|
[headers setObject: receipt forKey: @"Disposition-Notification-To"];
|
||||||
[headers setObject: pureSender forKey: @"Disposition-Notification-To"];
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
[headers removeObjectForKey: @"Disposition-Notification-To"];
|
{
|
||||||
|
receipt = [newHeaders objectForKey: @"receipt"];
|
||||||
|
if ([receipt isEqualToString: @"true"])
|
||||||
|
{
|
||||||
|
[headers setObject: receipt forKey: @"receipt"];
|
||||||
|
pureSender = [[newHeaders objectForKey: @"from"] pureEMailAddress];
|
||||||
|
if (pureSender)
|
||||||
|
{
|
||||||
|
[headers setObject: pureSender forKey: @"Disposition-Notification-To"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[headers removeObjectForKey: @"receipt"];
|
||||||
|
[headers removeObjectForKey: @"Disposition-Notification-To"];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSDictionary *) headers
|
- (NSDictionary *) headers
|
||||||
|
@ -805,8 +852,10 @@ static NSString *userAgent = nil;
|
||||||
{
|
{
|
||||||
NSString *subject, *msgid;
|
NSString *subject, *msgid;
|
||||||
NSMutableDictionary *info;
|
NSMutableDictionary *info;
|
||||||
|
NSDictionary *h;
|
||||||
NSMutableArray *addresses;
|
NSMutableArray *addresses;
|
||||||
NGImap4Envelope *sourceEnvelope;
|
NGImap4Envelope *sourceEnvelope;
|
||||||
|
id priority, receipt;
|
||||||
|
|
||||||
[sourceMail fetchCoreInfos];
|
[sourceMail fetchCoreInfos];
|
||||||
|
|
||||||
|
@ -836,6 +885,15 @@ static NSString *userAgent = nil;
|
||||||
[self _addEMailsOfAddresses: [sourceEnvelope replyTo] toArray: addresses];
|
[self _addEMailsOfAddresses: [sourceEnvelope replyTo] toArray: addresses];
|
||||||
if ([addresses count] > 0)
|
if ([addresses count] > 0)
|
||||||
[info setObject: addresses forKey: @"replyTo"];
|
[info setObject: addresses forKey: @"replyTo"];
|
||||||
|
|
||||||
|
h = [sourceMail mailHeaders];
|
||||||
|
priority = [h objectForKey: @"x-priority"];
|
||||||
|
if ([priority isNotEmpty] && [priority isKindOfClass: [NSString class]])
|
||||||
|
[info setObject: (NSString*)priority forKey: @"X-Priority"];
|
||||||
|
receipt = [h objectForKey: @"disposition-notification-to"];
|
||||||
|
if ([receipt isNotEmpty] && [receipt isKindOfClass: [NSString class]])
|
||||||
|
[info setObject: (NSString*)receipt forKey: @"Disposition-Notification-To"];
|
||||||
|
|
||||||
[self setHeaders: info];
|
[self setHeaders: info];
|
||||||
|
|
||||||
[self setText: [sourceMail contentForEditing]];
|
[self setText: [sourceMail contentForEditing]];
|
||||||
|
@ -1708,7 +1766,7 @@ static NSString *userAgent = nil;
|
||||||
NGVCard *card;
|
NGVCard *card;
|
||||||
Class contactGCSEntry;
|
Class contactGCSEntry;
|
||||||
NSMutableArray *recipients;
|
NSMutableArray *recipients;
|
||||||
NSString *recipient, *emailAddress, *displayName, *addressBook, *uid;
|
NSString *recipient, *emailAddress, *addressBook, *uid;
|
||||||
NSArray *matchingContacts;
|
NSArray *matchingContacts;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1726,7 +1784,6 @@ static NSString *userAgent = nil;
|
||||||
parser = [NGMailAddressParser mailAddressParserWithString: recipient];
|
parser = [NGMailAddressParser mailAddressParserWithString: recipient];
|
||||||
parsedRecipient = [parser parse];
|
parsedRecipient = [parser parse];
|
||||||
emailAddress = [parsedRecipient address];
|
emailAddress = [parsedRecipient address];
|
||||||
displayName = [parsedRecipient displayName];
|
|
||||||
|
|
||||||
matchingContacts = [contactFolders allContactsFromFilter: emailAddress
|
matchingContacts = [contactFolders allContactsFromFilter: emailAddress
|
||||||
excludeGroups: YES
|
excludeGroups: YES
|
||||||
|
@ -1735,7 +1792,7 @@ static NSString *userAgent = nil;
|
||||||
// If we don't get any results from the autocompletion code, we add it..
|
// If we don't get any results from the autocompletion code, we add it..
|
||||||
if ([matchingContacts count] == 0)
|
if ([matchingContacts count] == 0)
|
||||||
{
|
{
|
||||||
/* Get the selected addressbook from the user preferences where the new address will be added */
|
// Get the selected addressbook from the user preferences where the new address will be added
|
||||||
addressBook = [ud selectedAddressBook];
|
addressBook = [ud selectedAddressBook];
|
||||||
folder = [contactFolders lookupName: addressBook inContext: context acquire: NO];
|
folder = [contactFolders lookupName: addressBook inContext: context acquire: NO];
|
||||||
uid = [folder globallyUniqueObjectId];
|
uid = [folder globallyUniqueObjectId];
|
||||||
|
|
|
@ -485,6 +485,7 @@ function initMailEditor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
initializePriorityMenu();
|
initializePriorityMenu();
|
||||||
|
initializeReturnReceiptMenu();
|
||||||
|
|
||||||
configureDragHandle();
|
configureDragHandle();
|
||||||
|
|
||||||
|
@ -563,6 +564,12 @@ function initializePriorityMenu() {
|
||||||
$(chosenNode).addClassName("_chosen");
|
$(chosenNode).addClassName("_chosen");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function initializeReturnReceiptMenu() {
|
||||||
|
var receipt = $("receipt").value.toLowerCase();
|
||||||
|
if (receipt == "true")
|
||||||
|
$("optionsMenu").down('li').addClassName("_chosen");
|
||||||
|
}
|
||||||
|
|
||||||
function onMenuCheckReturnReceipt(event) {
|
function onMenuCheckReturnReceipt(event) {
|
||||||
event.cancelBubble = true;
|
event.cancelBubble = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue