pull/13/head
Ludovic Marcotte 2013-09-24 16:01:23 -04:00
parent 2ba8254ecc
commit d2b739d261
3 changed files with 15 additions and 10 deletions

4
NEWS
View File

@ -11,6 +11,7 @@ Enhancements
- The init scripts now start 3 sogod processes by default instead of 1 - The init scripts now start 3 sogod processes by default instead of 1
- SOGo now also sends a plain/text parts when sending HTML mails (#2217) - SOGo now also sends a plain/text parts when sending HTML mails (#2217)
- SOGo now listens on 127.0.0.1:20000 by default (instead of *:20000) - SOGo now listens on 127.0.0.1:20000 by default (instead of *:20000)
- SOGo new uses the latest WebDAV sync response type (#1275)
Bug fixes Bug fixes
- Fixed Finnish mail reply/forward templates (#2401) - Fixed Finnish mail reply/forward templates (#2401)
@ -25,8 +26,9 @@ Bug fixes
- Worked around an issue with chunked encoding of CAS replies (#2408) - Worked around an issue with chunked encoding of CAS replies (#2408)
- Avoid crash when handling malformed or non-ASCII http credentials (#2358) - Avoid crash when handling malformed or non-ASCII http credentials (#2358)
- Fixed crontab error (#2372) - Fixed crontab error (#2372)
- Fixed OpenChange corruption issue regarding predecessors change list - Fixed OpenChange corruption issue regarding predecessors change list (#2405)
- Avoid using too many LDAP connections while looping through ldap results - Avoid using too many LDAP connections while looping through ldap results
- Avoid unnecessary UTF-7 conversions (#2318)
2.0.7 (2013-07-19) 2.0.7 (2013-07-19)
------------------ ------------------

View File

@ -32,6 +32,7 @@
#import <NGObjWeb/WOResponse.h> #import <NGObjWeb/WOResponse.h>
#import <NGImap4/NGImap4Connection.h> #import <NGImap4/NGImap4Connection.h>
#import <NGImap4/NGImap4Client.h> #import <NGImap4/NGImap4Client.h>
#import <NGImap4/NSString+Imap4.h>
#import <NGExtensions/NSString+misc.h> #import <NGExtensions/NSString+misc.h>
#import <Mailer/SOGoMailAccount.h> #import <Mailer/SOGoMailAccount.h>
@ -123,7 +124,7 @@
- (NSArray *) _jsonFolders: (NSEnumerator *) rawFolders - (NSArray *) _jsonFolders: (NSEnumerator *) rawFolders
{ {
NSString *currentFolder, *currentDisplayName, *currentFolderType, *login, *fullName; NSString *currentFolder, *currentDecodedFolder, *currentDisplayName, *currentFolderType, *login, *fullName;
NSMutableArray *pathComponents; NSMutableArray *pathComponents;
SOGoUserManager *userManager; SOGoUserManager *userManager;
NSDictionary *folderData; NSDictionary *folderData;
@ -138,17 +139,19 @@
// are never reused and "autoreleased" at the end. This loop would consume // are never reused and "autoreleased" at the end. This loop would consume
// lots of LDAP connections during its execution. // lots of LDAP connections during its execution.
pool = [[NSAutoreleasePool alloc] init]; pool = [[NSAutoreleasePool alloc] init];
currentFolderType = [self _folderType: currentFolder];
currentDecodedFolder = [currentFolder stringByDecodingImap4FolderName];
currentFolderType = [self _folderType: currentDecodedFolder];
// We translate the "Other Users" and "Shared Folders" namespaces. // We translate the "Other Users" and "Shared Folders" namespaces.
// While we're at it, we also translate the user's mailbox names // While we're at it, we also translate the user's mailbox names
// to the full name of the person. // to the full name of the person.
if (otherUsersFolderName && [currentFolder hasPrefix: otherUsersFolderName]) if (otherUsersFolderName && [currentDecodedFolder hasPrefix: otherUsersFolderName])
{ {
// We have a string like /Other Users/lmarcotte/... under Cyrus, but we could // We have a string like /Other Users/lmarcotte/... under Cyrus, but we could
// also have something like /shared under Dovecot. So we swap the username only // also have something like /shared under Dovecot. So we swap the username only
// if we have one, of course. // if we have one, of course.
pathComponents = [NSMutableArray arrayWithArray: [currentFolder pathComponents]]; pathComponents = [NSMutableArray arrayWithArray: [currentDecodedFolder pathComponents]];
if ([pathComponents count] > 2) if ([pathComponents count] > 2)
{ {
@ -166,14 +169,14 @@
else else
{ {
currentDisplayName = [NSString stringWithFormat: @"/%@%@", [self labelForKey: @"OtherUsersFolderName"], currentDisplayName = [NSString stringWithFormat: @"/%@%@", [self labelForKey: @"OtherUsersFolderName"],
[currentFolder substringFromIndex: [otherUsersFolderName length]]]; [currentDecodedFolder substringFromIndex: [otherUsersFolderName length]]];
} }
} }
else if (sharedFoldersName && [currentFolder hasPrefix: sharedFoldersName]) else if (sharedFoldersName && [currentDecodedFolder hasPrefix: sharedFoldersName])
currentDisplayName = [NSString stringWithFormat: @"/%@%@", [self labelForKey: @"SharedFoldersName"], currentDisplayName = [NSString stringWithFormat: @"/%@%@", [self labelForKey: @"SharedFoldersName"],
[currentFolder substringFromIndex: [sharedFoldersName length]]]; [currentDecodedFolder substringFromIndex: [sharedFoldersName length]]];
else else
currentDisplayName = currentFolder; currentDisplayName = currentDecodedFolder;
folderData = [NSDictionary dictionaryWithObjectsAndKeys: folderData = [NSDictionary dictionaryWithObjectsAndKeys:
currentFolder, @"path", currentFolder, @"path",

View File

@ -774,7 +774,7 @@ function composeNewMessage() {
function openMailbox(mailbox, reload) { function openMailbox(mailbox, reload) {
if (mailbox != Mailer.currentMailbox || reload) { if (mailbox != Mailer.currentMailbox || reload) {
var url = ApplicationBaseURL + encodeURI(mailbox); var url = ApplicationBaseURL + encodeURI(mailbox.unescapeHTML());
var urlParams = new Hash(); var urlParams = new Hash();
if (!reload) { if (!reload) {