[rt-commit] [svn] r503 - rt/branches/rt-3.1/lib/RT/Action
leira at fsck.com
leira at fsck.com
Mon Mar 8 16:43:53 EST 2004
Author: leira
Date: Mon Mar 8 16:43:53 2004
New Revision: 503
Modified:
rt/branches/rt-3.1/lib/RT/Action/CreateTickets.pm
Log:
Support for offline Watcher update.
Modified: rt/branches/rt-3.1/lib/RT/Action/CreateTickets.pm
==============================================================================
--- rt/branches/rt-3.1/lib/RT/Action/CreateTickets.pm (original)
+++ rt/branches/rt-3.1/lib/RT/Action/CreateTickets.pm Mon Mar 8 16:43:53 2004
@@ -468,6 +468,10 @@
TimeLeft
Status
Queue
+ Due
+ Starts
+ Started
+ Resolved
);
my $id = $template_id;
@@ -494,12 +498,14 @@
if ($base ne $current) {
push @results, "Could not update ticket " . $T::Tickets{$template_id}->Id . ": Ticket has changed";
next;
- }
+ }
push @results,
$T::Tickets{$template_id}->Update(AttributesRef => \@attribs,
ARGSRef => $ticketargs);
+ push @results, $self->UpdateWatchers($T::Tickets{$template_id}, $ticketargs);
+
next unless exists $ticketargs->{'UpdateType'};
if ( $ticketargs->{'UpdateType'} =~ /^(private|public)$/ ) {
my ( $Transaction, $Description, $Object ) = $T::Tickets{$template_id}->Comment(
@@ -826,6 +832,46 @@
$string .= "FinalPriority: \n";
return $string;
+}
+
+sub UpdateWatchers {
+ my $self = shift;
+ my $ticket = shift;
+ my $args = shift;
+
+ my @results;
+
+ foreach my $type qw(Requestor Cc AdminCc) {
+ my $method = $type.'Addresses';
+ my $oldaddr = $ticket->$method;
+ my $newaddr = $args->{$type};
+
+ my @old = split (', ', $oldaddr);
+ my @new = split (', ', $newaddr);
+ my %oldhash = map {$_ => 1} @old;
+ my %newhash = map {$_ => 1} @new;
+
+ my @add = grep(!defined $oldhash{$_}, @new);
+ my @delete = grep(!defined $newhash{$_}, @old);
+
+ foreach (@add) {
+ my ($val, $msg) =
+ $ticket->AddWatcher(Type => $type,
+ Email => $_);
+
+ push @results, $ticket->loc("Ticket [_1]", $ticket->Id) .
+ ': ' . $msg;
+ }
+
+ foreach (@delete) {
+ my ($val, $msg) =
+ $ticket->DeleteWatcher(Type => $type,
+ Email => $_);
+ push @results, $ticket->loc("Ticket [_1]", $ticket->Id) .
+ ': ' . $msg;
+ }
+ }
+ return @results;
}
eval "require RT::Action::CreateTickets_Vendor";
More information about the Rt-commit
mailing list