import rt 3.8.8
[freeside.git] / rt / html / Ticket / Create.html
index c23a302..c35ed91 100644 (file)
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC 
 %#                                          <jesse@bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -24,7 +24,7 @@
 %# along with this program; if not, write to the Free Software
 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 %# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/copyleft/gpl.html.
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 %# 
 %# 
 %# CONTRIBUTION SUBMISSION POLICY:
@@ -62,8 +62,8 @@
 <&| /Widgets/TitleBox, title => loc("Create a new ticket") &>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td class="label"><&|/l&>Queue</&>:</td>
-<td class="value"><% $QueueObj->Name %>
-<input type="hidden" class="hidden" name="Queue" value="<%$QueueObj->Name%>" />
+<td class="value"><& Elements/ShowQueue, QueueObj => $QueueObj &>
+<input type="hidden" class="hidden" name="Queue" value="<% $QueueObj->Name %>" />
 </td>
 <td class="label"><&|/l&>Status</&>:
 </td>
@@ -86,7 +86,7 @@
 </td>
 </tr>
 <tr>
-<td class="labeltop">
+<td class="label">
 <&|/l&>Cc</&>:
 </td>
 <td class="value" colspan="5">
@@ -96,7 +96,7 @@
 </td>
 </tr>
 <tr>
-<td class="labeltop">
+<td class="label">
 <&|/l&>Admin Cc</&>:
 </td>
 <td class="value" colspan="5">
 <tr>
 <td colspan="6">
 <&|/l&>Describe the issue below</&>:<br />
+<& /Elements/Callback, _CallbackName => 'BeforeMessageBox', QueueObj => $QueueObj, %ARGS &>
 % if (exists $ARGS{Content}) {
 <& /Elements/MessageBox, Default => $ARGS{Content}, IncludeSignature => 0 &>
 % } else {
 
 <%INIT>
 
+my $CloneTicketObj;
+if ( $CloneTicket ) {
+    $CloneTicketObj = RT::Ticket->new( $session{CurrentUser} );
+    $CloneTicketObj->Load($CloneTicket) or Abort(loc("Ticket could not be loaded"));
+    
+    my $clone = {
+        Requestors       => join( ',', $CloneTicketObj->RequestorAddresses ),
+        Cc               => join( ',', $CloneTicketObj->CcAddresses),
+        AdminCc          => join( ',', $CloneTicketObj->AdminCcAddresses),
+        InitialPriority => $CloneTicketObj->Priority, 
+    };
+    
+    $clone->{$_} = $CloneTicketObj->$_() 
+        for qw/Owner Subject FinalPriority TimeEstimated TimeWorked 
+                Status TimeLeft Starts Started Due Resolved/;
+    
+        my $members = $CloneTicketObj->Members;
+        my ( @members, @members_of, @refers, @refers_by, @depends, @depends_by );
+        while ( my $member = $members->Next ) {
+            push @members, $member->LocalBase;
+        }
+        $clone->{'MemberOf-new'} = join ' ', @members;
+    
+        my $members_of = $CloneTicketObj->MemberOf;
+        while ( my $member_of = $members_of->Next ) {
+            push @members_of, $member_of->LocalTarget;
+        }
+        $clone->{'new-MemberOf'} = join ' ', @members_of;
+        
+        my $refers = $CloneTicketObj->RefersTo;
+        while ( my $refer = $refers->Next ) {
+            push @refers, $refer->LocalTarget;
+        }
+        $clone->{'new-RefersTo'} = join ' ', @refers;
+    
+        my $refers_by = $CloneTicketObj->ReferredToBy;
+        while ( my $refer_by = $refers_by->Next ) {
+            push @refers_by, $refer_by->LocalBase;
+        }
+        $clone->{'RefersTo-new'} = join ' ', @refers_by;
+    
+        my $depends = $CloneTicketObj->DependsOn;
+        while ( my $depend = $depends->Next ) {
+            push @depends, $depend->LocalTarget;
+        }
+        $clone->{'new-DependsOn'} = join ' ', @depends;
+    
+        my $depends_by = $CloneTicketObj->DependedOnBy;
+        while ( my $depend_by = $depends_by->Next ) {
+            push @depends_by, $depend_by->LocalBase;
+        }
+        $clone->{'DependsOn-new'} = join ' ', @depends_by;
+    
+    
+    
+    my $cfs = $CloneTicketObj->QueueObj->TicketCustomFields();
+    while ( my $cf = $cfs->Next ) {
+        my $cf_id = $cf->id;
+        my $cf_values = $CloneTicketObj->CustomFieldValues( $cf->id );
+        my @cf_values;
+        while ( my $cf_value = $cf_values->Next ) {
+            push @cf_values, $cf_value->Content;
+        }
+        $clone->{"Object-RT::Ticket--CustomField-$cf_id-Value"} 
+            = join "\n", @cf_values;
+    }
+    
+    for ( keys %$clone ) {
+        $ARGS{$_} = $clone->{$_} if not defined $ARGS{$_};
+    }
+
+}
 
 my @results;
 my $QueueObj = new RT::Queue($session{'CurrentUser'});
@@ -329,4 +402,5 @@ $DependedOnBy => undef
 $MemberOf => undef
 $QuoteTransaction => undef
 $Queue => undef
+$CloneTicket => undef
 </%ARGS>