[Rt-commit] r7489 - in rt/branches/3.7-EXPERIMENTAL: . html/Ticket lib/RT/Interface

jesse at bestpractical.com jesse at bestpractical.com
Thu Apr 12 03:10:08 EDT 2007


Author: jesse
Date: Thu Apr 12 03:10:08 2007
New Revision: 7489

Modified:
   rt/branches/3.7-EXPERIMENTAL/   (props changed)
   rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/util.js
   rt/branches/3.7-EXPERIMENTAL/html/Ticket/Update.html
   rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm

Log:
 r54777 at pinglin:  jesse | 2007-04-12 03:03:48 -0400
 * Added support for picking other ticket To/Cc/Bcc message recipients for cc on ticket replies


Modified: rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/util.js
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/util.js	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/NoAuth/js/util.js	Thu Apr 12 03:10:08 2007
@@ -259,3 +259,18 @@
 		}
 	}
 }
+
+function checkboxToInput(target,checkbox,val){    
+    var tar=$(target);
+    var box = $(checkbox);
+    if(box.checked){
+        if (tar.value==''){
+            tar.value=val;
+        }else{
+            tar.value=val+', '+tar.value;        }
+    }else{
+        tar.value=tar.value.replace(val+', ','');
+        tar.value=tar.value.replace(val,'');
+    }
+}
+

Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Update.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Update.html	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Update.html	Thu Apr 12 03:10:08 2007
@@ -51,9 +51,9 @@
 <form action="Update.html" name="TicketUpdate"
     method="post" enctype="multipart/form-data">
 % $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
-<input type="hidden" class="hidden" name="QuoteTransaction" value="<% $ARGS{QuoteTransaction} %>" />
-<input type="hidden" class="hidden" name="DefaultStatus" value="<% $DefaultStatus %>" />
-<input type="hidden" class="hidden" name="Action" value="<% $ARGS{Action} %>" />
+<input type="hidden" class="hidden" name="QuoteTransaction" value="<% $ARGS{QuoteTransaction}||'' %>" />
+<input type="hidden" class="hidden" name="DefaultStatus" value="<% $DefaultStatus ||''%>" />
+<input type="hidden" class="hidden" name="Action" value="<% $ARGS{Action}||'' %>" />
 <table border="0">
 
 <tr><td align="right"><&|/l&>Status</&>:</td>
@@ -61,7 +61,7 @@
 <& /Elements/SelectStatus, Name=>"Status", DefaultLabel => loc("[_1] (Unchanged)", loc($TicketObj->Status)), Default => $ARGS{'Status'} || ($TicketObj->Status eq $DefaultStatus ? undef : $DefaultStatus)&>
 <&|/l&>Owner</&>:  
 <& /Elements/SelectOwner, Name=>"Owner", DefaultLabel => loc("[_1] (Unchanged)", $TicketObj->OwnerObj->Name()), QueueObj => $TicketObj->QueueObj, TicketObj => $TicketObj, Default => $ARGS{'Owner'} &>
-<&|/l&>Worked</&>: <input size="4" name="UpdateTimeWorked" value="<% $ARGS{UpdateTimeWorked} %>" /> 
+<&|/l&>Worked</&>: <input size="4" name="UpdateTimeWorked" value="<% $ARGS{UpdateTimeWorked}||'' %>" /> 
 <& /Elements/SelectTimeUnits, Name => 'UpdateTimeWorked'&>
 </td></tr>
 % my $skip;
@@ -72,23 +72,49 @@
 <tr><td align="right"><&|/l&>Update Type</&>:</td>
 <td><select name="UpdateType">
 % if ($CanComment) {
-  <option value="private" <%$ARGS{'UpdateType'} eq "private" ? "SELECTED" : !$ARGS{'UpdateType'}&&$CommentDefault%>><&|/l&>Comments (Not sent to requestors)</&></option>
+<option value="private" <% ($ARGS{'UpdateType'} &&  $ARGS{'UpdateType'} eq "private") ? "SELECTED" : !$ARGS{'UpdateType'}&&$CommentDefault%>><&|/l&>Comments (Not sent to requestors)</&></option>
 % }
 % if ($CanRespond) {
-   <option value="response" <%$ARGS{'UpdateType'} eq "response" ? "SELECTED" : !$ARGS{'UpdateType'}&&$ResponseDefault%>><&|/l&>Reply to requestors</&></option>
+<option value="response" <% ($ARGS{'UpdateType'} && $ARGS{'UpdateType'} eq "response") ? "SELECTED" : !$ARGS{'UpdateType'}&&$ResponseDefault%>><&|/l&>Reply to requestors</&></option>
 % }
 </select> 
 </td></tr>
 <tr><td align="right"><&|/l&>Subject</&>:</td><td> <input name="UpdateSubject" size="60" value="<% $ARGS{UpdateSubject} || $TicketObj->Subject()%>" /></td></tr>
