]> err.no Git - scalable-opengroupware.org/blobdiff - UI/Scheduler/UIxTaskProposal.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1163 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / Scheduler / UIxTaskProposal.m
index c558ccdd29008634ce91f0e2aff390f16cb607a1..c472684b8ee56029b17b3dfebfcc6bd876266a48 100644 (file)
 */
 // $Id: UIxTaskEditor.m 181 2004-08-11 15:13:25Z helge $
 
-#include <SOGoUI/UIxComponent.h>
+#import <Foundation/NSCalendarDate.h>
+#import <Foundation/NSNull.h>
+#import <Foundation/NSValue.h>
+
+#import <NGExtensions/NGCalendarDateRange.h>
+#import <NGExtensions/NSCalendarDate+misc.h>
+#import <NGCards/iCalPerson.h>
+
+#import <SoObjects/Appointments/SOGoAppointmentFolder.h>
+#import <SoObjects/Appointments/SOGoFreeBusyObject.h>
+#import <SOGoUI/UIxComponent.h>
 
 @interface UIxTaskProposal : UIxComponent
 {
 - (void)setICalPersons:(NSArray *)_ps asQueryParameter:(NSString *)_qp;
 @end
 
-#include <SoObjects/Appointments/SOGoAppointmentFolder.h>
-#include <SoObjects/Appointments/SOGoFreeBusyObject.h>
-#include <NGExtensions/NGCalendarDateRange.h>
-#include <NGCards/NGCards.h>
-#include "common.h"
-
 @implementation UIxTaskProposal
 
 - (void)dealloc {
   [self setStartDateMonth:[NSNumber numberWithInt:[_date monthOfYear]]];
   [self setStartDateYear:[NSNumber numberWithInt:[_date yearOfCommonEra]]];
 }
-- (NSCalendarDate *)startDate {
+
+- (NSCalendarDate *) startDate
+{
+  NSTimeZone *timeZone;
+
+  timeZone = [[context activeUser] timeZone];
+  
   return [NSCalendarDate dateWithYear:[[self startDateYear] intValue]
                         month:[[self startDateMonth] intValue]
                         day:[[self startDateDay] intValue]
                         hour:[[self startDateHour] intValue]
                         minute:[[self startDateMinute] intValue]
                         second:0
-                        timeZone:[[self clientObject] userTimeZone]];
+                        timeZone: timeZone];
 }
-- (void)setEndDate:(NSCalendarDate *)_date {
+
+- (void) setEndDate: (NSCalendarDate *) _date
+{
   [self setEndDateHour:[NSNumber numberWithInt:[_date hourOfDay]]];
   [self setEndDateMinute:[NSNumber numberWithInt:[_date minuteOfHour]]];
   [self setEndDateDay:[NSNumber numberWithInt:[_date dayOfMonth]]];
   [self setEndDateMonth:[NSNumber numberWithInt:[_date monthOfYear]]];
   [self setEndDateYear:[NSNumber numberWithInt:[_date yearOfCommonEra]]];
 }
-- (NSCalendarDate *)endDate {
+
+- (NSCalendarDate *) endDate
+{
+  NSTimeZone *timeZone;
+
+  timeZone = [[context activeUser] timeZone];
+
   return [NSCalendarDate dateWithYear:[[self endDateYear] intValue]
                         month:[[self endDateMonth] intValue]
                         day:[[self endDateDay] intValue]
                         hour:[[self endDateHour] intValue]
                         minute:[[self endDateMinute] intValue]
                         second:59
-                        timeZone:[[self clientObject] userTimeZone]];
+                        timeZone: timeZone];
 }
 
 - (void)setDuration:(id)_duration {
   return ma;
 }
 
-- (NSArray *)days {
+- (NSArray *) days
+{
   // TODO: from startdate to enddate
   NSMutableArray *ma;
-  NSCalendarDate *base, *stop, *current;
-  
-  base = [NSCalendarDate dateWithYear:[[self startDateYear] intValue]
-                        month:[[self startDateMonth] intValue]
-                        day:[[self startDateDay] intValue]
-                        hour:12 minute:0 second:0
-                        timeZone:[[self clientObject] userTimeZone]];
-  stop = [NSCalendarDate dateWithYear:[[self endDateYear] intValue]
-                        month:[[self endDateMonth] intValue]
-                        day:[[self endDateDay] intValue]
-                        hour:12 minute:0 second:0
-                        timeZone:[[self clientObject] userTimeZone]];
+  NSCalendarDate *base, *stop, *current;  
+  NSTimeZone *timeZone;
+
+  timeZone = [[context activeUser] timeZone];
+  base = [NSCalendarDate dateWithYear: [[self startDateYear] intValue]
+                        month: [[self startDateMonth] intValue]
+                        day: [[self startDateDay] intValue]
+                        hour: 12 minute: 0 second: 0
+                        timeZone: timeZone];
+  stop = [NSCalendarDate dateWithYear: [[self endDateYear] intValue]
+                        month: [[self endDateMonth] intValue]
+                        day: [[self endDateDay] intValue]
+                        hour: 12 minute: 0 second: 0
+                        timeZone: timeZone];
   
   ma = [NSMutableArray arrayWithCapacity:16];
   
   current = base;
   while ([current compare:stop] != NSOrderedDescending) {
-    [current setTimeZone:[[self clientObject] userTimeZone]];
+    [current setTimeZone: timeZone];
     [ma addObject:current];
     
     /* Note: remember the timezone behaviour of the method below! */
     current = [current dateByAddingYears:0 months:0 days:1];
   }
+
   return ma;
 }
 
   return idx == NSNotFound ? YES : NO;
 }
 
-- (BOOL)isSlotRangeGreen:(NGCalendarDateRange *)_slotRange {
+- (BOOL)isSlotRangeGreen: (NGCalendarDateRange *) _slotRange
+{
   NGCalendarDateRange *aptRange;
   NSCalendarDate *aptStartDate, *aptEndDate;
+  NSTimeZone *timeZone;
 
   if (_slotRange == nil)
     return NO;
-  
+
+  timeZone = [[context activeUser] timeZone];  
   /* calculate the interval requested by the user (can be larger) */
 
   aptStartDate = [_slotRange startDate];
   // TODO: gives warning on MacOSX
-  aptEndDate   = [[NSCalendarDate alloc] initWithTimeIntervalSince1970:
-                                          [aptStartDate timeIntervalSince1970]
-                                        + [self durationAsTimeInterval]];
-  [aptStartDate setTimeZone:[[self clientObject] userTimeZone]];
-  [aptEndDate   setTimeZone:[[self clientObject] userTimeZone]];
-  aptRange = [NGCalendarDateRange calendarDateRangeWithStartDate:aptStartDate
-                                 endDate:aptEndDate];
-  [aptEndDate release]; aptEndDate = nil;
+  aptEndDate
+    = [[NSCalendarDate alloc]
+       initWithTimeIntervalSince1970: ([aptStartDate timeIntervalSince1970]
+                                       + [self durationAsTimeInterval])];
+  [aptStartDate setTimeZone: timeZone];
+  [aptEndDate setTimeZone: timeZone];
+  aptRange = [NGCalendarDateRange calendarDateRangeWithStartDate: aptStartDate
+                                 endDate: aptEndDate];
+  [aptEndDate release];
+  aptEndDate = nil;
   
-  return [self isRangeGreen:aptRange];
+  return [self isRangeGreen: aptRange];
 }
 
 - (BOOL)isFirstHalfGreen {