import rt 2.0.14
[freeside.git] / rt / webrt / SelfService / Display.html
diff --git a/rt/webrt/SelfService/Display.html b/rt/webrt/SelfService/Display.html
new file mode 100755 (executable)
index 0000000..2d44f14
--- /dev/null
@@ -0,0 +1,190 @@
+%# $Header: /home/cvs/cvsroot/freeside/rt/webrt/SelfService/Attic/Display.html,v 1.1 2002-08-12 06:17:09 ivan Exp $
+%# Copyright 1996-2001 Jesse Vincent <jesse@fsck.com>
+
+<& /SelfService/Elements/Header, Title => 'Display ticket #'.$Ticket->id &>
+
+
+<& /Elements/ListActions, actions => \@results &>
+
+<TABLE>
+    <TR>
+       <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Ticket Id
+       </TD>
+      <TD>
+       <%$Ticket->Id%>
+       </TD>
+      </TR>
+    <TR>       
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Requestors
+       </TD>
+      <TD>
+       <%$Ticket->RequestorsAsString%>
+      </TD>
+      </TR>
+    <TR>       
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Cc
+       </TD>
+      <TD>
+       <%$Ticket->CcAsString%>
+      </TD>
+    </TR>
+
+  <TR> 
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Status
+       </TD>
+      <TD>
+       <%$Ticket->Status%>
+      </TD>
+    </TR>
+
+    <TR>       
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Queue
+       </TD>
+      <TD>
+       <%$Ticket->QueueObj->Name%> (<%$Ticket->QueueObj->Description%>)
+      </TD>
+    </TR>
+    <TR>       
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Priority
+      </TD>
+      <TD>
+       <%$Ticket->Priority %>
+      </TD>
+    </TR>
+%  if ($Ticket->TimeWorked) {
+   <TR>        
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       Worked
+      </TD>
+      <TD>
+       <%$Ticket->TimeWorked %> minutes
+      </TD>
+    </TR>
+% }
+    
+% my $selects = $Ticket->QueueObj->KeywordSelects;
+% while (my $select = $selects->Next) {
+    <TR>
+      <TD VALIGN=TOP WIDTH="20%" ALIGN=RIGHT>
+       <%$select->Name%>
+      </TD>
+      <TD>
+% my $object_keywords = $Ticket->KeywordsObj($select->id);     
+% while (my $keyword = $object_keywords->Next) {
+       <%$keyword->KeywordObj->RelativePath($select->KeywordObj)%>
+% }
+%}
+       </TD>
+      </TR>
+
+
+
+
+       </TABLE>
+<TABLE BORDER=0 CELLSPACING=0>
+% my ($i);
+%while (my $Transaction = $Transactions->Next) {
+% $i++;
+%      if ($Transactions->IsLast) {
+       <a name="lasttrans"></a>
+%      }
+       <& /Ticket/Elements/ShowTransaction, Transaction => $Transaction, 
+                                            RowNum => $i,
+                                            Ticket => $Ticket &>
+
+%}
+</TABLE>
+
+
+<%INIT>
+
+my ($field, @results);
+
+# {{{ Load the ticket
+#If we get handed two ids, mason will make them an array. bleck.
+# We want teh first one. Just because there's no other sensible way
+# to deal
+my @id = (ref $id eq 'ARRAY') ? @{$id} : ($id);                
+
+
+my $Ticket = new RT::Ticket($session{'CurrentUser'});
+if ($id[0] eq 'new') {
+    # {{{ Create a new ticket
+    
+    my $Queue = new RT::Queue($session{'CurrentUser'});        
+    unless ($Queue->Load($ARGS{'Queue'})) {
+       $m->comp('Error.html', Why => 'Queue not found');
+       $m->abort;
+    }
+    
+    unless ($Queue->CurrentUserHasRight('CreateTicket')) {
+       $m->comp('Error.html', Why => 'You have no permission to create tickets in that queue.');
+       $m->abort; 
+    }
+    
+    my @Requestors = split(/,/,$ARGS{'Requestors'});
+    my @Cc = split(/,/,$ARGS{'Cc'});
+    
+
+    my $MIMEObj = MakeMIMEEntity ( Subject => $ARGS{'Subject'},
+                                  From => $ARGS{'From'},
+                                  Cc => $ARGS{'Cc'},
+                                  Body => $ARGS{'Content'},
+                                  AttachmentFieldName => 'Attach');
+
+    #TODO in Create_Details.html: priorities and due-date      
+    my ($id, $Trans, $ErrMsg)= $Ticket->Create(Queue=>$ARGS{Queue},
+                                              Requestor=> \@Requestors,
+                                              Cc => \@Cc,
+                                              Subject=>$ARGS{Subject},
+                                              MIMEObj => $MIMEObj        
+                                             );         
+    unless ($id && $Trans) {
+       $m->comp('Error.html', Why => $ErrMsg);
+       $m->abort(); 
+    }
+
+    push(@results, $ErrMsg);
+
+    # }}}
+}
+else {
+    unless ($Ticket->Load($id[0])) {
+       $m->comp('Error.html', Why =>"Couldn't load ticket '$id'");
+       $m->abort();
+    }
+}
+# }}}
+
+unless ($session{'CurrentUser'}->HasQueueRight ( TicketObj => $Ticket,
+                                                Right => 'ShowTicket')) {
+    $m->comp('Error.html', Why => "No permission to display that ticket");
+    $m->abort();
+}
+
+my ($code, $msg);
+
+#Update the status
+if ((defined $ARGS{'Status'}) and 
+    ($ARGS{'Status'} ne $Ticket->Status)) {
+    ($code, $msg) = $Ticket->SetStatus($ARGS{'Status'});
+    push @results, "$msg";
+}
+
+ProcessUpdateMessage(ARGSRef=>\%ARGS, Actions=>\@results, TicketObj=>$Ticket);
+
+my $Transactions = $Ticket->Transactions;
+
+</%INIT>
+
+
+<%ARGS>
+$id => undef
+</%ARGS>