import rt 3.8.7
[freeside.git] / rt / share / html / Elements / ShowLinks
1 %# BEGIN BPS TAGGED BLOCK {{{
2 %# 
3 %# COPYRIGHT:
4 %# 
5 %# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
6 %#                                          <jesse@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 <table>
49   <tr>
50     <td class="labeltop"><&|/l&>Depends on</&>: (<a href="<%$clone->{'DependsOn-new'}%>"><% loc('Create') %></a>)</td>
51     <td class="value">
52
53 <%PERL>
54 my ( @active, @inactive, @not_tickets );
55 for my $link ( @{ $Ticket->DependsOn->ItemsArrayRef } ) {
56     my $target = $link->TargetObj;
57     if ( $target && $target->isa('RT::Ticket') ) {
58         if ( $target->QueueObj->IsInactiveStatus( $target->Status ) ) {
59             push( @inactive, $link->TargetURI );
60         }
61         else {
62             push( @active, $link->TargetURI );
63         }
64     }
65     else {
66         push( @not_tickets, $link->TargetURI );
67     }
68 }
69 </%PERL>
70
71
72 <ul>
73 % for my $Link (@not_tickets, @active, @inactive) {
74 <li><& ShowLink, URI => $Link &></li>
75 % }
76 </ul>
77     </td>
78   </tr>
79   <tr>
80     <td class="labeltop"><&|/l&>Depended on by</&>: (<a href="<%$clone->{'new-DependsOn'}%>"><% loc('Create') %></a>)</td>
81     <td class="value">
82 <ul>
83 % while (my $Link = $Ticket->DependedOnBy->Next) {
84 <li><& ShowLink, URI => $Link->BaseURI &></li>
85 % }
86 </ul>
87     </td>
88   </tr>
89   <tr>
90     <td class="labeltop"><&|/l&>Parents</&>: (<a href="<%$clone->{'MemberOf-new'}%>"><% loc('Create') %></a>)</td>
91     <td class="value"><& /Ticket/Elements/ShowParents, Ticket => $Ticket &></td>
92   </tr>
93   <tr>
94     <td class="labeltop"><&|/l&>Children</&>: (<a href="<%$clone->{'new-MemberOf'}%>"><% loc('Create') %></a>)</td>
95     <td class="value"><& /Ticket/Elements/ShowMembers, Ticket => $Ticket &></td>
96   </tr>
97   <tr>
98     <td class="labeltop"><&|/l&>Refers to</&>: (<a href="<%$clone->{'RefersTo-new'}%>"><% loc('Create') %></a>)</td>
99     <td class="value">
100 <ul>
101 % while (my $Link = $Ticket->RefersTo->Next) {
102 <li><& ShowLink, URI => $Link->TargetURI &></li>
103 % }
104 </ul>
105     </td>
106   </tr>
107   <tr>
108     <td class="labeltop"><&|/l&>Referred to by</&>: (<a href="<%$clone->{'new-RefersTo'}%>"><% loc('Create') %></a>)</td>
109     <td class="value">
110     <ul>
111 % while (my $Link = $Ticket->ReferredToBy->Next) {
112 % next if (UNIVERSAL::isa($Link->BaseObj, 'RT::Ticket')  && $Link->BaseObj->Type eq 'reminder');
113 <li><& ShowLink, URI => $Link->BaseURI &></li>
114 % }
115 </ul>
116     </td>
117   </tr>
118
119
120 % # Allow people to add more rows to the table
121 % $m->callback( %ARGS );
122
123 </table>
124
125 <%INIT>
126
127 my $clone = {};
128 my $path
129     = RT->Config->Get('WebPath')
130     . '/Ticket/Create.html?Queue='
131     . $Ticket->Queue
132     . '&CloneTicket='
133     . $Ticket->id;
134
135
136 for my $relation (
137     qw(RefersTo ReferredToBy)) {
138     my $mode  = $RT::Ticket::LINKTYPEMAP{$relation}->{Mode};
139     my $type  = $RT::Ticket::LINKTYPEMAP{$relation}->{Type};
140     my $other = "Local" . $mode;
141     my $field = $mode eq 'Base' ? 'new-' . $type : $type . '-new';
142     $clone->{$field} 
143         = $path . "&$field="
144         . join( '%20',
145         ( map { $_->$other() } @{ $Ticket->$relation->ItemsArrayRef } ),
146         $Ticket->id );
147 }
148
149 for my $relation ( qw(MemberOf Members DependsOn DependedOnBy)) {
150     my $mode  = $RT::Ticket::LINKTYPEMAP{$relation}->{Mode};
151     my $type  = $RT::Ticket::LINKTYPEMAP{$relation}->{Type};
152     my $field = $mode eq 'Base' ? 'new-' . $type : $type . '-new';
153     $clone->{$field} = $path . "&$field=". $Ticket->id ;
154 }
155
156 </%INIT>
157
158 <%ARGS>
159 $Ticket => undef
160 </%ARGS>