diff --git a/UI/MailerUI/UIxMailAccountActions.h b/UI/MailerUI/UIxMailAccountActions.h index 9e98ae5fb..72ccf6b6d 100644 --- a/UI/MailerUI/UIxMailAccountActions.h +++ b/UI/MailerUI/UIxMailAccountActions.h @@ -35,6 +35,7 @@ NSString *trashFolderName; } +- (WOResponse *) statusFoldersAction; - (WOResponse *) listMailboxesAction; @end diff --git a/UI/MailerUI/UIxMailAccountActions.m b/UI/MailerUI/UIxMailAccountActions.m index 2b56ba1c5..a2c35fad0 100644 --- a/UI/MailerUI/UIxMailAccountActions.m +++ b/UI/MailerUI/UIxMailAccountActions.m @@ -122,6 +122,40 @@ return folders; } +- (NSDictionary *) _statusFolders +{ + SOGoMailFolder *inbox; + NGImap4Client *client; + SOGoMailAccount *co; + NSNumber *unseen; + + co = [self clientObject]; + inbox = [co inboxFolderInContext: context]; + client = [[inbox imap4Connection] client]; + unseen = [[client status: [inbox relativeImap4Name] flags: [NSArray arrayWithObject: @"UNSEEN"]] + objectForKey: @"unseen"]; + + if (!unseen) + unseen = [NSNumber numberWithInt: 0]; + + return [NSDictionary dictionaryWithObjectsAndKeys: unseen, @"unseen", nil]; +} + +- (WOResponse *) statusFoldersAction +{ + WOResponse *response; + NSDictionary *data; + + response = [self responseWithStatus: 200]; + data = [self _statusFolders]; + + [response setHeader: @"text/plain; charset=utf-8" + forKey: @"content-type"]; + [response appendContentString: [data jsonRepresentation]]; + + return response; +} + - (WOResponse *) listMailboxesAction { id infos, inboxQuota; diff --git a/UI/MailerUI/product.plist b/UI/MailerUI/product.plist index f759eea14..2697a893b 100644 --- a/UI/MailerUI/product.plist +++ b/UI/MailerUI/product.plist @@ -372,6 +372,11 @@ actionClass = "UIxMailFolderActions"; actionName = "createFolder"; }; + statusFolders = { + protectedBy = "View"; + actionClass = "UIxMailAccountActions"; + actionName = "statusFolders"; + }; }; };