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