Forwarding of tickets

is it possible to forward tickets to a give email address

thru RT web interface?

regds
mallah

I don’t think so, but I very much agree that this is a desirable feature.

Marc Hedlund
e: marc at precipice dot orgOn Sun, 14 Apr 2002, Rajesh Kumar Mallah wrote:

is it possible to forward tickets to a give email address

thru RT web interface?

regds
mallah


rt-users mailing list
rt-users@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-users

I don’t think so, but I very much agree that this is a desirable feature.

I’ve implemented this 2 years ago (Jesse saw it), but only for our
internal purposes. I use an own branch of RT 2.0.9 so I don’t have “patch”
for the most actual version. But if I’ll be asked for it be Jesse, I would
prepare it.

Marc Hedlund
e: marc at precipice dot org

is it possible to forward tickets to a give email address

thru RT web interface?

regds
mallah


rt-users mailing list
rt-users@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-users


rt-users mailing list
rt-users@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-users

Jan Okrouhly
-----------------------------------------+---–okrouhly@civ.zcu.cz—
Laboratory for Computer Science | phone: (420 19) 7491588
University of West Bohemia | location: Univerzitni 22
Americka 42, 306 14 Pilsen, Czech Republic | room: UI404
------------------------------------------73!-de-OK1INC@OK0PPL.#BOH.CZE.EU-

Jan Okrouhly:

I’ve implemented this 2 years ago (Jesse saw it), but only for our
internal purposes. I use an own branch of RT 2.0.9 so I don’t have “patch”
for the most actual version. But if I’ll be asked for it be Jesse, I would
prepare it.

Here’s a patch which does it, and corrects the quoting style for forwarded
messages.

Change 14965 by simon@simon-squash on 2002/03/18 13:05:58

 I believe this gives us forward-to-third-party.

Affected files …

… //systems/src/rt/lib/RT/Action/SendToThirdParty.pm#1 add
… //systems/src/rt/lib/RT/Interface/Web.pm#3 edit
… //systems/src/rt/lib/RT/Ticket.pm#13 edit
… //systems/src/rt/lib/RT/Transaction.pm#3 edit
… //systems/src/rt/webrt/Elements/MessageBox#3 edit
… //systems/src/rt/webrt/Ticket/Elements/ShowTransaction#15 edit
… //systems/src/rt/webrt/Ticket/Update.html#3 edit

Differences …

==== //systems/src/rt/lib/RT/Interface/Web.pm#3 (text) ====
Index: src/rt/lib/RT/Interface/Web.pm
— src/rt/lib/RT/Interface/Web.pm.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/lib/RT/Interface/Web.pm Mon Mar 18 14:07:51 2002
@@ -249,8 +249,14 @@
MIMEObj => $Message,
TimeTaken => $args{ARGSRef}->{‘UpdateTimeWorked’});
push(@{$args{Actions}}, $Description);

  • }
  • else {
  • } elsif ($args{ARGSRef}->{‘UpdateType’} eq ‘forward’) {
  •   my ($Transaction, $Description) = $args{TicketObj}->Forward
    
  •   ( ForwardTo => $args{ARGSRef}->{'ForwardTo'},
    
  •     BccMessageTo => $args{ARGSRef}->{'UpdateBcc'},
    
  •     MIMEObj => $Message,
    
  •     TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'});
    
  •   push(@{$args{Actions}}, $Description);
    
  • } else {
    push(@{$args{‘Actions’}}, “Update type was neither correspondence nor comment. Update not recorded”);
    }
    }

==== //systems/src/rt/lib/RT/Ticket.pm#13 (xtext) ====
Index: src/rt/lib/RT/Ticket.pm
— src/rt/lib/RT/Ticket.pm.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/lib/RT/Ticket.pm Mon Mar 18 14:07:51 2002
@@ -1758,6 +1758,48 @@

}}}

+# {{{ sub Forward
+=head2 Forward
+Forward this ticket onto a third party.
+Takes a hashref with the follwoing attributes:
+MIMEObj, TimeTaken, ForwardTo
+=cut
+sub Forward {

  • my $self = shift;
  • my %args = (
  •     MIMEObj => undef,
    
  •      ForwardTo => undef,
    
  •     TimeTaken => 0,
    
  •     @_ );
    
  • unless (($self->CurrentUserHasRight(‘ReplyToTicket’)) or
  • ($self->CurrentUserHasRight('ModifyTicket'))) {
    
  •  return (0, "Permission Denied");
    
  • }
  • unless ($args{ForwardTo}) {
  •  return (0, "No Forwarding Address Given");
    
  • }
  • #Record the correspondence (write the transaction)
  • my ($Trans, $Msg, $TransObj) = $self->_NewTransaction( Type => ‘Forward’,
  •   		      Data =>$args{'ForwardTo'},
    
  •   		      TimeTaken => $args{'TimeTaken'},
    
  •   		      MIMEObj => $args{'MIMEObj'}
    
  •   		    );
    
  • return ($Trans, “Message Forwarded”);
    +}

}}}

