mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-19 10:25:27 +00:00
fix(mail): Templates namespace is correctly returned
This commit is contained in:
@@ -1011,33 +1011,27 @@ static NSString *inboxFolderName = @"INBOX";
|
||||
[[[self imap4Connection] client] namespace];
|
||||
|
||||
if ([_key hasPrefix: @"folder"])
|
||||
{
|
||||
folderName = [[_key substringFromIndex: 6] fromCSSIdentifier];
|
||||
{
|
||||
folderName = [[_key substringFromIndex: 6] fromCSSIdentifier];
|
||||
|
||||
namespaces = [NSMutableArray array];
|
||||
[self _appendNamespaces: namespaces];
|
||||
if ([namespaces containsObject: folderName])
|
||||
klazz = [SOGoMailNamespace class];
|
||||
else if ([folderName
|
||||
isEqualToString: [self draftsFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoDraftsFolder class];
|
||||
else if ([folderName
|
||||
isEqualToString: [self sentFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoSentFolder class];
|
||||
else if ([folderName
|
||||
isEqualToString: [self trashFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoTrashFolder class];
|
||||
else if ([folderName
|
||||
isEqualToString: [self junkFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoJunkFolder class];
|
||||
else if ([folderName
|
||||
isEqualToString: [self templatesFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoTemplatesFolder class];
|
||||
else
|
||||
klazz = [SOGoMailFolder class];
|
||||
|
||||
obj = [klazz objectWithName: _key inContainer: self];
|
||||
}
|
||||
namespaces = [NSMutableArray array];
|
||||
[self _appendNamespaces: namespaces];
|
||||
if ([namespaces containsObject: folderName])
|
||||
klazz = [SOGoMailNamespace class];
|
||||
else if ([folderName isEqualToString: [self draftsFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoDraftsFolder class];
|
||||
else if ([folderName isEqualToString: [self sentFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoSentFolder class];
|
||||
else if ([folderName isEqualToString: [self trashFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoTrashFolder class];
|
||||
else if ([folderName isEqualToString: [self junkFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoJunkFolder class];
|
||||
else if ([folderName isEqualToString: [self templatesFolderNameInContext: _ctx]])
|
||||
klazz = [SOGoTemplatesFolder class];
|
||||
else
|
||||
klazz = [SOGoMailFolder class];
|
||||
obj = [klazz objectWithName: _key inContainer: self];
|
||||
}
|
||||
else
|
||||
obj = [super lookupName: _key inContext: _ctx acquire: NO];
|
||||
|
||||
@@ -1222,9 +1216,8 @@ static NSString *inboxFolderName = @"INBOX";
|
||||
{
|
||||
if (!templatesFolder)
|
||||
{
|
||||
templatesFolder
|
||||
= [self folderWithTraversal: [self templatesFolderNameInContext: _ctx]
|
||||
andClassName: @"SOGoTemplatesFolder"];
|
||||
templatesFolder = [self folderWithTraversal: [self templatesFolderNameInContext: _ctx]
|
||||
andClassName: @"SOGoTemplatesFolder"];
|
||||
[templatesFolder retain];
|
||||
}
|
||||
|
||||
|
||||
@@ -1149,51 +1149,40 @@ static NSInteger _compareFetchResultsByUID (id entry1, id entry2, NSDictionary *
|
||||
|
||||
obj = [super lookupName: _key inContext: _ctx acquire: NO];
|
||||
if (!obj)
|
||||
{
|
||||
if ([_key hasPrefix: @"folder"])
|
||||
{
|
||||
if ([_key hasPrefix: @"folder"])
|
||||
{
|
||||
mailAccount = [self mailAccountFolder];
|
||||
folderName = [[_key substringFromIndex: 6] fromCSSIdentifier];
|
||||
fullFolderName = [NSString stringWithFormat: @"%@/%@",
|
||||
[self traversalFromMailAccount], folderName];
|
||||
if ([fullFolderName
|
||||
isEqualToString:
|
||||
[mailAccount draftsFolderNameInContext: _ctx]])
|
||||
className = @"SOGoDraftsFolder";
|
||||
else if ([fullFolderName
|
||||
isEqualToString:
|
||||
[mailAccount sentFolderNameInContext: _ctx]])
|
||||
className = @"SOGoSentFolder";
|
||||
else if ([fullFolderName
|
||||
isEqualToString:
|
||||
[mailAccount trashFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTrashFolder";
|
||||
else if ([fullFolderName
|
||||
isEqualToString:
|
||||
[mailAccount junkFolderNameInContext: _ctx]])
|
||||
className = @"SOGoJunkFolder";
|
||||
else if ([fullFolderName
|
||||
isEqualToString:
|
||||
[mailAccount templatesFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTemplatesFolder";
|
||||
/* else if ([folderName isEqualToString:
|
||||
[mailAccount sieveFolderNameInContext: _ctx]])
|
||||
obj = [self lookupFiltersFolder: _key inContext: _ctx]; */
|
||||
else
|
||||
className = @"SOGoMailFolder";
|
||||
mailAccount = [self mailAccountFolder];
|
||||
folderName = [[_key substringFromIndex: 6] fromCSSIdentifier];
|
||||
fullFolderName = [NSString stringWithFormat: @"%@/%@",
|
||||
[self traversalFromMailAccount], folderName];
|
||||
if ([fullFolderName isEqualToString: [mailAccount draftsFolderNameInContext: _ctx]])
|
||||
className = @"SOGoDraftsFolder";
|
||||
else if ([fullFolderName isEqualToString: [mailAccount sentFolderNameInContext: _ctx]])
|
||||
className = @"SOGoSentFolder";
|
||||
else if ([fullFolderName isEqualToString: [mailAccount trashFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTrashFolder";
|
||||
else if ([fullFolderName isEqualToString: [mailAccount junkFolderNameInContext: _ctx]])
|
||||
className = @"SOGoJunkFolder";
|
||||
else if ([fullFolderName isEqualToString: [mailAccount templatesFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTemplatesFolder";
|
||||
/* else if ([folderName isEqualToString:
|
||||
[mailAccount sieveFolderNameInContext: _ctx]])
|
||||
obj = [self lookupFiltersFolder: _key inContext: _ctx]; */
|
||||
else
|
||||
className = @"SOGoMailFolder";
|
||||
|
||||
obj = [NSClassFromString (className) objectWithName: _key
|
||||
inContainer: self];
|
||||
}
|
||||
else if (isdigit ([_key characterAtIndex: 0])
|
||||
&& [self exists])
|
||||
{
|
||||
obj = [SOGoMailObject objectWithName: _key inContainer: self];
|
||||
if ([_key hasSuffix: @".eml"])
|
||||
_key = [_key substringToIndex: [_key length] - 4];
|
||||
[obj setCoreInfos: [prefetchedInfos objectForKey: _key]];
|
||||
}
|
||||
obj = [NSClassFromString (className) objectWithName: _key
|
||||
inContainer: self];
|
||||
}
|
||||
else if (isdigit ([_key characterAtIndex: 0]) && [self exists])
|
||||
{
|
||||
obj = [SOGoMailObject objectWithName: _key inContainer: self];
|
||||
if ([_key hasSuffix: @".eml"])
|
||||
_key = [_key substringToIndex: [_key length] - 4];
|
||||
[obj setCoreInfos: [prefetchedInfos objectForKey: _key]];
|
||||
}
|
||||
}
|
||||
|
||||
if (!obj && _acquire)
|
||||
obj = [NSException exceptionWithHTTPStatus: 404 /* Not Found */];
|
||||
|
||||
@@ -40,18 +40,16 @@
|
||||
folderName = [[_key substringFromIndex: 6] fromCSSIdentifier];
|
||||
fullFolderName = [NSString stringWithFormat: @"%@/%@",
|
||||
[self traversalFromMailAccount], folderName];
|
||||
if ([fullFolderName
|
||||
isEqualToString: [mailAccount sentFolderNameInContext: _ctx]])
|
||||
if ([fullFolderName isEqualToString: [mailAccount sentFolderNameInContext: _ctx]])
|
||||
className = @"SOGoSentFolder";
|
||||
else if ([fullFolderName isEqualToString:
|
||||
[mailAccount draftsFolderNameInContext: _ctx]])
|
||||
else if ([fullFolderName isEqualToString: [mailAccount draftsFolderNameInContext: _ctx]])
|
||||
className = @"SOGoDraftsFolder";
|
||||
else if ([fullFolderName isEqualToString:
|
||||
[mailAccount trashFolderNameInContext: _ctx]])
|
||||
else if ([fullFolderName isEqualToString: [mailAccount trashFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTrashFolder";
|
||||
else if ([fullFolderName isEqualToString:
|
||||
[mailAccount junkFolderNameInContext: _ctx]])
|
||||
else if ([fullFolderName isEqualToString: [mailAccount junkFolderNameInContext: _ctx]])
|
||||
className = @"SOGoJunkFolder";
|
||||
else if ([fullFolderName isEqualToString: [mailAccount templatesFolderNameInContext: _ctx]])
|
||||
className = @"SOGoTemplatesFolder";
|
||||
/* else if ([folderName isEqualToString:
|
||||
[mailAccount sieveFolderNameInContext: _ctx]])
|
||||
obj = [self lookupFiltersFolder: _key inContext: _ctx]; */
|
||||
|
||||
Reference in New Issue
Block a user