]> err.no Git - scalable-opengroupware.org/blobdiff - UI/MailPartViewers/UIxMailPartICalViewer.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1127 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / MailPartViewers / UIxMailPartICalViewer.m
index 0cac3f1bc82d3f6e7e9b6db89e9e836cc57f22d7..7d18eb0e0a401a2a76ca525547b2ea488ac60dd5 100644 (file)
@@ -25,8 +25,8 @@
   Show plain/calendar mail parts.
 */
 
-#import <SOGoUI/SOGoDateFormatter.h>
-#import <SOGo/SOGoUser.h>
+#import <SoObjects/SOGo/SOGoDateFormatter.h>
+#import <SoObjects/SOGo/SOGoUser.h>
 #import <SoObjects/Appointments/SOGoAppointmentFolder.h>
 #import <SoObjects/Appointments/SOGoAppointmentObject.h>
 #import <SoObjects/Mailer/SOGoMailObject.h>
 
 - (SOGoDateFormatter *)dateFormatter {
   if (self->dateFormatter == nil) {
-    self->dateFormatter =
-      [[SOGoDateFormatter alloc] initWithLocale:[self locale]];
-    [self->dateFormatter setFullWeekdayNameAndDetails];
+    dateFormatter = [[context activeUser] dateFormatterInContext: context];
+    [dateFormatter retain];
   }
+
   return self->dateFormatter;
 }
 
   return self->attendee;
 }
 
+- (NSString *) _personForDisplay: (iCalPerson *) person
+{
+  return [NSString stringWithFormat: @"%@ <%@>",
+                  [person cnWithoutQuotes],
+                  [person rfc822Email]];
+}
+
+- (NSString *) attendeeForDisplay
+{
+  return [self _personForDisplay: attendee];
+}
+
 - (void)setItem:(id)_item {
   ASSIGN(self->item, _item);
 }
   return self->item;
 }
 
-- (NSCalendarDate *)startTime {
+- (NSCalendarDate *) startTime
+{
   NSCalendarDate *date;
+  NSTimeZone *timeZone;
   
   date = [[self authorativeEvent] startDate];
-  [date setTimeZone:[[self clientObject] userTimeZone]];
+  timeZone = [[context activeUser] timeZone];
+  [date setTimeZone: timeZone];
+
   return date;
 }
 
-- (NSCalendarDate *)endTime {
+- (NSCalendarDate *) endTime
+{
   NSCalendarDate *date;
+  NSTimeZone *timeZone;
   
   date = [[self authorativeEvent] endDate];
-  [date setTimeZone:[[self clientObject] userTimeZone]];
+  timeZone = [[context activeUser] timeZone];
+  [date setTimeZone: timeZone];
+
   return date;
 }
 
 
 - (id)calendarFolder {
   /* return scheduling calendar of currently logged-in user */
-  return [[[self context] activeUser] schedulingCalendarInContext:
-                                       [self context]];
+  SOGoUser *user;
+  id folder;
+
+  user = [context activeUser];
+  folder = [[user homeFolderInContext: context] lookupName: @"Calendar"
+                                               inContext: context
+                                               acquire: NO];
+
+  return folder;
 }
 
 - (id)storedEventObject {
 /* organizer tracking */
 
 - (NSString *)loggedInUserEMail {
-  return [[[self context] activeUser] email];
+  return [[[self context] activeUser] primaryEmail];
 }
 
 - (iCalEvent *)authorativeEvent {
 
 /* derived fields */
 
-- (NSString *)organizerDisplayName {
+- (NSString *) organizerDisplayName
+{
   iCalPerson *organizer;
-  NSString   *cn;
-  
-  if ((organizer = [[self authorativeEvent] organizer]) != nil) {
-    cn = [organizer valueForKey:@"cnWithoutQuotes"];
-    if ([cn isNotNull] && [cn length] > 0)
-      return cn;
-    
-    cn = [organizer valueForKey:@"rfc822Email"];
-    if ([cn isNotNull] && [cn length] > 0)
-      return cn;
-    
-    return @"[error: unable to derive organizer name]";
-  }
+  NSString *value;
+
+  organizer = [[self authorativeEvent] organizer];
+  if (organizer)
+    value = [self _personForDisplay: organizer];
+  else
+    value = @"[todo: no organizer set, use 'from']";
 
-  return @"[todo: no organizer set, use 'from']";
+  return value;
 }
 
 /* replies */