]> err.no Git - scalable-opengroupware.org/blobdiff - UI/Scheduler/UIxCalendarSelector.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1263 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / Scheduler / UIxCalendarSelector.m
index 7fad6b0f3c9549ff360dbc193e9db6399e56f459..1e49c8e247c12303c553623ff12f8a42f0ef130e 100644 (file)
@@ -25,6 +25,9 @@
 #import <Foundation/NSValue.h>
 
 #import <SOGo/NSDictionary+Utilities.h>
+
+#import <SoObjects/SOGo/SOGoUser.h>
+
 #import <Appointments/SOGoAppointmentFolder.h>
 #import <Appointments/SOGoAppointmentFolders.h>
 
@@ -102,28 +105,34 @@ colorForNumber (unsigned int number)
 
 - (NSArray *) calendars
 {
-  NSArray *folders;
+  NSArray *folders, *roles;
+  SOGoAppointmentFolders *co;
   SOGoAppointmentFolder *folder;
   NSMutableDictionary *calendar;
   unsigned int count, max;
-  NSString *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"];
@@ -131,6 +140,8 @@ colorForNumber (unsigned int number)
          [calendar setObject: isActive forKey: @"active"];
          [calendar setObject: [folder ownerInContext: context]
                    forKey: @"owner"];
+         [calendar setObject: [roles componentsJoinedByString: @","]
+                   forKey: @"roles"];
          [calendars addObject: calendar];
        }
     }