]> err.no Git - scalable-opengroupware.org/commitdiff
more bulkfetch reorgs
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 31 Jan 2005 01:18:23 +0000 (01:18 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 31 Jan 2005 01:18:23 +0000 (01:18 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@515 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/UIxMailRenderingContext.m
SOGo/UI/Mailer/UIxMailView.m
SOGo/UI/Mailer/Version
SOGo/UI/Mailer/product.plist

index 2adaa8fc330f1bab0a55dba7d023f2ba71401bf1..d1c11d8a2692cbeb66da27d6256135f94b37c2d5 100644 (file)
@@ -1,5 +1,7 @@
 2005-01-31  Helge Hess  <helge.hess@opengroupware.org>
 
+       * SOGoMailObject.m: moved more bulk fetching to SoObject (v0.9.64)
+
        * SOGoMailObject.m: moved in plain/text bulk fetch method from mail
          viewer (since it is general purpose) (v0.9.63)
 
index f497c5fd92978b347d535825af01aba5f6b2232a..148a5a8e1bad2126b2518b54c3f4d90945427805 100644 (file)
@@ -37,7 +37,7 @@
   would address the MIME part 1.2.3 of the mail 12345 in the folder INBOX.
 */
 
-@class NSData, NSString, NSArray, NSCalendarDate, NSException;
+@class NSData, NSString, NSArray, NSCalendarDate, NSException, NSDictionary;
 @class NGImap4Envelope, NGImap4EnvelopeAddress;
 
 @interface SOGoMailObject : SOGoMailBaseObject
@@ -71,6 +71,7 @@
 /* bulk fetching of plain/text content */
 
 - (NSArray *)plainTextContentFetchKeys;
+- (NSDictionary *)fetchPlainTextParts;
 
 /* flags */
 
index 310f09175181abc96bd67d75369dd09505055d30..0935ed303dd5e2c7790570a97b0fabb256456d68 100644 (file)
@@ -365,6 +365,48 @@ static BOOL debugBodyStructure = NO;
   return ma;
 }
 
+- (NSDictionary *)fetchPlainTextParts {
+  NSMutableDictionary *flatContents;
+  unsigned i, count;
+  NSArray  *keys;
+  id result;
+  
+  keys   = [self plainTextContentFetchKeys];
+  [self debugWithFormat:@"fetch keys: %@", keys];
+  
+  result = [self fetchParts:keys];
+  result = [result valueForKey:@"RawResponse"]; // hackish
+  result = [result objectForKey:@"fetch"]; // Note: -valueForKey: doesn't work!
+  
+  count        = [keys count];
+  flatContents = [NSMutableDictionary dictionaryWithCapacity:count];
+  for (i = 0; i < count; i++) {
+    NSString *key;
+    NSData   *data;
+    
+    key  = [keys objectAtIndex:i];
+    data = [[result objectForKey:key] objectForKey:@"data"];
+    
+    if (![data isNotNull]) {
+      [self debugWithFormat:@"got no data fork key: %@", key];
+      continue;
+    }
+
+    if ([key isEqualToString:@"body[text]"])
+      key = @""; // see key collector
+    else if ([key hasPrefix:@"body["]) {
+      NSRange r;
+      
+      key = [key substringFromIndex:5];
+      r   = [key rangeOfString:@"]"];
+      if (r.length > 0)
+       key = [key substringToIndex:r.location];
+    }
+    [flatContents setObject:data forKey:key];
+  }
+  return flatContents;
+}
+
 /* flags */
 
 - (NSException *)addFlags:(id)_flags {
index 33634eae69f8be96da57ccfa0e9f2063e1ba8432..4d027ef17216299c6d52a9c3166353bd9e5708ad 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=63
+SUBMINOR_VERSION:=64
 
 # v0.9.55 requires NGExtensions v4.5.136
 # v0.9.44 requires libNGMime    v4.3.194
index 96c31d01c47eedca2e0a46ae1460f350a7ad19cd..2a11a029f21755873a9915cd527bd3719e3b96c0 100644 (file)
@@ -1,5 +1,8 @@
 2005-01-31  Helge Hess  <helge.hess@opengroupware.org>
 
+       * UIxMailView.m, UIxMailRenderingContext.m: moved more bulk fetching
+         to SoObject (v0.9.86)
+
        * UIxMailView.m: moved plain/text bulkfetch method to SoObjects/Mailer,
          since its general purpose (v0.9.85)
 
index 758b499213a7366332ad27c16aebedb8af9d3177..4f466319d5a2967620ad36670d2b6ef3fecfe884 100644 (file)
 */
 
 #include "UIxMailRenderingContext.h"
+#include <SoObjects/Mailer/SOGoMailObject.h>
 #include "common.h"
 
-@interface WOComponent(Viewer)
-- (NSDictionary *)fetchFlatContents;
-@end
-
 @implementation UIxMailRenderingContext
 
 - (id)initWithViewer:(WOComponent *)_viewer context:(WOContext *)_ctx {
@@ -67,7 +64,8 @@
   if (self->flatContents != nil)
     return [self->flatContents isNotNull] ? self->flatContents : nil;
   
-  self->flatContents = [[self->viewer fetchFlatContents] retain];
+  self->flatContents =
+    [[[self->viewer clientObject] fetchPlainTextParts] retain];
   [self debugWithFormat:@"CON: %@", self->flatContents];
   return self->flatContents;
 }
index 2540560ff4c35249cbfc7799ca30df52de29a642..45198e224522c669f11933a59fce7c7b67a4633f 100644 (file)
   return [[[self clientObject] ccEnvelopeAddresses] count] > 0 ? YES : NO;
 }
 
-/* process body structure */
-
-- (NSDictionary *)fetchFlatContents {
-  NSMutableDictionary *flatContents;
-  unsigned i, count;
-  NSArray  *keys;
-  id result;
-  
-  keys   = [[self clientObject] plainTextContentFetchKeys];
-  [self debugWithFormat:@"fetch keys: %@", keys];
-  
-  result = [[self clientObject] fetchParts:keys];
-  result = [result valueForKey:@"RawResponse"]; // hackish
-  result = [result objectForKey:@"fetch"]; // Note: -valueForKey: doesn't work!
-  
-  count        = [keys count];
-  flatContents = [NSMutableDictionary dictionaryWithCapacity:count];
-  for (i = 0; i < count; i++) {
-    NSString *key;
-    NSData   *data;
-    
-    key  = [keys objectAtIndex:i];
-    data = [[result objectForKey:key] objectForKey:@"data"];
-    
-    if (![data isNotNull]) {
-      [self debugWithFormat:@"got no data fork key: %@", key];
-      continue;
-    }
-
-    if ([key isEqualToString:@"body[text]"])
-      key = @""; // see key collector
-    else if ([key hasPrefix:@"body["]) {
-      NSRange r;
-      
-      key = [key substringFromIndex:5];
-      r   = [key rangeOfString:@"]"];
-      if (r.length > 0)
-       key = [key substringToIndex:r.location];
-    }
-    [flatContents setObject:data forKey:key];
-  }
-  return flatContents;
-}
-
 /* viewers */
 
 - (id)contentViewerComponent {
     return [NSException exceptionWithHTTPStatus:404 /* Not Found */
                        reason:@"did not find specified message!"];
   }
-#if 0
-  [self logWithFormat:@"FETCH BODY PARTS: %@", 
-       [[self clientObject] plainTextContentFetchKeys]];
-  [self logWithFormat:@"CORE: %@", [self fetchFlatContents]];
-#endif
   return self;
 }
 
index 986ed409bda7f4b3068999ddaf60d5819cf0d3cd..22c1ab4783c1f9a204602ce84360e2c407ca47cd 100644 (file)
@@ -1,7 +1,8 @@
 # version file
 
-SUBMINOR_VERSION:=85
+SUBMINOR_VERSION:=86
 
+# v0.9.86 requires SoObjects/Mailer v0.9.64
 # 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
index 1a124161a28cda63eaeb5a9c3f711a412f344ff0..1b9774ce4664abb163b753b526a2358ac6969cf4 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";   },
             ),