{{{ Routines dealing with Links and Relations between tickets

==== //systems/src/rt/lib/RT/Transaction.pm#3 (xtext) ====
Index: src/rt/lib/RT/Transaction.pm
— src/rt/lib/RT/Transaction.pm.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/lib/RT/Transaction.pm Mon Mar 18 14:07:51 2002
@@ -332,7 +332,7 @@
$content=$wrapper->wrap($content);
}

  • $content =~ s/^/> /gm;
  • $content =~ s/^/> /gm unless $args{‘Quote’} == 2; # Secondary quoting style
    $content = ‘[’ . $self->CreatorObj->Name() . ’ - ’ . $self->CreatedAsString()
    . “]:\n\n”
    . $content . “\n\n”;

==== //systems/src/rt/webrt/Elements/MessageBox#3 (text) ====
Index: src/rt/webrt/Elements/MessageBox
— src/rt/webrt/Elements/MessageBox.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/webrt/Elements/MessageBox Mon Mar 18 14:07:51 2002
@@ -10,11 +10,11 @@
if ($QuoteTransaction) {
my $transaction=RT::Transaction->new($session{‘CurrentUser’});
$transaction->Load($QuoteTransaction);

  • $message=$transaction->Content(Quote => 1);
  • $message=$transaction->Content(Quote => $Style+1);
    }

my $signature = ‘’;
-if ($session{‘CurrentUser’}->UserObj->Signature) {
+if ($session{‘CurrentUser’}->UserObj->Signature and $Style != 1) {
$signature = “-- \n”.$session{‘CurrentUser’}->UserObj->Signature;
}

@@ -26,5 +26,6 @@
$DefaultURI => undef
$Width => 72
$MessageURI => undef
+$Style => 0 # Style 0 is ordinary replying, style 1 is forwarding
</%ARGS>

==== //systems/src/rt/webrt/Ticket/Elements/ShowTransaction#15 (xtext) ====
Index: src/rt/webrt/Ticket/Elements/ShowTransaction
— src/rt/webrt/Ticket/Elements/ShowTransaction.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/webrt/Ticket/Elements/ShowTransaction Mon Mar 18 14:07:51 2002
@@ -126,6 +126,10 @@
“[<a class=‘inverse’ href="Update.html?id=”.
$Transaction->Ticket . “&DefaultStatus=resolved&QuoteTransaction=”.$Transaction->Id.
"&Action=Respond">Resolve] ";

  •   $titlebar_commands .= 
    
  • 	  "[<a class='inverse' href=\"Update.html?id=".
    
  •     $Transaction->Ticket . "&QuoteTransaction=".$Transaction->Id.
    
  •     "&Action=Forward\">Forward</a>] ";
    
    }
    }

==== //systems/src/rt/webrt/Ticket/Update.html#3 (xtext) ====
Index: src/rt/webrt/Ticket/Update.html
— src/rt/webrt/Ticket/Update.html.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/webrt/Ticket/Update.html Mon Mar 18 14:07:51 2002
@@ -34,8 +34,6 @@


Update Type:
@@ -44,9 +42,14 @@
% }
% if ($CanRespond) {
<option value=“response” <%$ResponseDefault%>>Response to requestors

  • >Forward to 3rd Party

% }



+% if ($Action eq “Forward”) {
+Forwarding address:
+

+% }

Status:
<& /Elements/SelectStatus, Name=>“Status”, Default => $DefaultStatus &>
@@ -56,7 +59,7 @@
minutes

Attach:

-<& /Elements/MessageBox, Name=>“UpdateContent”, QuoteTransaction=>$ARGS{QuoteTransaction} &>
+<& /Elements/MessageBox, Name=>“UpdateContent”, QuoteTransaction=>$ARGS{QuoteTransaction}, Style => $Action eq “Forward” &>

@@ -79,6 +82,8 @@

if ($DefaultStatus eq ‘resolved’) {
$title = “Resolve”;
+} elsif ($Action eq ‘Forward’) {

  • $title = “Forward”;
    } else {
    $title = “Update”;
    }
    @@ -89,6 +94,7 @@

for the convinience:

my $CommentDefault=$Action eq “Comment” ? “SELECTED” : “”;
my $ResponseDefault=$Action eq “Respond” ? “SELECTED” : “”;
+my $ForwardDefault=$Action eq “Forward” ? “SELECTED” : “”;

$DefaultStatus = $Ticket->Status() unless ($DefaultStatus);

==== //systems/src/rt/lib/RT/Action/SendToThirdParty.pm#1 (xtext) ====
Index: src/rt/lib/RT/Action/SendToThirdParty.pm
— src/rt/lib/RT/Action/SendToThirdParty.pm.~1~ Mon Mar 18 14:07:51 2002
+++ src/rt/lib/RT/Action/SendToThirdParty.pm Mon Mar 18 14:07:51 2002
@@ -0,0 +1,28 @@
+#$Header: /raid/cvsroot/rt/lib/RT/Action/Notify.pm,v 1.2 2001/11/06 23:04:17 jesse Exp $
+package RT::Action::SendToThirdParty;
+require RT::Action::SendEmail;
+@ISA = qw(RT::Action::SendEmail);
+# {{{ sub SetRecipients
+=head2 SetRecipients
+Sets the recipients of this message to the user specified in the
+transaction.
+=cut
+sub SetRecipients {

  • my $self=shift;
  • $arg=$self->Argument;
  • @{$self->{‘To’}} = @{$self->TransactionObj->Data};
  • return(1);
    +}
    +# }}}
    +1;
    End of Patch.

About the use of language: it is impossible to sharpen a pencil with a blunt
ax. It is equally vain to try to do it with ten blunt axes instead.
– Edsger Dijkstra