]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1329 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 21 Jan 2008 16:36:15 +0000 (16:36 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 21 Jan 2008 16:36:15 +0000 (16:36 +0000)
ChangeLog
SOPE/GDLContentStore/ChangeLog
SOPE/GDLContentStore/GCSFolderManager.m
SoObjects/Contacts/SOGoFolder+CardDAV.m

index 3b2992c8cc9588356d7a7b5a74f951b08b247c6d..413fc320f85b0de56f58391de30ccf9a5d276708 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-18  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Contacts/SOGoFolder+CardDAV.m ([SOGoFolder
+       -davAddressbookQuery:queryContext]): when empty values are fed to
+       SOGo, their dictionary should be explicitly set to nil.
+
 2008-01-16  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * SoObjects/SOGo/SOGoCache.m ([SOGoCache
index e3f9381551094d51febeb33fb1985ef876c12405..fd54b2858a4a8699cbd29d5e5f1fafa4cb22e2ed 100644 (file)
@@ -1,3 +1,10 @@
+2008-01-21  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * GCSFolderManager.m ([GCSFolderManager
+       -baseTableNameWithUID:_uid]): the id was too long for the quick
+       tables, we reduce the length of the increment string to 3
+       characters instead of 8.
+
 2008-01-16  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
index 438145a74957ba3542598ab12b0e28932abecabf..184813849314deeb7c0ce858ca220070fe3954cc 100644 (file)
@@ -627,7 +627,8 @@ static NSCharacterSet *asciiAlphaNumericCS  = nil;
   return [self folderForRecord:record];
 }
 
-- (NSString *)baseTableNameWithUID:(NSString *)_uid {
+- (NSString *) baseTableNameWithUID: (NSString *) _uid
+{
   unichar currentChar;
   unsigned int count, max, done;
   NSMutableString *newUID;
@@ -649,8 +650,8 @@ static NSCharacterSet *asciiAlphaNumericCS  = nil;
     }
   randInc++;
 
-  return [NSString stringWithFormat: @"%@%.8x%.8x",
-                  newUID, randInc, (unsigned int) rand()];
+  return [NSString stringWithFormat: @"%@%.3x%.8x",
+                  newUID, randInc & 0xfff, (unsigned int) rand()];
 }
 
 - (NSException *)createFolderOfType:(NSString *)_type
index 18b739de2fb23312d13bc567d96694cc3301bbd8..8d2fb90ee47edf3e81d9865059c3103305cf65db 100644 (file)
@@ -45,9 +45,9 @@
   NSString *baseURL;
   SOGoObject <SOGoContactFolder> *o;
 
-  o = (id<SOGoContactFolder>)self;
+  o = (id <SOGoContactFolder>) self;
   baseURL = [o baseURLInContext: localContext];
-  
+
   max = [filters count];
   for (count = 0; count < max; count++)
     {
                   objectEnumerator];
       
       while ((contact = [contacts nextObject]))
-      {
        [o appendObject: contact
           withBaseURL: baseURL
           toREPORTResponse: response];
-        }
     }
 }
 
 - (BOOL) _isValidFilter: (NSString *) theString
 {
-  if ([theString caseInsensitiveCompare: @"sn"] == NSOrderedSame)
-    return YES;
-
-  if ([theString caseInsensitiveCompare: @"givenname"] == NSOrderedSame)
-    return YES;
+  NSString *newString;
 
-  if ([theString caseInsensitiveCompare: @"mail"] == NSOrderedSame)
-    return YES;
+  newString = [theString lowercaseString];
 
-  if ([theString caseInsensitiveCompare: @"telephonenumber"] == NSOrderedSame)
-    return YES;
-
-  return NO;
+  return ([theString isEqualToString: @"sn"]
+         || [theString isEqualToString: @"givenname"]
+         || [theString isEqualToString: @"mail"]
+         || [theString isEqualToString: @"telephonenumber"]);
 }
 
 - (NSDictionary *) _parseContactFilter: (id <DOMElement>) filterElement
   id <DOMNode> parentNode;
   id <DOMNodeList> ranges;
 
+  filterData = nil;
+
   parentNode = [filterElement parentNode];
 
-  if ([[parentNode tagName] isEqualToString: @"filter"] &&
-      [self _isValidFilter: [filterElement attribute: @"name"]])
+  if ([[parentNode tagName] isEqualToString: @"filter"]
+      && [self _isValidFilter: [filterElement attribute: @"name"]])
     {
       ranges = [filterElement getElementsByTagName: @"text-match"];
-     
-      if ([(NSArray *)ranges count] && [(NSArray *)[[ranges objectAtIndex: 0] childNodes] count])
+
+      if ([(NSArray *) ranges count]
+         && [(NSArray *) [[ranges objectAtIndex: 0] childNodes] count])
        {
          filterData = [NSMutableDictionary new];
          [filterData autorelease];
                      forKey: [filterElement attribute: @"name"]];
        }
     }
-  else
-    filterData = nil;
 
   return filterData;
 }
 - (NSArray *) _parseContactFilters: (id <DOMElement>) parentNode
 {
   NSEnumerator *children;
-  id<DOMElement> node;
+  id <DOMElement> node;
   NSMutableArray *filters;
   NSDictionary *filter;
 
-  filters = [[NSMutableArray new] autorelease];
+  filters = [NSMutableArray array];
 
   children = [[parentNode getElementsByTagName: @"prop-filter"]
               objectEnumerator];
-
-  node = [children nextObject];
-
-  while (node)
+  while ((node = [children nextObject]))
     {
       filter = [self _parseContactFilter: node];
       if (filter)
         [filters addObject: filter];
-      node = [children nextObject];
     }
 
   return filters;