]> git.uio.no Git - usit-rt.git/blame - share/html/Approvals/Elements/PendingMyApproval
Crontol standalone
[usit-rt.git] / share / html / Approvals / Elements / PendingMyApproval
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
403d7b0b 5%# This software is Copyright (c) 1996-2013 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") &>
58<input type="checkbox" class="checkbox" value="1" name="ShowPending"
59 <%((!$ARGS{'ShowRejected'} && !$ARGS{'ShowResolved'}) ||
60 $ARGS{'ShowPending'})
61 && qq[checked="checked"] |n%> /> <&|/l&>Show pending requests</&><br />
62<input type="checkbox" class="checkbox" value="1" name="ShowResolved" <% defined($ARGS{'ShowResolved'}) && $ARGS{'ShowResolved'} && qq[checked="checked"] |n%> /> <&|/l&>Show approved requests</&><br />
63<input type="checkbox" class="checkbox" value="1" name="ShowRejected" <% defined($ARGS{'ShowRejected'}) && $ARGS{'ShowRejected'} && qq[checked="checked"] |n%> /> <&|/l&>Show denied requests</&><br />
64<input type="checkbox" class="checkbox" value="1" name="ShowDependent" <% defined($ARGS{'ShowDependent'}) && $ARGS{'ShowDependent'} && qq[checked="checked"] |n%> /> <&|/l&>Show requests awaiting other approvals</&><br />
65
66<&|/l_unsafe, qq{<input size='15' class="ui-datepicker" value='}.($created_before->Unix > 0 &&$created_before->ISO(Timezone => 'user'))."' name='CreatedBefore' id='CreatedBefore' />"&>Only show approvals for requests created before [_1]</&><br />
67
68<&|/l_unsafe, qq{<input size='15' class="ui-datepicker" value='}.( $created_after->Unix >0 && $created_after->ISO(Timezone => 'user'))."' name='CreatedAfter' id='CreatedAfter' />"&>Only show approvals for requests created after [_1]</&>
69</&>
70
71<%init>
72my $tickets = RT::Tickets->new( $session{'CurrentUser'} );
73$tickets->LimitOwner( VALUE => $session{'CurrentUser'}->Id );
74
75# also consider AdminCcs as potential approvers.
76my $group_tickets = RT::Tickets->new( $session{'CurrentUser'} );
dab09ea8 77$group_tickets->LimitWatcher( VALUE => $session{'CurrentUser'}->EmailAddress, TYPE => 'AdminCc' );
84fb5b46
MKG
78
79my $created_before = RT::Date->new( $session{'CurrentUser'} );
80my $created_after = RT::Date->new( $session{'CurrentUser'} );
81
82foreach ($tickets, $group_tickets) {
83 $_->Limit( FIELD => 'Type', VALUE => 'approval' );
84
85 if ( $ARGS{'ShowResolved'} ) {
86 $_->LimitStatus( VALUE => 'resolved' );
87 }
88 if ( $ARGS{'ShowRejected'} ) {
89 $_->LimitStatus( VALUE => 'rejected' );
90 }
91 if ( $ARGS{'ShowPending'} || ( !$ARGS{'ShowRejected'} && !$ARGS{'Resolved'} ) ) {
92 $_->LimitStatus( VALUE => 'open' );
93 $_->LimitStatus( VALUE => 'new' );
94 $_->LimitStatus( VALUE => 'stalled' );
95 }
96
97 if ( $ARGS{'CreatedBefore'} ) {
98 $created_before->Set( Format => 'unknown', Value => $ARGS{'CreatedBefore'} );
99 $_->LimitCreated( OPERATOR => "<=", VALUE => $created_before->ISO );
100 }
101 if ( $ARGS{'CreatedAfter'} ) {
102 $created_after->Set( Format => 'unknown', Value => $ARGS{'CreatedAfter'} );
103 $_->LimitCreated( OPERATOR => ">=", VALUE => $created_after->ISO );
104 }
105 $_->OrderBy( FIELD => 'id' );
106}
107
108</%init>