[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