]> git.uio.no Git - usit-rt.git/blame - share/html/Approvals/Elements/PendingMyApproval
Merge branch 'master' of git.uio.no:usit-rt
[usit-rt.git] / share / html / Approvals / Elements / PendingMyApproval
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
320f0092 5%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
84fb5b46
MKG
6%# <sales@bestpractical.com>
7%#
8%# (Except where explicitly superseded by other copyright notices)
9%#
10%#
11%# LICENSE:
12%#
13%# This work is made available to you under the terms of Version 2 of
14%# the GNU General Public License. A copy of that license should have
15%# been provided with this software, but in any event can be snarfed
16%# from www.gnu.org.
17%#
18%# This work is distributed in the hope that it will be useful, but
19%# WITHOUT ANY WARRANTY; without even the implied warranty of
20%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21%# General Public License for more details.
22%#
23%# You should have received a copy of the GNU General Public License
24%# along with this program; if not, write to the Free Software
25%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26%# 02110-1301 or visit their web page on the internet at
27%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28%#
29%#
30%# CONTRIBUTION SUBMISSION POLICY:
31%#
32%# (The following paragraph is not intended to limit the rights granted
33%# to you to modify and distribute this software under the terms of
34%# the GNU General Public License and is only of importance to you if
35%# you choose to contribute your changes and enhancements to the
36%# community by submitting them to Best Practical Solutions, LLC.)
37%#
38%# By intentionally submitting any modifications, corrections or
39%# derivatives to this work, or any other work intended for use with
40%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41%# you are the copyright holder for those contributions and you grant
42%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43%# royalty-free, perpetual, license to use, copy, create derivative
44%# works based on those contributions, and sublicense and distribute
45%# those contributions and any derivatives thereof.
46%#
47%# END BPS TAGGED BLOCK }}}
48% my %done;
49% foreach ($tickets, $group_tickets) {
50% while (my $ticket = $_->Next() ) {
51% next if !$ARGS{'ShowDependent'} and $ticket->HasUnresolvedDependencies( Type => 'approval' );
52% next if $done{$ticket->Id}++; # don't show duplicate tickets
53<& Approve, ticket => $ticket &>
54% }
55% }
56
57<&| /Widgets/TitleBox, title => loc("Search for approvals") &>
af59614d 58<input type="checkbox" class="checkbox" value="1" id="ShowPending" name="ShowPending"
84fb5b46
MKG
59 <%((!$ARGS{'ShowRejected'} && !$ARGS{'ShowResolved'}) ||
60 $ARGS{'ShowPending'})
af59614d
MKG
61 && qq[checked="checked"] |n%> />
62<label for="ShowPending"><&|/l&>Show pending requests</&></label><br />
84fb5b46 63
af59614d
MKG
64<input type="checkbox" class="checkbox" value="1" id="ShowResolved" name="ShowResolved" <% defined($ARGS{'ShowResolved'}) && $ARGS{'ShowResolved'} && qq[checked="checked"] |n%> />
65<label for="ShowResolved"><&|/l&>Show approved requests</&></label><br />
84fb5b46 66
af59614d
MKG
67<input type="checkbox" class="checkbox" value="1" id="ShowRejected" name="ShowRejected" <% defined($ARGS{'ShowRejected'}) && $ARGS{'ShowRejected'} && qq[checked="checked"] |n%> />
68<label for="ShowRejected"><&|/l&>Show denied requests</&></label><br />
69
70<input type="checkbox" class="checkbox" value="1" id="ShowDependent" name="ShowDependent" <% defined($ARGS{'ShowDependent'}) && $ARGS{'ShowDependent'} && qq[checked="checked"] |n%> />
71<label for="ShowDependent"><&|/l&>Show requests awaiting other approvals</&></label><br />
72
c33a4027 73<&|/l_unsafe, qq{<input size='15' class="datepicker" value='}.($created_before->IsSet &&$created_before->ISO(Timezone => 'user'))."' name='CreatedBefore' id='CreatedBefore' />"&>Only show approvals for requests created before [_1]</&><br />
af59614d 74
c33a4027 75<&|/l_unsafe, qq{<input size='15' class="datepicker" value='}.( $created_after->IsSet && $created_after->ISO(Timezone => 'user'))."' name='CreatedAfter' id='CreatedAfter' />"&>Only show approvals for requests created after [_1]</&>
84fb5b46
MKG
76</&>
77
78<%init>
79my $tickets = RT::Tickets->new( $session{'CurrentUser'} );
80$tickets->LimitOwner( VALUE => $session{'CurrentUser'}->Id );
81
82# also consider AdminCcs as potential approvers.
83my $group_tickets = RT::Tickets->new( $session{'CurrentUser'} );
dab09ea8 84$group_tickets->LimitWatcher( VALUE => $session{'CurrentUser'}->EmailAddress, TYPE => 'AdminCc' );
84fb5b46
MKG
85
86my $created_before = RT::Date->new( $session{'CurrentUser'} );
87my $created_after = RT::Date->new( $session{'CurrentUser'} );
88
89foreach ($tickets, $group_tickets) {
af59614d 90 $_->LimitType( VALUE => 'approval' );
84fb5b46
MKG
91
92 if ( $ARGS{'ShowResolved'} ) {
af59614d 93 $_->LimitStatus( VALUE => 'resolved' );
84fb5b46
MKG
94 }
95 if ( $ARGS{'ShowRejected'} ) {
af59614d 96 $_->LimitStatus( VALUE => 'rejected' );
84fb5b46
MKG
97 }
98 if ( $ARGS{'ShowPending'} || ( !$ARGS{'ShowRejected'} && !$ARGS{'Resolved'} ) ) {
af59614d
MKG
99 $_->LimitStatus( VALUE => 'open' );
100 $_->LimitStatus( VALUE => 'new' );
101 $_->LimitStatus( VALUE => 'stalled' );
84fb5b46
MKG
102 }
103
104 if ( $ARGS{'CreatedBefore'} ) {
af59614d
MKG
105 $created_before->Set( Format => 'unknown', Value => $ARGS{'CreatedBefore'} );
106 $_->LimitCreated( OPERATOR => "<=", VALUE => $created_before->ISO );
84fb5b46
MKG
107 }
108 if ( $ARGS{'CreatedAfter'} ) {
af59614d
MKG
109 $created_after->Set( Format => 'unknown', Value => $ARGS{'CreatedAfter'} );
110 $_->LimitCreated( OPERATOR => ">=", VALUE => $created_after->ISO );
84fb5b46
MKG
111 }
112 $_->OrderBy( FIELD => 'id' );
113}
114
115</%init>