[Rt-commit] r3608 - in rtfm/branches/2.1-TESTING: . html/RTFM/Article lib/RT/FM

alexmv at bestpractical.com alexmv at bestpractical.com
Fri Aug 5 17:57:30 EDT 2005


Author: alexmv
Date: Fri Aug  5 17:57:29 2005
New Revision: 3608

Modified:
   rtfm/branches/2.1-TESTING/   (props changed)
   rtfm/branches/2.1-TESTING/html/RTFM/Article/Search.html
   rtfm/branches/2.1-TESTING/lib/RT/FM/ArticleCollection_Overlay.pm
Log:
 r5656 at zoq-fot-pik:  chmrr | 2005-08-05 17:57:15 -0400
  * Make "search anything" play nice with other search clauses


Modified: rtfm/branches/2.1-TESTING/html/RTFM/Article/Search.html
==============================================================================
--- rtfm/branches/2.1-TESTING/html/RTFM/Article/Search.html	(original)
+++ rtfm/branches/2.1-TESTING/html/RTFM/Article/Search.html	Fri Aug  5 17:57:29 2005
@@ -334,13 +334,14 @@
 if ($ARGS{'Article~'}) {
     $articles->LimitCustomField( VALUE => $ARGS{'Article~'},
                                  ENTRYAGGREGATOR => 'OR',
-                                 OPERATOR => 'LIKE' );
-    $articles->Limit( SUBCLAUSE => "ObjectCustomFieldValues_1.Content",
+                                 OPERATOR => 'LIKE',
+                                 SUBCLAUSE => 'SearchAll' );
+    $articles->Limit( SUBCLAUSE => 'SearchAll',
                       FIELD => "Name",
                       VALUE => $ARGS{'Article~'},
                       ENTRYAGGREGATOR => 'OR',
                       OPERATOR => 'LIKE' );
-    $articles->Limit( SUBCLAUSE => "ObjectCustomFieldValues_1.Content",
+    $articles->Limit( SUBCLAUSE => 'SearchAll',
                       FIELD => "Summary",
                       VALUE => $ARGS{'Article~'},
                       ENTRYAGGREGATOR => 'OR',
@@ -349,13 +350,14 @@
 
 if ($ARGS{'Article!~'}) {
     $articles->LimitCustomField( VALUE => $ARGS{'Article!~'},
-                                 OPERATOR => 'NOT LIKE' );
-    $articles->Limit( SUBCLAUSE => "ObjectCustomFieldValues_1.Content",
+                                 OPERATOR => 'NOT LIKE',
+                                 SUBCLAUSE => 'SearchAll' );
+    $articles->Limit( SUBCLAUSE => 'SearchAll',
                       FIELD => "Name",
                       VALUE => $ARGS{'Article!~'},
-                      ENTRYAGGREGATOR => 'ANT',
+                      ENTRYAGGREGATOR => 'AND',
                       OPERATOR => 'NOT LIKE' );
-    $articles->Limit( SUBCLAUSE => "ObjectCustomFieldValues_1.Content",
+    $articles->Limit( SUBCLAUSE => 'SearchAll',
                       FIELD => "Summary",
                       VALUE => $ARGS{'Article!~'},
                       ENTRYAGGREGATOR => 'AND',

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	Fri Aug  5 17:57:29 2005
@@ -206,7 +206,9 @@
    ENTRYAGGREGATOR => (AND, OR)
    OPERATOR ('=', 'LIKE', '!=', 'NOT LIKE')
    VALUE ( a single scalar value or a list of possible values to be concatenated with ENTRYAGGREGATOR)
-   
+
+The subclause that the LIMIT statement(s) should be done in can also
+be passed in with a SUBCLAUSE parameter.
 
 =cut
 
@@ -218,6 +220,7 @@
         OPERATOR        => '=',
         QUOTEVALUE      => 1,
         VALUE           => undef,
+        SUBCLAUSE       => undef,
         @_
     );
 
@@ -287,6 +290,8 @@
 
     # TODO this should deal with starts with and ends with
 
+    my $clause = $args{'SUBCLAUSE'} || $ObjectValuesAlias;
+    
     if ( $args{'OPERATOR'} eq '!=' || $args{'OPERATOR'} =~ /^not like$/i ) {
         my $op;
         if ( $args{'OPERATOR'} eq '!=' ) {
@@ -303,14 +308,16 @@
             VALUE           => $value,
             QUOTEVALUE      => $args{'QUOTEVALUE'},
             ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
+            SUBCLAUSE       => $clause,
         );
         $self->SUPER::Limit(
-            ALIAS        => $ObjectValuesAlias,
+            ALIAS           => $ObjectValuesAlias,
             FIELD           => 'Content',
             OPERATOR        => 'IS',
             VALUE           => 'NULL',
             QUOTEVALUE      => 0,
             ENTRYAGGREGATOR => 'AND',
+            SUBCLAUSE       => $clause,
         );
     }
     else {
@@ -321,6 +328,7 @@
             VALUE           => $value,
             QUOTEVALUE      => $args{'QUOTEVALUE'},
             ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'},
+            SUBCLAUSE       => $clause,
         );
     }
 }


More information about the Rt-commit mailing list