]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1096 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 3 Jul 2007 16:02:27 +0000 (16:02 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 3 Jul 2007 16:02:27 +0000 (16:02 +0000)
ChangeLog
OGoContentStore/appointment.ocs
OGoContentStore/iCalRepeatableEntityObject+OCS.m
SOPE/NGCards/CardElement.m
SOPE/NGCards/ChangeLog
SOPE/NGCards/iCalRecurrenceRule.m

index fdaa48b53d4c3a5efa860a1ac46bee4f89f21eb7..7eada783befad555aef3f3c04aa9138a759617b2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-07-03  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
+       * OGoContentStore/iCalRepeatableEntityObject+OCS.m
+       ([iCalRepeatableEntityObject -cycleInfo]): no longer take the
+       leading tagname into account when serializing the element values.
+
        * Main/SOGoProductLoader.m: only load bundle directories ending
        with the "SOGo" extension.
 
index 966680e4f71fe6eea86fe40413393da1cf9ca8d8..0b6c1e7a33c03870d48565f2ac5ed7ae5bbe07d4 100644 (file)
@@ -25,7 +25,7 @@
       allowsNull = YES;
     },
     {
-      columnName = cylceenddate;
+      columnName = cycleenddate;
       sqlType    = "INT";
       allowsNull = YES;
     },
index fe557b6705e9151a947e291b4e5a407b8e820e68..5491d12f9c1d8c3be0d2bb3165ce007d2fc092de 100644 (file)
 
 @implementation iCalRepeatableEntityObject (OCS)
 
-- (NSString *)cycleInfo {
-  NSMutableDictionary *cycleInfo;
-  NSMutableArray      *ma;
-  NSArray             *a;
-  unsigned            count;
+- (NSArray *) _indexedRules: (NSArray *) rules
+{
+  NSMutableArray *ma;
+  unsigned int i, count;
+  NSString *valuesString;
 
-  if (![self isRecurrent])
-    return nil;
+  ma = nil;
+  count = [rules count];
+  if (count > 0)
+    {
+      ma = [NSMutableArray arrayWithCapacity:count];
+      for (i = 0; i < count; i++)
+       {
+         iCalRecurrenceRule *rule;
+         
+         rule = [rules objectAtIndex:i];
+#warning we could return an NSArray instead and feed it as such to the iCalRecurrenceRule in SOGoAppointmentFolder...
+         valuesString = [[rule values] componentsJoinedByString: @";"];
+         [ma addObject: valuesString];
+       }
+    }
 
-  cycleInfo = [NSMutableDictionary dictionaryWithCapacity:3];
+  return ma;
+}
 
-  /* rules */
-  a     = [self recurrenceRules];
-  count = [a count];
-  if (count > 0) {
-    unsigned i;
+- (NSString *) cycleInfo
+{
+  NSArray *rules;
+  NSString *value;
+  NSMutableDictionary *cycleInfo;
 
-    ma = [NSMutableArray arrayWithCapacity:count];
-    for (i = 0; i < count; i++) {
-      iCalRecurrenceRule *rule;
-      
-      rule = [a objectAtIndex:i];
-      [ma addObject: [rule versitString]];
-    }
-    [cycleInfo setObject:ma forKey:@"rules"];
-  }
+  if ([self isRecurrent])
+    {
+      cycleInfo = [NSMutableDictionary dictionaryWithCapacity: 3];
 
-  /* exception rules */
-  a     = [self exceptionRules];
-  count = [a count];
-  if (count > 0) {
-    unsigned i;
-    
-    ma = [NSMutableArray arrayWithCapacity:count];
-    for (i = 0; i < count; i++) {
-      iCalRecurrenceRule *rule;
+      /* rules */
+      rules = [self _indexedRules: [self recurrenceRules]];
+      if (rules)
+       [cycleInfo setObject: rules forKey: @"rules"];
       
-      rule = [a objectAtIndex:i];
-      [ma addObject: [rule versitString]];
-    }
-    [cycleInfo setObject:ma forKey:@"exRules"];
-  }
-  
-  /* exception dates */
-  a     = [self exceptionDates];
-  count = [a count];
-  if (count > 0) {
-    unsigned i;
-    
-    ma = [NSMutableArray arrayWithCapacity:count];
-    for (i = 0; i < count; i++) {
-      NSCalendarDate *date;
+      rules = [self _indexedRules: [self exceptionRules]];
+      if (rules)
+       [cycleInfo setObject: rules forKey: @"exRules"];
       
-      date = [a objectAtIndex:i];
-      [ma addObject:[date icalString]];
+      rules = [self _indexedRules: [self exceptionDates]];
+      if (rules)
+       [cycleInfo setObject: rules forKey: @"exDates"];
+
+      value = [cycleInfo description];
     }
-    [cycleInfo setObject:ma forKey:@"exDates"];
-  }
+  else
+    value = nil;
 
-  return [cycleInfo description];
+  return value;
 }
 @end
index 7af7e19bd3fb8afc29a9fbbe45bcc404e1f043ca..f715de7661ac5d4b673a92be8a32d2666b0c7b86 100644 (file)
   string = [renderer render: self];
   [renderer release];
 
-  return string;
+  return (([string length] > 1)
+         ? [string substringToIndex: [string length] - 2]
+         : @"");
 }
 
 - (CardElement *) elementWithClass: (Class) elementClass
index 0c04752c43e3d855327068a31c41c2468a548952..1431e6f254646365177dac0a7bd1b7ac95d8ba73 100644 (file)
@@ -1,3 +1,16 @@
+2007-07-03  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * iCalRecurrenceRule.m ([iCalRecurrenceRule
+       +recurrenceRuleWithICalRepresentation:_iCalRep]): the
+       representation is generally a series of values separated by a ";".
+       Therefore we need to split those values and feed them one by one.
+       ([iCalRecurrenceRule -weekDayFromICalRepresentation:_day]): return
+       -1 instead of raising an exception if the week day could not be
+       recognized.
+
+       * CardElement.m ([CardElement -versitString]): remove the ending
+       "\r\n".
+
 2007-06-12  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * iCalDateTime.m ([iCalDateTime
index 9842dd45534197a61d9eb13083dda89c641276df..fe66f48cc9662a7affc43a221581e8d576f97dda 100644 (file)
 
 + (id) recurrenceRuleWithICalRepresentation: (NSString *) _iCalRep
 {
-  return [self simpleElementWithTag: @"rrule" value: _iCalRep];
+  iCalRecurrenceRule *rule;
+
+  rule = [self elementWithTag: @"rrule"];
+  if ([_iCalRep length] > 0)
+    [rule addValues: [_iCalRep componentsSeparatedByString: @";"]];
+
+  return rule;
 }
 
 - (id) init
   return mask;
 }
 
-#warning this is fucked up
+#warning this is bad
 - (int) byDayOccurence1
 {
   return 0;
       if (c1 == 'u' || c1 == 'U') return iCalWeekDaySunday;
     }
   }
-  
-  // TODO: do not raise but rather return an error value?
-  [NSException raise:NSGenericException
-              format:@"Incorrect weekDay '%@' specified!", _day];
-  return iCalWeekDayMonday; /* keep compiler happy */
+
+  return -1;
+//   // TODO: do not raise but rather return an error value?
+//   [NSException raise:NSGenericException
+//            format:@"Incorrect weekDay '%@' specified!", _day];
+//   return iCalWeekDayMonday; /* keep compiler happy */
 }
 
 - (NSString *) iCalRepresentationForWeekDay: (iCalWeekDay) _weekDay