Difference between revisions of "AutoRequestorTicketSearch"
Jump to navigation
Jump to search
m (5 revisions imported) |
(No difference)
|
Latest revision as of 16:03, 6 April 2016
When creating tickets in RT on behalf of a user, it's often useful to look over the list of tickets in which the user is a requestor in order to avoid duplicates. Opening a tab, moving to the search page and building a new search can however be uselessly time-consuming.
With this simple customisation, upon selecting a Requestor through the autocomplete dropdown on the ticket creation page, a panel will appear on the bottom of the page listing this user's most recent tickets.
In Callbacks/AutoRequestorTicketSearch/Ticket/Create.html/AfterRequestors :
<script type="text/javascript"> jQuery(document).ready(function(){ jQuery('form[name=TicketCreate]').after('<div id="auto-requestor-ticket-search" style="clear:both;"></div>'); jQuery('input#Requestors').autocomplete({ select:function( event, ui ) { jQuery('#auto-requestor-ticket-search').empty().load("/Helpers/AutoRequestorTicketSearch.html?" + jQuery.param({ UserEmail: ui.item.value })); } }); }); </script>
In Helpers/AutoRequestorTicketSearch.html :
<&|/Widgets/TitleBox, title => "Last 25 tickets for " . $User->RealName &>
% if ($Collection->CountAll() > 0) {
<& /Elements/CollectionList,
AllowSorting => 0,
Class => 'RT::Tickets',
Collection => $Collection,
ShowNavigation => 0,
ShowEmpty => 1,
%query_args,
&>
% if ($Collection->CountAll() > 25) {
% }
% } else {
<p><&|/l&>No tickets found.</&></p>
% }
<%INIT>
my $User = RT::User->new($RT::SystemUser);
$User->LoadByEmail($UserEmail);
my $Query = "Requestor.EmailAddress LIKE '${UserEmail}'";
my %query_args = (
Format => qq{
'__id__/TITLE:#',
'__Subject__/TITLE:Subject',
'__Status__',
'__OwnerName__',
'__LastUpdatedRelative__'},
OrderBy => 'LastUpdated',
Order => 'DESC',
Rows => 25,
);
my $Collection = RT::Tickets->new( $session{'CurrentUser'} );
$Collection->FromSQL($Query);
<%ARGS>
$UserEmail