]> err.no Git - scalable-opengroupware.org/commitdiff
use new clientObject share API in UI
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 11:17:27 +0000 (11:17 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 11:17:27 +0000 (11:17 +0000)
prepared shared-mail account for special INBOX

git-svn-id: http://svn.opengroupware.org/SOGo/trunk@748 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/SoObjects/Mailer/ChangeLog
SOGo/SoObjects/Mailer/SOGoSharedMailAccount.m
SOGo/SoObjects/Mailer/Version
SOGo/UI/MailerUI/ChangeLog
SOGo/UI/MailerUI/UIxMailAccountView.m
SOGo/UI/MailerUI/Version
SOGo/UI/Templates/ChangeLog
SOGo/UI/Templates/UIxMailAccountView.wox

index 3bbbb7076570b761529a5d3999fb56e497dcf403..2e6633261cb045f51319f6ad45f165c6415f1eb0 100644 (file)
@@ -1,5 +1,8 @@
 2005-07-14  Helge Hess  <helge.hess@opengroupware.org>
 
+       * SOGoSharedMailAccount.m: prepared code to support a shared INBOX
+         folder (v0.9.101)
+
        * v0.9.100
        
        * SOGoMailAccounts.m: create an object of class SOGoSharedMailAccount
@@ -9,7 +12,7 @@
          mail accounts
        
        * added SOGoSharedMailAccount class for shared mailboxes
-
+       
 2005-07-12  Helge Hess  <helge.hess@opengroupware.org>
 
        * SOGoMailAccounts.m: use new SoUser API instead of AgenorUserManager
index 7c2648551a2d9d5370b463db50549c500208208a..eb509f7f20d0ccff3cce636829eb417d65c6b013 100644 (file)
@@ -63,13 +63,18 @@ static NSString *otherUsersFolderName = @""; // TODO: add English default
 /* listing the available folders */
 
 - (NSArray *)toManyRelationshipKeys {
-  NSArray *a, *b;
+  NSMutableArray *m;
+  NSArray *b;
   
-  a = [self additionalRootFolderNames];
-  // TODO: we also need to add the INBOX here (the 'real' INBOX is the root)
+  m = [NSMutableArray arrayWithCapacity:16];
   
-  b = [[self imap4Connection] subfoldersForURL:[self imap4URL]];
-  return [b count] > 0 ? [b arrayByAddingObjectsFromArray:a] : a;
+  [m addObject:@"INBOX"]; /* special for shared, see -lookupInboxFolder:.. */
+  
+  if ((b = [[self imap4Connection] subfoldersForURL:[self imap4URL]]) != nil)
+    [m addObjectsFromArray:b];
+  
+  [m addObjectsFromArray:[self additionalRootFolderNames]];
+  return m;
 }
 
 /* IMAP4 locator */
@@ -85,4 +90,32 @@ static NSString *otherUsersFolderName = @""; // TODO: add English default
   return s;
 }
 
