%# BEGIN LICENSE BLOCK %# %# Copyright (c) 1996-2003 Jesse Vincent %# %# (Except where explictly superceded by other copyright notices) %# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. %# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. %# %# Unless otherwise specified, all modifications, corrections or %# extensions to this work which alter its source code become the %# property of Best Practical Solutions, LLC when submitted for %# inclusion in the work. %# %# %# END LICENSE BLOCK <& /Elements/Header, Title=>loc("RT at a glance"), Refresh => $session{'home_refresh_interval'} &> <& /Elements/Tabs, current_toptab => '', Title=>loc("RT at a glance") &> <& /Elements/ListActions, actions => \@results &>
<& /Elements/MyTickets &>
<& /Elements/MyRequests &>
<& /Elements/QuickCreate &>
<& /Elements/Quicksearch &>
<& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session {'home_refresh_interval'} &>
<%init> my @results; if ($ARGS{'QuickCreate'} ) { my $ticket = RT::Ticket->new($session{'CurrentUser'}); my ($tid, $trans, $tmsg) = $ticket->Create(Queue => $ARGS{'Queue'}, Owner => $ARGS{'Owner'}, Subject => $ARGS{'Subject'}); push (@results, $tmsg); } if ( $ARGS{'q'} ) { my $query = $ARGS{'q'}; if ( $query =~ m/^\s*(\d+)\s*$/ ) { $m->comp("/Ticket/Display.html", id=> $1); return(); } if ($m->comp('/Elements/Callback', _CallbackName => 'SearchPreFilter', query => $query, %ARGS)) { return(); } $session{'tickets'} = RT::Tickets->new( $session{'CurrentUser'} ); if ( $query =~ m/\@/ ) { $m->comp("/Search/Results.html", Query => "Requestor = '$query'"); return(); } # # Any search on queue name or subject will be for new/open tickets # only. # my $status = "Status = 'new' OR Status = 'open'"; my $queue = RT::Queue->new( $session{'CurrentUser'} ); if ( $queue->Load($query) && $queue->Id ) { $m->comp("/Search/Results.html", Query => "Queue = '" . $queue->Id . "' AND ($status)"); return(); } $m->comp("/Search/Results.html", Query => "Subject LIKE '$query' AND ($status)"); return(); } if ($ARGS{'HomeRefreshInterval'}) { $session{'home_refresh_interval'} = $ARGS{'HomeRefreshInterval'}; }