]> err.no Git - scalable-opengroupware.org/commitdiff
implemented empty trash
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 7 Jul 2005 15:59:34 +0000 (15:59 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 7 Jul 2005 15:59:34 +0000 (15:59 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@692 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/MailerUI/ChangeLog
SOGo/UI/MailerUI/UIxMailListView.m
SOGo/UI/MailerUI/Version
SOGo/UI/MailerUI/product.plist

index 9a4c8c3fddcbbc758dd64c07eba5d2cab99c50be..648b804910dc554477f456934380340235f20277 100644 (file)
@@ -1,7 +1,16 @@
 2005-07-07  Helge Hess  <helge.hess@opengroupware.org>
 
-       * v0.9.129
+       * v0.9.130
+       
+       * UIxMailListView.m: implemented empty-trash action
 
+       * product.plist: added a reduced toolbar when being on the trash folder
+         (no reply/fwd etc, but added an empty trash button)
+       
+2005-07-07  Helge Hess  <helge.hess@opengroupware.org>
+
+       * v0.9.129
+       
        * UIxMailAccountView.m: added code to better display shared accounts
 
        * UIxMailTree.m: moved IMAP4 connection string => label code to a
index 5fe52e5b21add768c4bc32657597074e37b30da4..c499e3d0d204dbbc710d0bd6e6637204650843a9 100644 (file)
@@ -518,6 +518,43 @@ static int attachmentFlagSize = 8096;
   return [self redirectToLocation:@"view"];
 }
 
+- (id)emptyTrashAction {
+  // TODO: we might want to flush the caches?
+  NSException *error;
+  id client;
+  
+  if ((client = [self clientObject]) == nil) {
+    return [NSException exceptionWithHTTPStatus:404 /* Not Found */
+                       reason:@"did not find mail folder"];
+  }
+
+  if (![client isKindOfClass:NSClassFromString(@"SOGoTrashFolder")]) {
+    /* would be better to move the method to an own class, but well .. */
+    return [NSException exceptionWithHTTPStatus:400 /* Bad Request */
+                        reason:@"method cannot be invoked on "
+                               @"the specified object"];
+  }
+  
+  /* mark all as deleted */
+
+  [self logWithFormat:@"TODO: must mark all as deleted for empty-trash"];
+  
+  error = [[self clientObject] addFlagsToAllMessages:@"deleted"];
+  if (error != nil)
+    // TODO: improve error
+    return error;
+  
+  /* expunge */
+  
+  if ((error = [[self clientObject] expunge]) != nil)
+    // TODO: improve error
+    return error;
+  
+  if ([client respondsToSelector:@selector(flushMailCaches)])
+    [client flushMailCaches];
+  return [self redirectToLocation:@"view"];
+}
+
 /* folder operations */
 
 - (id)createFolderAction {
index 9100925244a7fd04e7c9f12921c82e6e6386393e..7b76bee450210da1ca02b6b1fc0ba73f8913ae40 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=129
+SUBMINOR_VERSION:=130
 
 # v0.9.100 requires libNGMime        v4.5.213
 # v0.9.99  requires libNGMime        v4.5.212
index d8ed9bf73de62fd68110d9f1c7b6cc2894a9dcef..50af86e7ec533dc3b7372a7b956ae66f2b599ecd 100644 (file)
       };
     };
 
+    SOGoTrashFolder = {
+      /* just a new toolbar, other things come from SOGoMailFolder */
+      slots = {
+        toolbar = {
+          protectedBy = "View";
+          value = ( /* the toolbar groups */
+            ( /* first group */
+              {
+                link  = "getMail";
+                cssClass = "tbicon_getmail"; label = "Get Mail";
+              },
+              {
+                link     = "#"; // "compose"; // target = "_blank";
+                isSafe   = NO;
+                onclick  = "clickedCompose(this);return false;";
+                cssClass = "tbicon_compose"; label = "Write";
+              },
+            ),
+            ( // third group
+              { link = "emptyTrash"; isSafe = NO;
+                enabled  = clientObject.isDeleteAndExpungeAllowed;
+                cssClass = "tbicon_trash"; label = "Empty Trash"; },
+/* TODO: enable when implemented
+// TODO: enable when delete works (#1212)
+              { link = "#"; isSafe = NO;
+                cssClass = "tbicon_delete"; label = "Delete"; },
+// TODO: enable when we know how to mark junk (#971)
+              { link = "#"; isSafe = NO;
+                cssClass = "tbicon_junk";   label = "Junk";   },
+*/
+            ),
+            ( /* fourth group */
+              { link = "#"; cssClass = "tbicon_stop";  label = "Stop";  },
+            ),
+          );
+        };
+      };
+      methods = {
+        emptyTrash = {
+          protectedBy = "View";
+          pageName    = "UIxMailListView"; 
+          actionName  = "emptyTrash";
+        };
+      };
+    };
+
     SOGoMailObject = {
       slots = {
         toolbar = {