Fix for bug #2318
parent
2ba8254ecc
commit
d2b739d261
4
NEWS
4
NEWS
|
@ -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)
|
||||||
------------------
|
------------------
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue