diff options
Diffstat (limited to 'rt/lib/RT/Action/OpenDependent.pm')
| -rw-r--r-- | rt/lib/RT/Action/OpenDependent.pm | 55 | 
1 files changed, 55 insertions, 0 deletions
| diff --git a/rt/lib/RT/Action/OpenDependent.pm b/rt/lib/RT/Action/OpenDependent.pm new file mode 100644 index 000000000..b271e4709 --- /dev/null +++ b/rt/lib/RT/Action/OpenDependent.pm @@ -0,0 +1,55 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/OpenDependent.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# This Action will open the BASE if a dependent is resolved. + +package RT::Action::OpenDependent; +require RT::Action::Generic; +require RT::Links; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe  +sub Describe  { +  my $self = shift; +  return (ref $self . " will stall a [local] BASE if it's open and a dependency link is created."); +} +# }}} + + +# {{{ sub Prepare  +sub Prepare  { +    # nothing to prepare +    return 1; +} +# }}} + +sub Commit { +    my $self = shift; + +    my $Links=RT::Links->new($RT::SystemUser); +    $Links->Limit(FIELD => 'Type', VALUE => 'DependsOn'); +    $Links->Limit(FIELD => 'Target', VALUE => $self->TicketObj->id); + +    while (my $Link=$Links->Next()) { +	next unless $Link->BaseIsLocal; +	my $base=RT::Ticket->new($self->TicketObj->CurrentUser); +	# Todo: Only work if Base is a plain ticket num: +	$base->Load($Link->Base); +        $base->Open if $base->Status eq 'stalled'; +    } +} + + +# Applicability checked in Commit. + +# {{{ sub IsApplicable  +sub IsApplicable  { +  my $self = shift; +  1;   +  return 1; +} +# }}} + +1; | 
