diff options
author | Mark Wells <mark@freeside.biz> | 2016-05-25 16:29:05 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-05-25 16:29:27 -0700 |
commit | dd82a27357402466390044d001824657f6617626 (patch) | |
tree | c15fceb1f2ed89a313f07a9abc2b51ed6cff115f /rt/lib/RT | |
parent | a6d8b1c76fa2c592e3d6e0c19659c0ba6fc464b0 (diff) |
indicator on the top bar for new activity on tickets, #41670
Diffstat (limited to 'rt/lib/RT')
-rw-r--r-- | rt/lib/RT/Search/UnrepliedTickets.pm | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/rt/lib/RT/Search/UnrepliedTickets.pm b/rt/lib/RT/Search/UnrepliedTickets.pm new file mode 100644 index 000000000..a99690156 --- /dev/null +++ b/rt/lib/RT/Search/UnrepliedTickets.pm @@ -0,0 +1,62 @@ +=head1 NAME + + RT::Search::UnrepliedTickets + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +Find all unresolved tickets owned by the current user where the last correspondence +from a requestor (or ticket creation) is more recent than the last +correspondence from a non-requestor (if there is any). + +=head1 METHODS + +=cut + +package RT::Search::UnrepliedTickets; + +use strict; +use warnings; +use base qw(RT::Search); + + +sub Describe { + my $self = shift; + return ($self->loc("Tickets awaiting a reply")); +} + +sub Prepare { + my $self = shift; + + my $TicketsObj = $self->TicketsObj; + $TicketsObj->Limit( + FIELD => 'Owner', + VALUE => $TicketsObj->CurrentUser->id + ); + $TicketsObj->Limit( + FIELD => 'Status', + OPERATOR => '!=', + VALUE => 'resolved' + ); + my $txn_alias = $TicketsObj->JoinTransactions; + $TicketsObj->Limit( + ALIAS => $txn_alias, + FIELD => 'Created', + OPERATOR => '>', + VALUE => 'COALESCE(main.Told,\'1970-01-01\')', + QUOTEVALUE => 0, + ); + $TicketsObj->Limit( + ALIAS => $txn_alias, + FIELD => 'Type', + OPERATOR => 'IN', + VALUE => [ 'Correspond', 'Create' ], + ); + + return(1); +} + +RT::Base->_ImportOverlays(); + +1; |