]> err.no Git - scalable-opengroupware.org/commitdiff
moved plain/text bulk fetches from UI to SoObject
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 31 Jan 2005 00:58:37 +0000 (00:58 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 31 Jan 2005 00:58:37 +0000 (00:58 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@514 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/SoObjects/Mailer/ChangeLog
SOGo/SoObjects/Mailer/SOGoMailObject.h
SOGo/SoObjects/Mailer/SOGoMailObject.m
SOGo/SoObjects/Mailer/Version
SOGo/UI/Mailer/ChangeLog
SOGo/UI/Mailer/UIxMailView.m
SOGo/UI/Mailer/Version
SOGo/UI/Mailer/product.plist

index 84c84130ddb1b9e920971fd888e9736ec4b1198d..2adaa8fc330f1bab0a55dba7d023f2ba71401bf1 100644 (file)
@@ -1,5 +1,8 @@
 2005-01-31  Helge Hess  <helge.hess@opengroupware.org>
 
+       * SOGoMailObject.m: moved in plain/text bulk fetch method from mail
+         viewer (since it is general purpose) (v0.9.63)
+
        * SOGoMailObject.m: properly handle part lookup in the context of
          embedded message/rfc822 content (v0.9.62)
 
index eea288f18fe5a2759a0d66d4814aa7d2eff0e46f..f497c5fd92978b347d535825af01aba5f6b2232a 100644 (file)
 - (NSData *)content;
 - (NSString *)contentAsString;
 
+/* bulk fetching of plain/text content */
+
+- (NSArray *)plainTextContentFetchKeys;
+
 /* flags */
 
 - (NSException *)addFlags:(id)_f;
index 3ea384f65fb9043480eea6fd4bd3fed6bf578874..310f09175181abc96bd67d75369dd09505055d30 100644 (file)
@@ -288,6 +288,83 @@ static BOOL debugBodyStructure = NO;
   return [s autorelease];
 }
 
+/* bulk fetching of plain/text content */
+
+- (BOOL)shouldFetchPartOfType:(NSString *)_type subtype:(NSString *)_subtype {
+  _type    = [_type    lowercaseString];
+  _subtype = [_subtype lowercaseString];
+  
+  if ([_type isEqualToString:@"text"])
+    return [_subtype isEqualToString:@"plain"];
+  return NO;
+}
+
+- (void)addRequiredKeysOfStructure:(id)_info path:(NSString *)_p
+  toArray:(NSMutableArray *)_keys
+{
+  NSArray  *parts;
+  unsigned i, count;
+  BOOL fetchPart;
+  id body;
+  
+  fetchPart = [self shouldFetchPartOfType:[_info valueForKey:@"type"]
+                   subtype:[_info valueForKey:@"subtype"]];
+  if (fetchPart) {
+    NSString *k;
+    
+    if ([_p length] > 0) {
+      k = [[@"body[" stringByAppendingString:_p] stringByAppendingString:@"]"];
+    }
+    else {
+      /*
+       for some reason we need to add ".TEXT" for plain text stuff on root
+       entities?
+       TODO: check with HTML
+      */
+      k = @"body[text]";
+    }
+    [_keys addObject:k];
+  }
+  
+  /* recurse */
+  
+  parts = [_info objectForKey:@"parts"];
+  for (i = 0, count = [parts count]; i < count; i++) {
+    NSString *sp;
+    id childInfo;
+    
+    sp = [_p length] > 0
+      ? [_p stringByAppendingFormat:@".%d", i + 1]
+      : [NSString stringWithFormat:@"%d", i + 1];
+    
+    childInfo = [parts objectAtIndex:i];
+    
+    [self addRequiredKeysOfStructure:childInfo path:sp toArray:_keys];
+  }
+  
+  /* check body */
+  
+  if ((body = [_info objectForKey:@"body"]) != nil) {
+    NSString *sp;
+
+    sp = [[body valueForKey:@"type"] lowercaseString];
+    if ([sp isEqualToString:@"multipart"])
+      sp = _p;
+    else
+      sp = [_p length] > 0 ? [_p stringByAppendingString:@".1"] : @"1";
+    [self addRequiredKeysOfStructure:body path:sp toArray:_keys];
+  }
+}
+
+- (NSArray *)plainTextContentFetchKeys {
+  NSMutableArray *ma;
+  
+  ma = [NSMutableArray arrayWithCapacity:4];
+  [self addRequiredKeysOfStructure:[[self clientObject] bodyStructure]
+       path:@"" toArray:ma];
+  return ma;
+}
+
 /* flags */
 
 - (NSException *)addFlags:(id)_flags {
index 9e9133ebb64a1bf5ce320e75811a7f61daa6b887..33634eae69f8be96da57ccfa0e9f2063e1ba8432 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=62
+SUBMINOR_VERSION:=63
 
 # v0.9.55 requires NGExtensions v4.5.136
 # v0.9.44 requires libNGMime    v4.3.194
index 0288835c3d2a5130ff8351e6632ed4b6545f5736..96c31d01c47eedca2e0a46ae1460f350a7ad19cd 100644 (file)
@@ -1,5 +1,8 @@
 2005-01-31  Helge Hess  <helge.hess@opengroupware.org>
 
+       * UIxMailView.m: moved plain/text bulkfetch method to SoObjects/Mailer,
+         since its general purpose (v0.9.85)
+
        * v0.9.84
 
        * UIxMailView.m: properly recurse into message/rfc822 bodies for flat
index ec6754fd989d8da5abf288ea174d01ee18920145..2540560ff4c35249cbfc7799ca30df52de29a642 100644 (file)
 
 /* process body structure */
 
-- (BOOL)shouldFetchPartOfType:(NSString *)_type subtype:(NSString *)_subtype {
-  _type    = [_type    lowercaseString];
-  _subtype = [_subtype lowercaseString];
-  
-  if ([_type isEqualToString:@"text"])
-    return [_subtype isEqualToString:@"plain"];
-  return NO;
-}
-
-- (void)addRequiredKeysOfStructure:(id)_info path:(NSString *)_p
-  toArray:(NSMutableArray *)_keys
-{
-  NSArray  *parts;
-  unsigned i, count;
-  BOOL fetchPart;
-  id body;
-  
-  fetchPart = [self shouldFetchPartOfType:[_info valueForKey:@"type"]
-                   subtype:[_info valueForKey:@"subtype"]];
-  if (fetchPart) {
-    NSString *k;
-    
-    if ([_p length] > 0) {
-      k = [[@"body[" stringByAppendingString:_p] stringByAppendingString:@"]"];
-    }
-    else {
-      /*
-       for some reason we need to add ".TEXT" for plain text stuff on root
-       entities?
-       TODO: check with HTML
-      */
-      k = @"body[text]";
-    }
-    [_keys addObject:k];
-  }
-  
-  /* recurse */
-  
-  parts = [_info objectForKey:@"parts"];
-  for (i = 0, count = [parts count]; i < count; i++) {
-    NSString *sp;
-    id childInfo;
-    
-    sp = [_p length] > 0
-      ? [_p stringByAppendingFormat:@".%d", i + 1]
-      : [NSString stringWithFormat:@"%d", i + 1];
-    
-    childInfo = [parts objectAtIndex:i];
-    
-    [self addRequiredKeysOfStructure:childInfo path:sp toArray:_keys];
-  }
-  
-  /* check body */
-  
-  if ((body = [_info objectForKey:@"body"]) != nil) {
-    NSString *sp;
-
-    sp = [[body valueForKey:@"type"] lowercaseString];
-    if ([sp isEqualToString:@"multipart"])
-      sp = _p;
-    else
-      sp = [_p length] > 0 ? [_p stringByAppendingString:@".1"] : @"1";
-    [self addRequiredKeysOfStructure:body path:sp toArray:_keys];
-  }
-}
-
-- (NSArray *)contentFetchKeys {
-  NSMutableArray *ma;
-  
-  ma = [NSMutableArray arrayWithCapacity:4];
-  [self addRequiredKeysOfStructure:[[self clientObject] bodyStructure]
-       path:@"" toArray:ma];
-  return ma;
-}
-
 - (NSDictionary *)fetchFlatContents {
   NSMutableDictionary *flatContents;
   unsigned i, count;
   NSArray  *keys;
   id result;
   
-  keys   = [self contentFetchKeys];
+  keys   = [[self clientObject] plainTextContentFetchKeys];
   [self debugWithFormat:@"fetch keys: %@", keys];
   
   result = [[self clientObject] fetchParts:keys];
                        reason:@"did not find specified message!"];
   }
 #if 0
-  [self logWithFormat:@"FETCH BODY PARTS: %@", [self contentFetchKeys]];
+  [self logWithFormat:@"FETCH BODY PARTS: %@", 
+       [[self clientObject] plainTextContentFetchKeys]];
   [self logWithFormat:@"CORE: %@", [self fetchFlatContents]];
 #endif
   return self;
index 73d914ae491ea2de0ad4bb940188f0aace8fe61d..986ed409bda7f4b3068999ddaf60d5819cf0d3cd 100644 (file)
@@ -1,7 +1,8 @@
 # version file
 
-SUBMINOR_VERSION:=84
+SUBMINOR_VERSION:=85
 
+# v0.9.85 requires SoObjects/Mailer v0.9.63
 # v0.9.84 requires libNGMime        v4.5.209
 # v0.9.81 requires SoObjects/Sieve  v0.9.5
 # v0.9.80 requires SoObjects/Mailer v0.9.59
index 1b9774ce4664abb163b753b526a2358ac6969cf4..1a124161a28cda63eaeb5a9c3f711a412f344ff0 100644 (file)
                 cssClass = "tbicon_compose"; label = "Write"; },
             ),
             ( // second group
-/* TODO: enable when implemented
+///* TODO: enable when implemented
               { link = "reply"; 
                 cssClass = "tbicon_reply";    label = "Reply";     },
               { link = "replyall"; 
                 cssClass = "tbicon_replyall"; label = "Reply All"; },
-*/
+//*/
               { link = "forward"; 
                 cssClass = "tbicon_forward";  label = "Forward";   },
             ),