+/* lookup */
+
+- (id)lookupInboxFolder:(NSString *)_key inContext:(id)_ctx {
+  /*
+    Note: We have a choice: Cyrus does both, it gives the user an own
+          INBOX folder, but it also provides access to the mailbox INBOX
+         folder.
+         However the mailbox INBOX folder is NOT returned as an "INBOX"
+         subcollection as usual, but is the primary mailbox name.
+    Eg:
+      2 list "*" "*"
+      * LIST (\Noinferiors) "/" "INBOX"
+      * LIST (\HasChildren) "/" "Boite partag&AOk-e/alienor.a"
+    
+    The first INBOX is auto-assigned for the user by Cyrus, the second entry
+    is actually the INBOX of the mailbox itself (alienor.a).
+  */
+  [self logWithFormat:@"TODO: return shared Inbox folder ..."];
+  return nil;
+}
+
+- (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag {
+  if ([_key isEqualToString:@"INBOX"])
+    return [self lookupInboxFolder:_key inContext:_ctx];
+  
+  return [super lookupName:_key inContext:_ctx acquire:_flag];
+}
+
 @end /* SOGoSharedMailAccount */
index 4b71515e31e07e9840d54c9dec607d25296ea6bf..578860074a7ea0a74dd93e862fd9259f1f711e40 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=100
+SUBMINOR_VERSION:=101
 
 # v0.9.96 requires libNGMime       v4.5.223
 # v0.9.91 requires libNGMime       v4.5.222
index afe4b66a8c2fd24f63beff507fa4a7744625f771..4dcd5af91f7ac0fd3ddeeebaf9bd44e643c2d670 100644 (file)
@@ -1,3 +1,9 @@
+2005-07-14  Helge Hess  <helge.hess@opengroupware.org>
+
+       * UIxMailAccountView.m: removed methods to detect whether the
+         clientObject is a shared account (done by the clientObject itself)
+         (v0.9.140)
+
 2005-07-12  Helge Hess  <helge.hess@opengroupware.org>
 
        * UIxMailEditor.m: perform some validation plus error handling prior
index d4840521d0b95c8aabb20a9419f70dcaf523adca..8042d15a1e82140775ed7f96088e42e40a5264e5 100644 (file)
   return [[[self clientObject] nameInContainer] titleForSOGoIMAP4String];
 }
 
-- (BOOL)isShareAccount {
-  return [[[self clientObject] nameInContainer] rangeOfString:@".-."].length >0
-    ? YES : NO;
-}
-
-- (NSString *)fullSharePath {
-  NSRange  r;
-  NSString *s;
-  
-  s = [[self clientObject] nameInContainer];
-  r = [s rangeOfString:@".-."];
-  if (r.length == 0) return nil;
-  
-  s = [s substringFromIndex:(r.location + r.length)];
-  r = [s rangeOfString:@"@"];
-  if (r.length == 0) return s;
-  
-  return [s substringToIndex:r.location];
-}
-
 - (NSString *)panelTitle {
   NSString *s;
   
index 72fcdb5ca98fe1687fbe8eda27776319bac62a15..ce465e601f05f746b7e5c51fadc03a16bfdb217d 100644 (file)
@@ -1,7 +1,8 @@
 # version file
 
-SUBMINOR_VERSION:=139
+SUBMINOR_VERSION:=140
 
+# v0.9.140 requires SoObjects/Mailer v0.9.100
 # v0.9.134 requires libSOGo          v0.9.41
 # v0.9.100 requires libNGMime        v4.5.213
 # v0.9.99  requires libNGMime        v4.5.212
index 031e1d9edbfa6fb06dd84c3e41132befbc484545..2562ebf166d67af5890971a9afec203cc411d717 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-14  Helge Hess  <helge.hess@opengroupware.org>
+
+       * UIxMailAccountView.wox: directly access the clientObject to get share
+         information
+
 2005-07-14  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * UIxCalSelectTab.wox: removed 'Schedule' tab.
index 17c4de91999900d15e85dd060b9e353aa978b55f..54806a6252cd81e54689619978c98eaa40884cd2 100644 (file)
   title="panelTitle"
 >
   <div class="titlediv">
-    <var:if condition="isShareAccount">
+    <var:if condition="clientObject.isSharedAccount">
       <var:string label:value="Share: " />
     </var:if>
-    <var:if condition="isShareAccount" const:negate="1">
+    <var:if condition="clientObject.isSharedAccount" const:negate="1">
       <var:string label:value="Account: " />
     </var:if>
     <var:string value="objectTitle"/>
       <div style="font-weight: bold; font-size: 16px;">
         SOGo Mail - 
 
-        <var:if condition="isShareAccount">
+        <var:if condition="clientObject.isSharedAccount">
           <var:string label:value="Shared Account: " />
         </var:if>
 
         <var:string value="objectTitle"/>
       </div>
       <br />
-      <var:if condition="isShareAccount">
+      <var:if condition="clientObject.isSharedAccount">
         <div>
           <var:string label:value="Share: " />
-          <var:string value="fullSharePath" />
+          <var:string value="clientObject.sharedAccountName" />
         </div>
       </var:if>
       <br />