[Rt-commit] r3470 - in rtfm/branches/2.1-TESTING: . lib/RT/FM
alexmv at bestpractical.com
alexmv at bestpractical.com
Wed Jul 13 16:59:35 EDT 2005
Author: alexmv
Date: Wed Jul 13 16:59:35 2005
New Revision: 3470
Modified:
rtfm/branches/2.1-TESTING/ (props changed)
rtfm/branches/2.1-TESTING/lib/RT/FM/ArticleCollection_Overlay.pm
Log:
r5019 at zoq-fot-pik: chmrr | 2005-07-13 17:00:58 -0400
* Ignore disabled values in LimitCustomField
* Re-indent
Modified: rtfm/branches/2.1-TESTING/lib/RT/FM/ArticleCollection_Overlay.pm
==============================================================================
--- rtfm/branches/2.1-TESTING/lib/RT/FM/ArticleCollection_Overlay.pm (original)
+++ rtfm/branches/2.1-TESTING/lib/RT/FM/ArticleCollection_Overlay.pm Wed Jul 13 16:59:35 2005
@@ -223,40 +223,52 @@
@_
);
+ my $value = $args{'VALUE'};
+ next unless $value; #strip out total blank wildcards
+ my $ObjectValuesAlias = $self->Join(
+ TYPE => 'left',
+ ALIAS1 => 'main',
+ FIELD1 => 'id',
+ TABLE2 => 'ObjectCustomFieldValues',
+ FIELD2 => 'ObjectId'
+ );
- my $value = $args{'VALUE'};
- next unless $value; #strip out total blank wildcards
- my $ObjectValuesAlias = $self->Join(
- TYPE => 'left',
- ALIAS1 => 'main',
- FIELD1 => 'id',
- TABLE2 => 'ObjectCustomFieldValues',
- FIELD2 => 'ObjectId'
- );
+ # Ignore disabled values
+ $self->Limit( ALIAS => $ObjectValuesAlias,
+ FIELD => "Disabled",
+ VALUE => "0");
- if ( $args{'FIELD'} ) {
+ if ( $args{'FIELD'} ) {
- my $field_id;
+ my $field_id;
- if (UNIVERSAL::isa($args{'FIELD'} ,'RT::CustomField')) {
- $field_id = $args{'FIELD'}->id;
- } elsif($args{'FIELD'} =~ /^\d+$/) {
- $field_id = $args{'FIELD'};
- }
- if ($field_id) {
- $self->Limit( LEFTJOIN => $ObjectValuesAlias, FIELD => 'CustomField', VALUE => $args{'FIELD'}, ENTRYAGGREGATOR => 'OR');
+ if (UNIVERSAL::isa($args{'FIELD'} ,'RT::CustomField')) {
+ $field_id = $args{'FIELD'}->id;
+ } elsif($args{'FIELD'} =~ /^\d+$/) {
+ $field_id = $args{'FIELD'};
+ }
+ if ($field_id) {
+ $self->Limit( LEFTJOIN => $ObjectValuesAlias,
+ FIELD => 'CustomField',
+ VALUE => $args{'FIELD'},
+ ENTRYAGGREGATOR => 'OR');
# Could convert the above to a non-left join and also enable the thing below
- #$self->SUPER::Limit( ALIAS => $ObjectValuesAlias, FIELD => 'CustomField', OPERATOR => 'IS', VALUE => 'NULL', QUOTEVALUE => 0, ENTRYAGGREGATOR => 'OR',);
+ # $self->SUPER::Limit( ALIAS => $ObjectValuesAlias,
+ # FIELD => 'CustomField',
+ # OPERATOR => 'IS',
+ # VALUE => 'NULL',
+ # QUOTEVALUE => 0,
+ # ENTRYAGGREGATOR => 'OR',);
} else {
# Search for things by name if the cf was specced by name.
my $fields = $self->NewAlias('CustomFields');
$self->Join( TYPE => 'left',
- ALIAS1 => $ObjectValuesAlias , FIELD1 => 'CustomField',
- ALIAS2 => $fields, FIELD2=> 'id');
- $self->Limit(ALIAS => $fields,
- FIELD => 'Name',
- VALUE => $args{'FIELD'},
- ENTRYAGGREGATOR => 'OR');
+ ALIAS1 => $ObjectValuesAlias , FIELD1 => 'CustomField',
+ ALIAS2 => $fields, FIELD2=> 'id');
+ $self->Limit( ALIAS => $fields,
+ FIELD => 'Name',
+ VALUE => $args{'FIELD'},
+ ENTRYAGGREGATOR => 'OR');
$self->Limit(
ALIAS => $fields,
FIELD => 'LookupType',
@@ -266,50 +278,51 @@
}
}
- #If we're trying to find articles where a custom field value doesn't match
- # something, be sure to find things where it's null
-
-#basically, we do a left join on the value being applicable to the article and then we turn around
-# and make sure that it's actually null in practise
+ # If we're trying to find articles where a custom field value
+ # doesn't match something, be sure to find things where it's null
- #TODO this should deal with starts with and ends with
-
- if ( $args{'OPERATOR'} eq '!=' || $args{'OPERATOR'} =~ /^not like$/i ) {
- my $op;
- if ( $args{'OPERATOR'} eq '!=' ) {
- $op = "=";
- }
- elsif ( $args{'OPERATOR'} =~ /^not like$/i ) {
- $op = 'LIKE';
- }
-
- $self->SUPER::Limit(
- LEFTJOIN => $ObjectValuesAlias,
- FIELD => 'Content',
- OPERATOR => $op,
- VALUE => $value,
- QUOTEVALUE => $args{'QUOTEVALUE'},
- ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
- );
- $self->SUPER::Limit(
- ALIAS => $ObjectValuesAlias,
- FIELD => 'Content',
- OPERATOR => 'IS',
- VALUE => 'NULL',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
- );
+ # basically, we do a left join on the value being applicable to
+ # the article and then we turn around and make sure that it's
+ # actually null in practise
+
+ # TODO this should deal with starts with and ends with
+
+ if ( $args{'OPERATOR'} eq '!=' || $args{'OPERATOR'} =~ /^not like$/i ) {
+ my $op;
+ if ( $args{'OPERATOR'} eq '!=' ) {
+ $op = "=";
}
- else {
- $self->SUPER::Limit(
- ALIAS => $ObjectValuesAlias,
- FIELD => 'Content',
- OPERATOR => $args{'OPERATOR'},
- VALUE => $value,
- QUOTEVALUE => $args{'QUOTEVALUE'},
- ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
- );
+ elsif ( $args{'OPERATOR'} =~ /^not like$/i ) {
+ $op = 'LIKE';
}
+
+ $self->SUPER::Limit(
+ LEFTJOIN => $ObjectValuesAlias,
+ FIELD => 'Content',
+ OPERATOR => $op,
+ VALUE => $value,
+ QUOTEVALUE => $args{'QUOTEVALUE'},
+ ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
+ );
+ $self->SUPER::Limit(
+ ALIAS => $ObjectValuesAlias,
+ FIELD => 'Content',
+ OPERATOR => 'IS',
+ VALUE => 'NULL',
+ QUOTEVALUE => 0,
+ ENTRYAGGREGATOR => 'AND',
+ );
+ }
+ else {
+ $self->SUPER::Limit(
+ ALIAS => $ObjectValuesAlias,
+ FIELD => 'Content',
+ OPERATOR => $args{'OPERATOR'},
+ VALUE => $value,
+ QUOTEVALUE => $args{'QUOTEVALUE'},
+ ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
+ );
+ }
}
# }}}
More information about the Rt-commit
mailing list