1 %# $Header: /home/cvs/cvsroot/freeside/rt/webrt/Ticket/Attic/Display.html,v 1.1 2002-08-12 06:17:09 ivan Exp $
2 %# Copyright 1996-2000 Jesse Vincent <jesse@fsck.com>
4 <& /Elements/Header, Title => "Ticket #".$Ticket->Id ." ".$Ticket->Subject &>
5 <& /Ticket/Elements/Tabs, Ticket => $Ticket, current_tab => 'Ticket/Display.html?id='.$Ticket->id &>
7 <& /Elements/ListActions, actions => \@Actions &>
9 <& /Ticket/Elements/ShowSummary, Ticket => $Ticket &>
13 <& /Ticket/Elements/ShowHistory ,
15 Collapsed => $ARGS{'Collapsed'},
16 ShowHeaders => $ARGS{'ShowHeaders'} &>
29 my ($linkid, $message, $tid, $Ticket, @Actions);
31 $Ticket = new RT::Ticket($session{'CurrentUser'});
34 Abort('No ticket specified');
37 if ($ARGS{'id'} eq 'new') {
38 # {{{ Create a new ticket
40 my $Queue = new RT::Queue($session{'CurrentUser'});
41 unless ($Queue->Load($ARGS{'Queue'})) {
42 Abort('Queue not found');
45 unless ($Queue->CurrentUserHasRight('CreateTicket')) {
46 Abort('You have no permission to create tickets in that queue.');
49 my $due = new RT::Date($session{'CurrentUser'});
50 $due->Set(Format => 'unknown', Value => $ARGS{'Due'});
51 my $starts = new RT::Date($session{'CurrentUser'});
52 $starts->Set(Format => 'unknown', Value => $ARGS{'Starts'});
55 my @Requestors = split(/,/,$ARGS{'Requestors'});
56 my @Cc = split(/,/,$ARGS{'Cc'});
57 my @AdminCc = split(/,/,$ARGS{'AdminCc'});
59 my $MIMEObj = MakeMIMEEntity( Subject => $ARGS{'Subject'},
60 From => $ARGS{'From'},
62 Body => $ARGS{'Content'},
63 AttachmentFieldName => 'Attach');
68 Owner=>$ARGS{ValueOfOwner},
69 InitialPriority=> $ARGS{InitialPriority},
70 FinalPriority=> $ARGS{FinalPriority},
71 TimeLeft => $ARGS{TimeLeft},
72 TimeWorked => $ARGS{TimeWorked},
73 Requestor=> \@Requestors,
76 Subject=>$ARGS{Subject},
77 Status=>$ARGS{Status},
79 Starts => $starts->ISO,
84 # we need to get any KeywordSelect-<integer> fields into %create_args..
85 grep { $_ =~ /^KeywordSelect-/ && {$create_args{$_} = $ARGS{$_}}} %ARGS;
87 my ($id, $Trans, $ErrMsg)= $Ticket->Create(%create_args);
88 unless ($id && $Trans) {
91 my @linktypes = qw( DependsOn MemberOf RefersTo );
93 foreach my $linktype (@linktypes) {
94 foreach my $luri (split (/ /,$ARGS{"new-$linktype"})) {
95 $luri =~ s/\s*$//; # Strip trailing whitespace
96 my ($val, $msg) = $Ticket->AddLink( Target => $luri,
101 foreach my $luri (split (/ /,$ARGS{"$linktype-new"})) {
102 my ($val, $msg) = $Ticket->AddLink( Base => $luri,
108 # don't try to change queue to the current queue
109 delete $ARGS{'Queue'};
111 push(@Actions, $ErrMsg);
112 unless ($Ticket->CurrentUserHasRight('ShowTicket')) {
113 Abort("No permission to view newly created ticket #".$Ticket->id.".");
119 $Ticket = LoadTicket($ARGS{'id'});
120 unless ($Ticket->CurrentUserHasRight('ShowTicket')) {
121 Abort("No permission to view ticket");
125 if (defined $ARGS{'Action'}) {
126 if ($ARGS{'Action'} =~ /^(Steal|Kill|Take|SetTold)$/) {
128 my ($res, $msg)=$Ticket->$action();
129 push(@Actions, $msg);
132 $ARGS{'UpdateContent'} =~ s/\r\n/\n/g;
134 if ($ARGS{'UpdateContent'} &&
135 $ARGS{'UpdateContent'} ne '' &&
136 $ARGS{'UpdateContent'} ne "-- \n" .
137 $session{'CurrentUser'}->UserObj->Signature
139 ProcessUpdateMessage(ARGSRef=>\%ARGS,
143 #Process status updates
144 my @BasicActions = ProcessTicketBasics(ARGSRef => \%ARGS, TicketObj=>$Ticket);
146 push (@Actions, @BasicActions);