summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-07-10 12:56:50 -0700
committerMark Wells <mark@freeside.biz>2013-07-10 12:56:50 -0700
commit183c7c355e3f783197457f348b99b0a14ad2e1d7 (patch)
tree012e530b2540ec87382454b9b985c5ad7c85f3d6 /rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm
parentee8a3fde6a425db37f1e23ad0f0e977d6f0d1e93 (diff)
ExtractCustomFieldValues extension for RT, #9728
Diffstat (limited to 'rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm')
-rw-r--r--rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm b/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm
new file mode 100644
index 000000000..e05966be2
--- /dev/null
+++ b/rt/lib/RT/Action/ExtractCustomFieldValuesWithCodeInTemplate.pm
@@ -0,0 +1,30 @@
+package RT::Action::ExtractCustomFieldValuesWithCodeInTemplate;
+use strict;
+use warnings;
+
+use base qw(RT::Action::ExtractCustomFieldValues);
+
+sub TemplateContent {
+ my $self = shift;
+ my $is_broken = 0;
+
+ my $content = $self->TemplateObj->Content;
+
+ my $template = Text::Template->new(TYPE => 'STRING', SOURCE => $content);
+ my $new_content = $template->fill_in(
+ BROKEN => sub {
+ my (%args) = @_;
+ $RT::Logger->error("Template parsing error: $args{error}")
+ unless $args{error} =~ /^Died at /; # ignore intentional die()
+ $is_broken++;
+ return undef;
+ },
+ );
+
+ return (undef, $self->loc('Template parsing error')) if $is_broken;
+
+ return $new_content;
+}
+
+1;
+