import of rt 3.0.4
[freeside.git] / rt / html / Approvals / Elements / ShowDependency
diff --git a/rt/html/Approvals/Elements/ShowDependency b/rt/html/Approvals/Elements/ShowDependency
new file mode 100644 (file)
index 0000000..417cad1
--- /dev/null
@@ -0,0 +1,85 @@
+%# BEGIN LICENSE BLOCK
+%# 
+%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+%# 
+%# (Except where explictly superceded by other copyright notices)
+%# 
+%# 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.
+%# 
+%# Unless otherwise specified, all modifications, corrections or
+%# extensions to this work which alter its source code become the
+%# property of Best Practical Solutions, LLC when submitted for
+%# inclusion in the work.
+%# 
+%# 
+%# END LICENSE BLOCK
+% my $approving = $Ticket->DependedOnBy();
+% if ($approving->Count) {
+<h3><&|/l&>Tickets which depend on this approval:</&></h3>
+
+<table width=100%>
+<TR>
+<TD WIDTH="25" bgcolor="#999999">&nbsp;</TD><TD>
+<%PERL>
+my %show;
+while (my $link = $approving->Next()) {
+    next unless ($link->BaseURI->IsLocal());
+    my $text = '<a name="' . $link->BaseObj->Id . '">';
+    my $head = '';
+    my $type = $link->BaseObj->Type;
+    my $dep  = $m->scomp('ShowDependency', Ticket => $link->BaseObj, _seen => $_seen);
+
+    if ($type eq 'approval') {
+       $head .= $m->scomp('/Elements/TitleBoxStart', title => loc("Approval #[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject));
+       $text .= $head;
+       $text .= $m->scomp('/Ticket/Elements/ShowCustomFields', Ticket => $link->BaseObj);
+    } elsif ($type eq 'ticket') {
+       $head .= $m->scomp('/Elements/TitleBoxStart', title => loc("Ticket #[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject));
+       $text .= $head;
+       $text .= $m->scomp('/Ticket/Elements/ShowSummary', Ticket => $link->BaseObj);
+    } else {
+       $head .= $m->scomp('/Elements/TitleBoxStart', title => loc("#[_1]: [_2]", $link->BaseObj->Id, $link->BaseObj->Subject));
+       $text .= $head;
+    }
+
+    $text .= $m->scomp('/Ticket/Elements/ShowHistory' , Ticket => $link->BaseObj, Collapsed => ($type ne 'ticket'), ShowTitle => 0, ShowHeaders => 0, ShowDisplayModes => 0, ShowTitleBarCommands => 0);
+
+    $head .= $m->scomp('/Elements/TitleBoxEnd');
+    $text .= $m->scomp('/Elements/TitleBoxEnd');
+    $text .= $dep;
+    $text .= '</a>';
+    $show{$link->BaseObj->Id} = {
+       text => $text,
+       head => $head,
+    };
+}
+
+my $refer;
+foreach my $id (sort keys %show) {
+    if ($_seen->{$id}++) {
+       $refer .= "<a href='#txn-$id'>" . $show{$id}{head} . "</a>";
+       next;
+    }
+
+    $m->print($show{$id}{text});
+}
+$m->print($refer);
+
+</%PERL>
+</TD>
+</TR>
+</TABLE>
+
+% }
+<%ARGS>
+$Ticket
+$_seen => {}
+</%ARGS>