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
}
}
- 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 */