[Rt-commit] rt branch, queue-like-search, created. rt-4.2.9-1-g4016c4c
Dave Goehrig
dave at bestpractical.com
Wed Dec 14 12:56:16 EST 2016
The branch, queue-like-search has been created
at 4016c4c40fe70dd8010aa7e3efced4f51b89fd0d (commit)
- Log -----------------------------------------------------------------
commit 4016c4c40fe70dd8010aa7e3efced4f51b89fd0d
Author: Dave Goehrig <dave at bestpractical.com>
Date: Wed Dec 14 12:13:17 2016 -0500
Supporting like / not like in queue search
diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index 79d5e15..fda767b 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -104,7 +104,8 @@ __PACKAGE__->RegisterCustomFieldJoin(@$_) for
our %FIELD_METADATA = (
Status => [ 'STRING', ], #loc_left_pair
- Queue => [ 'ENUM' => 'Queue', ], #loc_left_pair
+# Queue => [ 'ENUM' => 'Queue', ], #loc_left_pair
+ Queue => [ 'QUEUE' ], #loc_left_pair
Type => [ 'ENUM', ], #loc_left_pair
Creator => [ 'ENUM' => 'User', ], #loc_left_pair
LastUpdatedBy => [ 'ENUM' => 'User', ], #loc_left_pair
@@ -183,6 +184,7 @@ our %dispatch = (
LINK => \&_LinkLimit,
DATE => \&_DateLimit,
STRING => \&_StringLimit,
+ QUEUE => \&_QueueLimit,
TRANSFIELD => \&_TransLimit,
TRANSCONTENT => \&_TransContentLimit,
TRANSDATE => \&_TransDateLimit,
@@ -216,6 +218,12 @@ my %DefaultEA = (
'LIKE' => 'AND',
'NOT LIKE' => 'AND'
},
+ QUEUE => {
+ '=' => 'OR',
+ '!=' => 'AND',
+ 'LIKE' => 'OR',
+ 'NOT LIKE' => 'AND'
+ },
TRANSFIELD => 'AND',
TRANSDATE => 'AND',
LINK => 'OR',
@@ -709,6 +717,50 @@ sub _StringLimit {
);
}
+=head2 _QueueLimit
+
+Handle Queue field supporting both is and match.
+
+Input should be a queue name or a paritial string.
+
+=cut
+
+sub _QueueLimit {
+ my ($sb, $field, $op, $value, @rest ) = @_;
+ my $alias;
+
+ if ($op eq 'LIKE' || $op eq 'NOT LIKE') {
+ $alias = $sb->Join(
+ TYPE => 'RIGHT',
+ ALIAS1 => 'main',
+ FIELD1 => 'Queue',
+ TABLE2 => 'Queues',
+ FIELD2 => 'id',
+ );
+
+ return $sb->Limit(
+ LEFTJOIN => $alias,
+ FIELD => 'Name',
+ OPERATOR => $op,
+ VALUE => $value,
+ CASESENSITIVE => 0,
+ @rest,
+ );
+
+ }
+
+ my $o = RT::Queue->new( $sb->CurrentUser );
+ $o->Load($value);
+ $value = $o->Id || 0;
+ $sb->Limit(
+ FIELD => $field,
+ OPERATOR => $op,
+ VALUE => $value,
+ CASESENSITIVE => 0,
+ @rest,
+ );
+}
+
=head2 _TransDateLimit
Handle fields limiting based on Transaction Date.
diff --git a/share/html/Search/Elements/PickBasics b/share/html/Search/Elements/PickBasics
index 3adbc8b..006422d 100644
--- a/share/html/Search/Elements/PickBasics
+++ b/share/html/Search/Elements/PickBasics
@@ -83,8 +83,8 @@ my @lines = (
Field => loc('Queue'),
Op => {
Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => { TrueVal=> '=', FalseVal => '!=' },
+ Path => '/Elements/SelectMatch',
+# Arguments => { TrueVal=> '=', FalseVal => '!=' },
},
Value => {
Type => 'component',
-----------------------------------------------------------------------
More information about the rt-commit
mailing list