use strict;
no warnings qw(redefine);
+use RT::Template;
# {{{ sub _Init
sub _Init {
my %args = ( TransactionObj => undef,
TicketObj => undef,
@_ );
+
+ $self->{_TicketObj} = $args{TicketObj};
#TODO: Put this in an eval
$self->ExecModule =~ /^(\w+)$/;
sub TemplateObj {
my $self = shift;
return undef unless $self->{Template};
- if (!$self->{'TemplateObj'}) {
- require RT::Template;
- $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser);
- $self->{'TemplateObj'}->LoadById($self->{'Template'});
-
+ if ( !$self->{'TemplateObj'} ) {
+ $self->{'TemplateObj'} = RT::Template->new( $self->CurrentUser );
+ $self->{'TemplateObj'}->LoadById( $self->{'Template'} );
+
+ if ( ( $self->{'TemplateObj'}->__Value('Queue') == 0 )
+ && $self->{'_TicketObj'} ) {
+ my $tmptemplate = RT::Template->new( $self->CurrentUser );
+ my ( $ok, $err ) = $tmptemplate->LoadQueueTemplate(
+ Queue => $self->{'_TicketObj'}->QueueObj->id,
+ Name => $self->{'TemplateObj'}->Name);
+
+ if ( $tmptemplate->id ) {
+ # found the queue-specific template with the same name
+ $self->{'TemplateObj'} = $tmptemplate;
+ }
+ }
+
}
-
- return ($self->{'TemplateObj'});
+
+ return ( $self->{'TemplateObj'} );
}
# }}}
# {{{ sub DESTROY
sub DESTROY {
my $self=shift;
+ $self->{'_TicketObj'} = undef;
$self->{'Action'} = undef;
$self->{'TemplateObj'} = undef;
}