%# 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 % my ($i, $class); % my %done; % foreach ($tickets, $group_tickets) { % while (my $ticket = $_->Next() ) { % next if !$ARGS{'ShowDependent'} and $ticket->HasUnresolvedDependencies( Type => 'approval' ); % next if $done{$ticket->Id}++; # don't show duplicate tickets % $i++; % $class = ($i%2) ? "oddline" : "evenline"; <& Approve, ticket => $ticket, class => $class &> % } % }
<& /Elements/TitleBoxStart, title => loc("Search for approvals") &> > <&|/l&>Show pending requests
> <&|/l&>Show approved requests
> <&|/l&>Show denied requests
> <&|/l&>Show requests awaiting other approvals
<&|/l,""&>Only show approvals for requests created before [_1]
<&|/l, ""&>Only show approvals for requests created after [_1] <& /Elements/TitleBoxEnd &> <%init> my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); $tickets->LimitOwner( VALUE => $session{'CurrentUser'}->Id ); # also consider AdminCcs as potential approvers. my $group_tickets = RT::Tickets->new( $session{'CurrentUser'} ); my $created_before = RT::Date->new( $session{'CurrentUser'} ); my $created_after = RT::Date->new( $session{'CurrentUser'} ); foreach ($tickets, $group_tickets) { $_->Limit( FIELD => 'Type', VALUE => 'approval' ); if ( $ARGS{'ShowResolved'} ) { $_->LimitStatus( VALUE => 'resolved' ); } if ( $ARGS{'ShowRejected'} ) { $_->LimitStatus( VALUE => 'rejected' ); } if ( $ARGS{'ShowPending'} || ( !$ARGS{'ShowRejected'} && !$ARGS{'Resolved'} ) ) { $_->LimitStatus( VALUE => 'open' ); $_->LimitStatus( VALUE => 'new' ); $_->LimitStatus( VALUE => 'stalled' ); } if ( $ARGS{'CreatedBefore'} ) { $created_before->Set( Format => 'unknown', Value => $ARGS{'CreatedBefore'} ); $_->LimitCreated( OPERATOR => "<=", VALUE => $created_before->ISO ); } if ( $ARGS{'CreatedAfter'} ) { $created_after->Set( Format => 'unknown', Value => $ARGS{'CreatedAfter'} ); $_->LimitCreated( OPERATOR => ">=", VALUE => $created_after->ISO ); } }