%# BEGIN LICENSE BLOCK %# %# Copyright (c) 1996-2002 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 <& /RTIR/Elements/Header, Title => "RTIR at a glance", Refresh => $session{'home_refresh_interval'} &> <& /RTIR/Elements/Tabs, Title => "RT for Incident Response", actions => $actions, current_toptab => 'RTIR/index.html' &> <& /Elements/ListActions, actions => \@results &> <& /Elements/MyRT, Portlets => $portlets &> <%INIT> # XXX: this should be automated!!! unless ( exists $session{'my_rtir_portlets'} ) { my ($d_portlets) = RT::System->new( $session{'CurrentUser'} )->Attributes->Named('RTIR_HomepageSettings'); $session{'my_rtir_portlets'} = $session{'CurrentUser'}->UserObj->Preferences( 'RTIR_HomepageSettings', $d_portlets->Content ); } my $portlets = $session{'my_rtir_portlets'}; if ( $ARGS{'q'} ) { my $query = $ARGS{'q'}; if ( $query =~ m/^\s*(\d+)\s*$/ ) { return $m->comp( '/RTIR/Display.html', id => $1 ); } return if $m->callback( %ARGS, CallbackName => 'SearchPreFilter', query => $query, ); # Incidents don't have requestors, but children do if ( $query =~ m/\@/ ) { my $children = new RT::Tickets($session{'CurrentUser'}); $children->FromSQL( "( Queue = 'Incident Reports' OR Queue = 'Investigations' OR Queue = 'Blocks' ) AND Requestor LIKE '$query'" ); my $querystring; while ( my $child = $children->Next ) { $querystring .= " OR " if $querystring; $querystring .= "HasMember = " . $child->Id; } return $m->comp( '/RTIR/Search/Results.html', Queue => 'Incidents', Query => $querystring, ); } # Any search on queue name or subject will be for new/open tickets only. $query = join ' AND ', "Subject LIKE '$query'", $m->comp( '/RTIR/Elements/NewQuery', Queue => 'Incidents' ); return $m->comp( '/RTIR/Search/Results.html', Queue => 'Incidents', Query => $query, ); } if ( $HomeRefreshInterval ) { $session{'home_refresh_interval'} = $HomeRefreshInterval; push @results, loc( 'Updated refresh interval.'); } my $actions; if ($session{'CurrentUser'}->HasRight(Right => 'ModifySelf', Object => $RT::System)) { $actions = { A => { title => loc('Edit'), path => 'RTIR/Prefs/Home.html', }, }; } <%ARGS> @results => () $HomeRefreshInterval => undef