]> err.no Git - scalable-opengroupware.org/commitdiff
added support for shared inboxes
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 12:28:46 +0000 (12:28 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 12:28:46 +0000 (12:28 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@750 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/SoObjects/Mailer/ChangeLog
SOGo/SoObjects/Mailer/GNUmakefile
SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.h [new file with mode: 0644]
SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.m [new file with mode: 0644]
SOGo/SoObjects/Mailer/SOGoSharedMailAccount.m
SOGo/SoObjects/Mailer/Version
SOGo/SoObjects/Mailer/product.plist

index 2e6633261cb045f51319f6ad45f165c6415f1eb0..92fbc40101c308e54aa0a5f429b6dba49bba682a 100644 (file)
@@ -1,5 +1,14 @@
 2005-07-14  Helge Hess  <helge.hess@opengroupware.org>
 
+       * v0.9.102
+
+       * SOGoSharedMailAccount.m: create an object of class
+         SOGoSharedInboxFolder in case the lookup key is INBOX
+
+       * added SOGoSharedInboxFolder.m for inboxes of shared mail accounts
+         (which have a different location than standard inboxes and never
+         contain subfolders)
+
        * SOGoSharedMailAccount.m: prepared code to support a shared INBOX
          folder (v0.9.101)
 
index 6a8207cae58ca04b19c7c97c31f52049cc653b61..916836d129002cf026192a12f6cb0b041582ef11 100644 (file)
@@ -16,6 +16,7 @@ Mailer_OBJC_FILES += \
        SOGoMailAccount.m               \
        SOGoSharedMailAccount.m         \
        SOGoMailFolder.m                \
+       SOGoSharedInboxFolder.m         \
        SOGoMailObject.m                \
        SOGoMailFolderDataSource.m      \
        SOGoTrashFolder.m               \
diff --git a/SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.h b/SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.h
new file mode 100644 (file)
index 0000000..1e597b3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  Copyright (C) 2004-2005 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+
+#ifndef __Mailer_SOGoSharedInboxFolder_H__
+#define __Mailer_SOGoSharedInboxFolder_H__
+
+#include <SoObjects/Mailer/SOGoMailFolder.h>
+
+/*
+  SOGoSharedInboxFolder
+    Parent object: the SOGoSharedMailAccount
+    Child objects: SOGoMailObject or SOGoMailFolder
+    
+  The SOGoSharedInboxFolder is a special SOGoMailFolder for use as the INBOX
+  og SOGoSharedMailAccounts. This is necessary because the INBOX location in
+  the IMAP4 server is different for shared boxes (its the shared user folder,
+  not a mapped subfolder).
+*/
+
+@interface SOGoSharedInboxFolder : SOGoMailFolder
+{
+}
+
+@end
+
+#endif /* __Mailer_SOGoSharedInboxFolder_H__ */
diff --git a/SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.m b/SOGo/SoObjects/Mailer/SOGoSharedInboxFolder.m
new file mode 100644 (file)
index 0000000..d5e444b
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+  Copyright (C) 2004-2005 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+
+#include "SOGoSharedInboxFolder.h"
+#include "common.h"
+
+@implementation SOGoSharedInboxFolder
+
+/* listing available folders */
+
+- (NSArray *)toManyRelationshipKeys {
+  /* 
+     A shared INBOX has no subfolders because those are already shown as
+     subfolders of the account.
+  */
+  return nil;
+}
+
+/* IMAP4 locator */
+
+- (NSURL *)imap4URL {
+  return [[self container] imap4URL];
+}
+
+@end /* SOGoSharedInboxFolder */
index eb509f7f20d0ccff3cce636829eb417d65c6b013..9aa194c5ecdcc6082a395f9d79a6f7cfe1045555 100644 (file)
 #include "common.h"
 
 @interface SOGoMailAccount(UsedPrivates)
+
 - (NSString *)imap4URLString;
+
+- (id)lookupFolder:(NSString *)_key ofClassNamed:(NSString *)_cn
+  inContext:(id)_cx;
+
 @end
 
 @implementation SOGoSharedMailAccount
@@ -107,8 +112,8 @@ static NSString *otherUsersFolderName = @""; // TODO: add English default
     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;
+  return [self lookupFolder:_key ofClassNamed:@"SOGoSharedInboxFolder"
+              inContext:_ctx];
 }
 
 - (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag {
index 578860074a7ea0a74dd93e862fd9259f1f711e40..d33008ba5d037464a128419211ff7ebb1f2a0607 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=101
+SUBMINOR_VERSION:=102
 
 # v0.9.96 requires libNGMime       v4.5.223
 # v0.9.91 requires libNGMime       v4.5.222
index 2ff6de492a8e76b1319432c1837410de2fb5ab60..1171c1ae19cc30d5917e64f36ab02877fcd897d2 100644 (file)
@@ -32,6 +32,9 @@
         "Add Folders" = "Owner";
       };
     };
+    SOGoSharedInboxFolder = {
+      superclass    = "SOGoMailFolder";
+    };
 
     SOGoTrashFolder = {
       superclass    = "SOGoMailFolder";