import of rt 3.0.4
[freeside.git] / rt / html / Ticket / Display.html
diff --git a/rt/html/Ticket/Display.html b/rt/html/Ticket/Display.html
new file mode 100644 (file)
index 0000000..cf32dce
--- /dev/null
@@ -0,0 +1,116 @@
+%# 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
+<& /Elements/Header, 
+    Title => loc("#[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &>
+<& /Ticket/Elements/Tabs, 
+    Ticket => $Ticket, 
+    current_tab => 'Ticket/Display.html?id='.$Ticket->id,
+    Title => loc("#[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &>
+
+<& /Elements/ListActions, actions => \@Actions &>
+
+<& /Ticket/Elements/ShowSummary,  Ticket => $Ticket &>
+
+
+<BR>
+<& /Ticket/Elements/ShowHistory , 
+      Ticket => $Ticket, 
+      Collapsed => $ARGS{'Collapsed'}, 
+      ShowHeaders => $ARGS{'ShowHeaders'} &> 
+
+  
+<%ARGS>
+$id => undef
+$Create => undef
+$ShowHeaders => undef
+$Collapsed => undef
+</%ARGS>
+
+<%INIT>
+  my ($linkid, $message, $tid, $Ticket, @Actions);  
+
+$Ticket = new RT::Ticket($session{'CurrentUser'});
+
+unless ($id) {
+    Abort('No ticket specified');
+}
+
+if ($ARGS{'id'} eq 'new') {
+    # {{{ Create a new ticket
+    
+    my $Queue = new RT::Queue($session{'CurrentUser'});        
+    unless ($Queue->Load($ARGS{'Queue'})) {
+       Abort('Queue not found');
+    }
+    
+    unless ($Queue->CurrentUserHasRight('CreateTicket')) {
+       Abort('You have no permission to create tickets in that queue.');
+    }
+    ($Ticket, @Actions) =
+       CreateTicket(Attachments => $session{'Attachments'}, %ARGS);
+    delete $session{'Attachments'};
+    unless ($Ticket->CurrentUserHasRight('ShowTicket')) {
+      Abort("No permission to view newly created ticket #".$Ticket->id.".");
+    }
+    # }}}
+}
+
+else { 
+    $Ticket = LoadTicket($ARGS{'id'});
+    unless ($Ticket->CurrentUserHasRight('ShowTicket')) {
+       Abort("No permission to view ticket");
+    }
+
+
+if (defined $ARGS{'Action'}) {
+  if ($ARGS{'Action'} =~ /^(Steal|Kill|Take|SetTold)$/) {
+    my $action = $1;
+    my ($res, $msg)=$Ticket->$action();
+    push(@Actions, $msg);
+  }
+}
+
+    if ( $ARGS{'UpdateContent'} ) {
+        $ARGS{'UpdateContent'} =~ s/\r\n/\n/g;
+        if (    $ARGS{'UpdateContent'} ne ''
+             && $ARGS{'UpdateContent'} ne "-- \n"
+             . $session{'CurrentUser'}->UserObj->Signature ) {
+            $ARGS{UpdateAttachments} = $session{'Attachments'};
+            ProcessUpdateMessage( ARGSRef   => \%ARGS,
+                                  Actions   => \@Actions,
+                                  TicketObj => $Ticket );
+            delete $session{'Attachments'};
+        }
+    }
+#Process status updates
+my @BasicActions = ProcessTicketBasics(ARGSRef => \%ARGS, TicketObj=>$Ticket);
+my @results = ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS);                            
+
+push (@Actions, @BasicActions, @results);
+}
+</%INIT>
+
+
+
+