]> err.no Git - scalable-opengroupware.org/blobdiff - UI/MailerUI/UIxMailFilterPanel.m
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1127 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / MailerUI / UIxMailFilterPanel.m
index f0a76e6469b841f3c3a7da3007314d6d67ff09de..ea38b7ed1b831b8020d310410a2a529b5392a173 100644 (file)
  02111-1307, USA.
  */
 
-#include <NGObjWeb/WOComponent.h>
+#import <NGObjWeb/WOContext.h>
+#import <NGObjWeb/WORequest.h>
+#import <EOControl/EOQualifier.h>
+#import <NGObjWeb/WOComponent.h>
 
 @interface UIxMailFilterPanel : WOComponent
 {
   NSString *searchText;
-  struct {
-    int hideFrame:1;
-    int reserved:31;
-  } mfFlags;
+  NSString *searchCriteria;
 }
 
 @end
 
-#include <SOGoUI/UIxComponent.h>
-#include "common.h"
-
 @implementation UIxMailFilterPanel
 
-static NSArray      *filters           = nil;
-static NSDictionary *filterToQualifier = nil;
+static NSArray *filters = nil;
+// static NSDictionary *filterToQualifier = nil;
 
 + (void)initialize {
   // TODO: also available: answered, draft [custom: NotJunk and Junk]
   // Note: we currently cannot use: "flags != 'deleted'"
   static NSString *quals[] = {
-    @"all",     nil,
-    @"read",    @"flags = 'seen'   AND NOT (flags = 'deleted')",
-    @"unread",  @"flags = 'unseen' AND NOT (flags = 'deleted')",
+    @"all", nil,
+    @"read", @"flags = 'seen' AND NOT (flags = 'deleted')",
+    @"unread", @"flags = 'unseen' AND NOT (flags = 'deleted')",
     @"deleted", @"flags = 'deleted'",
     @"flagged", @"flags = 'flagged'",
     nil, nil
@@ -66,94 +63,127 @@ static NSDictionary *filterToQualifier = nil;
     }
   }
   
-  filterToQualifier = [md copy];
+//   filterToQualifier = [md copy];
   filters           = [ma copy];
   [md release]; md = nil;
   [ma release]; ma = nil;
 }
 
-- (void)dealloc {
-  [self->searchText release];
+- (id) init
+{
+  if ((self = [super init]))
+    {
+      searchText = nil;
+      searchCriteria = nil;
+    }
+
+  return self;
+}
+
+- (void) dealloc
+{
+  [searchCriteria release];
+  [searchText release];
   [super dealloc];
 }
 
 /* accessors */
 
-- (void)setHideFrame:(BOOL)_flag {
-   self->mfFlags.hideFrame = _flag ? 1 : 0;
+- (void) setSearchText: (NSString *) _txt
+{
+  ASSIGN (searchText, _txt);
 }
-- (BOOL)hideFrame {
-  return self->mfFlags.hideFrame ? YES : NO;
+
+- (void) setSearchCriteria: (NSString *) _txt
+{
+  ASSIGN (searchText, _txt);
 }
 
-- (void)setSearchText:(NSString *)_txt {
-  ASSIGNCOPY(self->searchText, _txt);
+- (NSString *) searchText
+{
+  if (!searchText)
+    {
+      searchText = [[context request] formValueForKey: @"value"];
+      [searchText retain];
+    }
+
+  return searchText;
 }
-- (NSString *)searchText {
-  if (self->searchText == nil) {
-    // TODO: kinda hack
-    self->searchText = 
-      [[[[self context] request] formValueForKey:@"search"] copy];
-  }
-  return self->searchText;
+
+- (NSString *) searchCriteria
+{
+  if (!searchCriteria)
+    {
+      searchCriteria = [[context request] formValueForKey: @"criteria"];
+      [searchCriteria retain];
+    }
+
+  return searchCriteria;
 }
 
 /* filters */
 
-- (NSArray *)filters {
+- (NSArray *) filters
+{
   return filters;
 }
 
 /* qualifiers */
 
-- (EOQualifier *)searchTextQualifier {
-  EOQualifier *q;
-  NSString *s;
+// - (EOQualifier *) searchTextQualifier
+// {
+//   EOQualifier *q;
+//   NSString *s;
   
-  s = [self searchText];
-  if ([s length] == 0)
-    return nil;
+//   s = [self searchText];
+//   if ([s length] == 0)
+//     return nil;
   
-  q = [EOQualifier qualifierWithQualifierFormat:
-                    @"(subject doesContain: %@) OR "
-                    @"(from doesContain: %@)",
-                    s, s];
-  return q;
-}
-
-- (NSString *)filterLabel {
-#if 1
-  return [[[self context] page] labelForKey:[self valueForKey:@"filter"]];
-#else
-  return [self valueForKey:@"filter"];
-#endif
-}
-
-- (NSString *)selectedFilter {
-  return  [[[self context] request] formValueForKey:@"filterpopup"];
-}
-
-- (EOQualifier *)filterQualifier {
-  NSString *selectedFilter;
+//   q = [EOQualifier qualifierWithQualifierFormat:
+//                  @"(subject doesContain: %@) OR "
+//                  @"(from doesContain: %@)",
+//                  s, s];
+//   return q;
+// }
+
+// - (NSString *) filterLabel
+// {
+// #if 1
+//   return [[context page] labelForKey:[self valueForKey:@"filter"]];
+// #else
+//   return [self valueForKey:@"filter"];
+// #endif
+// }
+
+// - (NSString *) selectedFilter
+// {
+//   return  [[context request] formValueForKey: @"filterpopup"];
+// }
+
+// - (EOQualifier *) filterQualifier
+// {
+//   NSString *selectedFilter;
   
-  selectedFilter = [self selectedFilter];
+//   selectedFilter = [self selectedFilter];
   
-  return [selectedFilter length] > 0
-    ? [filterToQualifier objectForKey:selectedFilter] : nil;
-}
-
-- (EOQualifier *)qualifier {
-  EOQualifier *sq, *fq;
-  NSArray *qa;
+//   return [selectedFilter length] > 0
+//     ? [filterToQualifier objectForKey:selectedFilter] : nil;
+// }
+
+// - (EOQualifier *) qualifier
+// {
+//   EOQualifier *sq, *fq;
+//   NSArray *qa;
   
-  sq = [self searchTextQualifier];
-  fq = [self filterQualifier];
+//   sq = [self searchTextQualifier];
+//   fq = [self filterQualifier];
   
-  if (fq == nil) return sq;
-  if (sq == nil) return fq;
+//   if (fq == nil) return sq;
+//   if (sq == nil) return fq;
   
-  qa = [NSArray arrayWithObjects:fq, sq, nil];
-  return [[[EOAndQualifier alloc] initWithQualifierArray:qa] autorelease];
-}
+//   qa = [NSArray arrayWithObjects:fq, sq, nil];
+
+//   return [[[EOAndQualifier alloc] initWithQualifierArray:qa] autorelease];
+// }
 
 @end /* UIxMailFilterPanel */