%# BEGIN BPS TAGGED BLOCK {{{ %# %# COPYRIGHT: %# %# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) %# %# %# LICENSE: %# %# 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. %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: %# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) %# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that %# you are the copyright holder for those contributions and you grant %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} % while (my $ticket = $tickets->Next() ) { % next if !$ARGS{'ShowDependent'} and $ticket->HasUnresolvedDependencies( Type => 'approval' ); <& Approve, ticket => $ticket &> % } <&| /Widgets/TitleBox, 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] <%init> my $tickets = RT::Tickets->new( $session{'CurrentUser'} ); my $created_before = RT::Date->new( $session{'CurrentUser'} ); my $created_after = RT::Date->new( $session{'CurrentUser'} ); my @clauses; push @clauses, "Owner = '".$session{CurrentUser}->Id."' OR AdminCc = '".$session{CurrentUser}->UserObj->EmailAddress."'"; push @clauses, "Type = 'approval'"; my @statuses; if ( $ARGS{'ShowResolved'} ) { push @statuses,'resolved'; } if ( $ARGS{'ShowRejected'} ) { push @statuses,'rejected'; } if ( $ARGS{'ShowPending'} || ( !$ARGS{'ShowRejected'} && !$ARGS{'Resolved'} ) ) { push @statuses,qw(open new stalled); } push @clauses, join(' OR ', map { " Status = '$_' " } @statuses); if ( $ARGS{'CreatedBefore'} ) { $created_before->Set( Format => 'unknown', Value => $ARGS{'CreatedBefore'} ); push @clauses, "Created <= ".$created_before->ISO; } if ( $ARGS{'CreatedAfter'} ) { $created_after->Set( Format => 'unknown', Value => $ARGS{'CreatedAfter'} ); push @clauses, "Created >= ".$created_after->ISO; } $m->callback(CallbackName => 'Search', clauses => \@clauses); my $query = join (' AND ', map { "( $_ )" } @clauses); $tickets->FromSQL($query); $tickets->OrderBy( FIELD => 'id' );