import rt 2.0.14
[freeside.git] / rt / webrt / Ticket / Display.html
diff --git a/rt/webrt/Ticket/Display.html b/rt/webrt/Ticket/Display.html
new file mode 100755 (executable)
index 0000000..cb0dc25
--- /dev/null
@@ -0,0 +1,152 @@
+%# $Header: /home/cvs/cvsroot/freeside/rt/webrt/Ticket/Attic/Display.html,v 1.1 2002-08-12 06:17:09 ivan Exp $
+%# Copyright 1996-2000 Jesse Vincent <jesse@fsck.com>
+
+<& /Elements/Header, Title => "Ticket #".$Ticket->Id ." ".$Ticket->Subject &>
+<& /Ticket/Elements/Tabs, Ticket => $Ticket, current_tab => 'Ticket/Display.html?id='.$Ticket->id &>
+
+<& /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.');
+    }
+   
+    my $due = new RT::Date($session{'CurrentUser'});
+    $due->Set(Format => 'unknown', Value => $ARGS{'Due'});
+    my $starts = new RT::Date($session{'CurrentUser'});
+    $starts->Set(Format => 'unknown', Value => $ARGS{'Starts'});
+    
+    my @Requestors = split(/,/,$ARGS{'Requestors'});
+    my @Cc = split(/,/,$ARGS{'Cc'});
+    my @AdminCc = split(/,/,$ARGS{'AdminCc'});
+    
+    my $MIMEObj = MakeMIMEEntity( Subject => $ARGS{'Subject'},
+                                 From => $ARGS{'From'},
+                                 Cc => $ARGS{'Cc'},
+                                 Body => $ARGS{'Content'},
+                                 AttachmentFieldName => 'Attach');
+                                 
+    my %create_args = ( 
+                      Queue=>$ARGS{Queue},
+                      Owner=>$ARGS{ValueOfOwner},
+                      InitialPriority=> $ARGS{InitialPriority},
+                      FinalPriority=> $ARGS{FinalPriority},
+                      TimeLeft => $ARGS{TimeLeft},
+                      TimeWorked => $ARGS{TimeWorked},
+                      Requestor=> \@Requestors,
+                      Cc => \@Cc,
+                      AdminCc => \@AdminCc,
+                      Subject=>$ARGS{Subject},
+                      Status=>$ARGS{Status},
+                      Due => $due->ISO,
+                      Starts => $starts->ISO,
+                      MIMEObj => $MIMEObj        
+                     );         
+
+    
+    # we need to get any KeywordSelect-<integer> fields into %create_args..
+    grep { $_ =~ /^KeywordSelect-/ && {$create_args{$_} = $ARGS{$_}}} %ARGS;
+
+    my ($id, $Trans, $ErrMsg)= $Ticket->Create(%create_args);
+    unless ($id && $Trans) {
+       Abort($ErrMsg);
+    }
+    my @linktypes = qw( DependsOn MemberOf RefersTo );
+    
+    foreach my $linktype (@linktypes) {
+      foreach my $luri (split (/ /,$ARGS{"new-$linktype"})) {
+       $luri =~ s/\s*$//; # Strip trailing whitespace
+       my ($val, $msg) = $Ticket->AddLink( Target => $luri,
+                                           Type => $linktype);
+       push @Actions, $msg;
+      }
+      
+      foreach my $luri (split (/ /,$ARGS{"$linktype-new"})) {
+       my ($val, $msg) = $Ticket->AddLink( Base => $luri,
+                                           Type => $linktype);
+       
+       push @Actions, $msg;
+      }
+    }
+    # don't try to change queue to the current queue
+    delete $ARGS{'Queue'};
+
+    push(@Actions, $ErrMsg);
+    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);
+  }
+}
+    $ARGS{'UpdateContent'} =~ s/\r\n/\n/g;
+
+    if ($ARGS{'UpdateContent'} &&
+        $ARGS{'UpdateContent'} ne '' &&
+        $ARGS{'UpdateContent'} ne  "-- \n" .
+                                $session{'CurrentUser'}->UserObj->Signature
+       ) {
+           ProcessUpdateMessage(ARGSRef=>\%ARGS, 
+                                Actions=>\@Actions, 
+                                TicketObj=>$Ticket);
+       }
+#Process status updates
+my @BasicActions = ProcessTicketBasics(ARGSRef => \%ARGS, TicketObj=>$Ticket);
+
+push (@Actions, @BasicActions);
+}
+</%INIT>
+
+
+
+