-<tr><td align="right"><&|/l&>Cc</&>:</td><td> <input name="UpdateCc" size="60"
-value="<% $ARGS{UpdateCc} %>" /><br />
+<tr><td align="right"><&|/l&>Cc</&>:</td><td> <input name="UpdateCc" id = "UpdateCc" size="60"
+        value="<% $ARGS{UpdateCc}||'' %>" />
+<input type="hidden" id="UpdateIgnoreAddressCheckboxes" name="UpdateIgnoreAddressCheckboxes" value="0">
+        <br />
+
+%foreach my $addr ( keys %txn_addresses) {
+<input 
+id="UpdateCc-<%$addr%>" 
+name="UpdateCc-<%$addr%>" 
+    type="checkbox" 
+    onClick="checkboxToInput('UpdateCc', 'UpdateCc-<%$addr%>','<%$txn_addresses{$addr}->format%>' ); $(UpdateIgnoreAddressCheckboxes).value=1"  
+    <% $ARGS{'UpdateCc-'.$addr} ? 'checked="checked"' : ''%> > <& /Elements/ShowUser, Address => $txn_addresses{$addr}&>
+%}
+<div class="hints"><i><font size="-2">
+            <&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)</&></font></i>
+</div>
+</td></tr>
+<tr><td align="right"><&|/l&>Bcc</&>:</td><td> <input id="UpdateBcc"  name="UpdateBcc" size="60" value="<%$ARGS{UpdateBcc}||''%>" /><br />
+%foreach my $addr ( keys %txn_addresses) {
+<input
+    id="UpdateBcc-<%$addr%>"
+    name="UpdateBcc-<%$addr%>"
+    type="checkbox" 
+    onClick="checkboxToInput('UpdateBcc', 'UpdateBcc-<%$addr%>','<%$txn_addresses{$addr}->format%>' ); $(UpdateIgnoreAddressCheckboxes).value=1" 
+        <% $ARGS{'UpdateBcc-'.$addr} ? 'checked="checked"' : ''%>> 
+<& /Elements/ShowUser, Address => $txn_addresses{$addr}&>
+%}
+        <div class="hints">
 <i><font size="-2">
-<&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)</&></font></i>
-</td></tr>
-<tr><td align="right"><&|/l&>Bcc</&>:</td><td> <input name="UpdateBcc" size="60" value="<%$ARGS{UpdateBcc}%>" /><br />
-<i><font size="-2">
-<&|/l&>(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)</&></font></i>
+        <&|/l&>(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)</&></font></i>
+</div>
 </td></tr>
+<pre>
+</pre>
+
 % if (exists $session{'Attachments'}) {
 <td>
 <&|/l&>Attached file</&>:
@@ -164,11 +190,14 @@
 my ($CommentDefault, $ResponseDefault);
 if ($Action ne 'Respond') {
    $CommentDefault = "SELECTED"; 
+    $ResponseDefault = "";
 } else {
+    $CommentDefault = ""; 
     $ResponseDefault = "SELECTED";
 }
 
 
+
 $CanRespond = 1 if ( $TicketObj->CurrentUserHasRight('ReplyToTicket') or
                      $TicketObj->CurrentUserHasRight('ModifyTicket') ); 
 
@@ -217,6 +246,9 @@
     return;
 }
 
+my %txn_addresses = %{$TicketObj->TransactionAddresses;};
+
+
 </%INIT>
 
 <%ARGS>

Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm	(original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Web.pm	Thu Apr 12 03:10:08 2007
@@ -603,25 +603,43 @@
         );
     }
 
-    ## TODO: Implement public comments
-    if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) {
-        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment(
-            CcMessageTo  => $args{ARGSRef}->{'UpdateCc'},
-            BccMessageTo => $args{ARGSRef}->{'UpdateBcc'},
+           my  $bcc = $args{ARGSRef}->{'UpdateBcc'};
+           my  $cc = $args{ARGSRef}->{'UpdateCc'};
+
+    my %message_args = (
+            CcMessageTo  => $cc,
+            BccMessageTo => $bcc,
             MIMEObj      => $Message,
-            TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'}
-        );
+            TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'});
+
+
+        unless ( $args{'ARGRef'}->{'UpdateIgnoreAddressCheckboxes'} =="1") {
+        foreach my $key ( keys %{ $args{ARGSRef} } ) {
+            if ( $key =~ /^Update(Cc|Bcc)-(.*)$/ ) {
+                my $var   = ucfirst($1).'MessageTo';
+                my $value = $2;
+                {
+                    if ( $args{$var} ) {
+                        $message_args{$var} .= ", $value";
+                    } else {
+                        $message_args{$var} = $value;
+                    }
+                }
+            }
+
+        }
+    }
+
+
+
+    if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) {
+        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment(%message_args);
         push( @results, $Description );
         $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
     }
     elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {
         my ( $Transaction, $Description, $Object ) =
-          $args{TicketObj}->Correspond(
-            CcMessageTo  => $args{ARGSRef}->{'UpdateCc'},
-            BccMessageTo => $args{ARGSRef}->{'UpdateBcc'},
-            MIMEObj      => $Message,
-            TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'}
-          );
+          $args{TicketObj}->Correspond(%message_args);
         push( @results, $Description );
         $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
     }


More information about the Rt-commit mailing list