#import <Foundation/NSValue.h>
#import <SOGo/NSDictionary+Utilities.h>
+
+#import <SoObjects/SOGo/SOGoUser.h>
+
#import <Appointments/SOGoAppointmentFolder.h>
#import <Appointments/SOGoAppointmentFolders.h>
- (NSArray *) calendars
{
- NSArray *folders;
+ NSArray *folders, *roles;
+ SOGoAppointmentFolders *co;
SOGoAppointmentFolder *folder;
NSMutableDictionary *calendar;
unsigned int count, max;
- NSString *folderId, *folderName;
+ NSString *folderName, *fDisplayName;
NSNumber *isActive;
+ SOGoUser *user;
if (!calendars)
{
- folders = [[self clientObject] subFolders];
+ co = [self clientObject];
+ user = [[self context] activeUser];
+ folders = [co subFolders];
max = [folders count];
calendars = [[NSMutableArray alloc] initWithCapacity: max];
for (count = 0; count < max; count++)
{
folder = [folders objectAtIndex: count];
+ roles = [user rolesForObject: folder inContext: [self context]];
calendar = [NSMutableDictionary dictionary];
folderName = [folder nameInContainer];
- [calendar setObject:
- [NSString stringWithFormat: @"/%@", folderName]
+ fDisplayName = [folder displayName];
+ if ([fDisplayName isEqualToString: [co defaultFolderName]])
+ fDisplayName = [self labelForKey: fDisplayName];
+ [calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
forKey: @"id"];
- [calendar setObject: [folder displayName]
- forKey: @"displayName"];
+ [calendar setObject: fDisplayName forKey: @"displayName"];
[calendar setObject: folderName forKey: @"folder"];
[calendar setObject: colorForNumber (count)
forKey: @"color"];
isActive = [NSNumber numberWithBool: [folder isActive]];
[calendar setObject: isActive forKey: @"active"];
+ [calendar setObject: [folder ownerInContext: context]
+ forKey: @"owner"];
+ [calendar setObject: [roles componentsJoinedByString: @","]
+ forKey: @"roles"];
[calendars addObject: calendar];
}
}
return currentCalendar;
}
+- (NSString *) currentCalendarClass
+{
+ return [currentCalendar
+ keysWithFormat: @"colorBox calendarFolder%{folder}"];
+}
+
- (NSString *) currentCalendarStyle
{
return [currentCalendar