X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fdocs%2Fdesign_docs%2Fcf_search;fp=rt%2Fdocs%2Fdesign_docs%2Fcf_search;h=0000000000000000000000000000000000000000;hp=456a9febb8e11e26ba5c2bff93a253a8175c008f;hb=43a06151e47d2c59b833cbd8c26d97865ee850b6;hpb=6587f6ba7d047ddc1686c080090afe7d53365bd4 diff --git a/rt/docs/design_docs/cf_search b/rt/docs/design_docs/cf_search deleted file mode 100644 index 456a9febb..000000000 --- a/rt/docs/design_docs/cf_search +++ /dev/null @@ -1,72 +0,0 @@ -find all tickets where: - - - CF Foo - Has values (talk or read) AND - Has values (bar and baz) AND - doesn't have values (bing or bong) - - -LimitCustomFieldValues { - my %args = ( CustomField => undef, - ClauseId => 'CustomFields', - OPERATOR => undef, - ENTRYAGGREGATOR => undef, - VALUES => undef, - @_) ; - - unless ( $self->{'TicketAliases'}{$args{'ClauseId'}}{'CustomField'} ) { - $self->{'TicketAliases'}{$args{'ClauseId'}}{'CustomField'} = $self->NewAlias('CustomFields'); - $self->Join(TABLE1 =>$self->{'TicketAliases'}{$args{'ClauseId'}}{'CustomField' }, - FIELD1 => 'QueueId', - TABLE2 => 'main', FIELD2 => 'QueueId'); - - if ($args{'OPERATOR'} =~ /!=|IS/i) { - } - else { - } - -} - # {{{ if it's a keyword - elsif ( $TYPES{ $restriction->{'FIELD'} } eq 'CUSTOMFIELD' ) { - - my $null_columns_ok; - my $TicketCFs = $self->Join( TYPE => 'left', - ALIAS1 => 'main', - FIELD1 => 'id', - TABLE2 => 'TicketCustomFieldValues', - FIELD2 => 'Ticket' ); - - foreach my $value ( @{ $restriction->{'VALUES'} } ) { - $self->SUPER::Limit( ALIAS => $TicketCFs, - FIELD => 'Content', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $value, - QUOTEVALUE => $restriction->{'QUOTEVALUE'}, - ENTRYAGGREGATOR => 'AND', ); - } - if ( ( $restriction->{'OPERATOR'} =~ /^IS$/i ) or ( $restriction->{'OPERATOR'} eq '!=' ) ) { - $null_columns_ok = 1; - } - - #If we're trying to find tickets where the keyword isn't somethng, also check ones where it _IS_ null - if ( $restriction->{'OPERATOR'} eq '!=' ) { - $self->SUPER::Limit( ALIAS => $TicketCFs, - FIELD => 'Content', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR', ); - } - - $self->SUPER::Limit( LEFTJOIN => $TicketCFs, - FIELD => 'CustomField', - VALUE => $restriction->{'CUSTOMFIELD'}, - ENTRYAGGREGATOR => 'OR' ); - - } - - # }}} - - } -