aboutsummaryrefslogtreecommitdiffstats
path: root/Source/TableContent.m
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-02-19 14:43:01 +0000
committerBibiko <bibiko@eva.mpg.de>2010-02-19 14:43:01 +0000
commit10316c1a2e8448e5dd93a1d10c7e039115864925 (patch)
tree6f7e086731df3be9fdf5f7bd4aa844857f19e4cf /Source/TableContent.m
parent69497bca10ddacbee15d48496455a371ea5ab9b0 (diff)
downloadsequelpro-10316c1a2e8448e5dd93a1d10c7e039115864925.tar.gz
sequelpro-10316c1a2e8448e5dd93a1d10c7e039115864925.tar.bz2
sequelpro-10316c1a2e8448e5dd93a1d10c7e039115864925.zip
• added the chance to the user-defined Content Filter Editor to specify whether the leading <field> placeholder should be suppressed or not in order to be able to write a filter like "LENGTH($CURRENT_FIELD)>${}"
Diffstat (limited to 'Source/TableContent.m')
-rw-r--r--Source/TableContent.m55
1 files changed, 38 insertions, 17 deletions
diff --git a/Source/TableContent.m b/Source/TableContent.m
index 50bcfd9f..da6577cb 100644
--- a/Source/TableContent.m
+++ b/Source/TableContent.m
@@ -809,6 +809,10 @@
NSUInteger numberOfArguments = [[filter objectForKey:@"NumberOfArguments"] integerValue];
+ BOOL suppressLeadingTablePlaceholder = NO;
+ if([filter objectForKey:@"SuppressLeadingFieldPlaceholder"])
+ suppressLeadingTablePlaceholder = YES;
+
// argument if Filter requires only one argument
NSMutableString *argument = [[NSMutableString alloc] initWithString:[argumentField stringValue]];
@@ -870,24 +874,41 @@
}
// Construct the filter string according the required number of arguments
- if (numberOfArguments == 2) {
- filterString = [NSString stringWithFormat:@"%@ %@",
- [[fieldField titleOfSelectedItem] backtickQuotedString],
- [NSString stringWithFormat:clause,
- [self escapeFilterArgument:firstBetweenArgument againstClause:clause],
- [self escapeFilterArgument:secondBetweenArgument againstClause:clause]]];
- } else if (numberOfArguments == 1) {
- filterString = [NSString stringWithFormat:@"%@ %@",
- [[fieldField titleOfSelectedItem] backtickQuotedString],
- [NSString stringWithFormat:clause, [self escapeFilterArgument:argument againstClause:clause]]];
+
+ if(suppressLeadingTablePlaceholder) {
+ if (numberOfArguments == 2) {
+ filterString = [NSString stringWithFormat:clause,
+ [self escapeFilterArgument:firstBetweenArgument againstClause:clause],
+ [self escapeFilterArgument:secondBetweenArgument againstClause:clause]];
+ } else if (numberOfArguments == 1) {
+ filterString = [NSString stringWithFormat:clause, [self escapeFilterArgument:argument againstClause:clause]];
+ } else {
+ filterString = [NSString stringWithString:[filter objectForKey:@"Clause"]];
+ if(numberOfArguments > 2) {
+ NSLog(@"Filter with more than 2 arguments is not yet supported.");
+ NSBeep();
+ }
+ }
} else {
- filterString = [NSString stringWithFormat:@"%@ %@",
- [[fieldField titleOfSelectedItem] backtickQuotedString],
- [filter objectForKey:@"Clause"]];
- if(numberOfArguments > 2) {
- NSLog(@"Filter with more than 2 arguments is not yet supported.");
- NSBeep();
- }
+ if (numberOfArguments == 2) {
+ filterString = [NSString stringWithFormat:@"%@ %@",
+ [[fieldField titleOfSelectedItem] backtickQuotedString],
+ [NSString stringWithFormat:clause,
+ [self escapeFilterArgument:firstBetweenArgument againstClause:clause],
+ [self escapeFilterArgument:secondBetweenArgument againstClause:clause]]];
+ } else if (numberOfArguments == 1) {
+ filterString = [NSString stringWithFormat:@"%@ %@",
+ [[fieldField titleOfSelectedItem] backtickQuotedString],
+ [NSString stringWithFormat:clause, [self escapeFilterArgument:argument againstClause:clause]]];
+ } else {
+ filterString = [NSString stringWithFormat:@"%@ %@",
+ [[fieldField titleOfSelectedItem] backtickQuotedString],
+ [filter objectForKey:@"Clause"]];
+ if(numberOfArguments > 2) {
+ NSLog(@"Filter with more than 2 arguments is not yet supported.");
+ NSBeep();
+ }
+ }
}
[argument release];