summaryrefslogtreecommitdiff
path: root/rt
diff options
context:
space:
mode:
authorMitch Jackson <mitch@freeside.biz>2019-03-31 12:26:28 -0400
committerMitch Jackson <mitch@freeside.biz>2019-03-31 12:26:28 -0400
commita9aa4d83ae52cfece965cd8f175a29394938f76a (patch)
tree66372374da1278d1c5589a457226c705005b61db /rt
parent21a19bf261166b0e3898cd1c05461a8e1f82d69a (diff)
RT# 81692 Update use of deprecated callback element in RT
Diffstat (limited to 'rt')
-rw-r--r--rt/lib/RT/Interface/Web/Request.pm17
-rwxr-xr-xrt/share/html/Elements/Header7
2 files changed, 20 insertions, 4 deletions
diff --git a/rt/lib/RT/Interface/Web/Request.pm b/rt/lib/RT/Interface/Web/Request.pm
index 1cd08df3e..9ed7610ba 100644
--- a/rt/lib/RT/Interface/Web/Request.pm
+++ b/rt/lib/RT/Interface/Web/Request.pm
@@ -85,6 +85,12 @@ By default is false, otherwise runs callbacks only once per
process of the server. Such callbacks can be used to fill
structures.
+=item ReturnComponentOutput
+
+By default, callback returns the status codes of all rendered components, and
+prints the rendered components to STDOUT. If this argument is true, callback
+returns the rendered components instead of printing them to STDOUT.
+
=back
Searches for callback components in
@@ -102,6 +108,7 @@ sub callback {
my $name = delete $args{'CallbackName'} || 'Default';
my $page = delete $args{'CallbackPage'} || $self->callers(0)->path;
+ my $use_scomp = delete $args{'ReturnComponentOutput'} ? 1 : 0;
unless ( $page ) {
$RT::Logger->error("Couldn't get a page name for callbacks");
return;
@@ -134,10 +141,16 @@ sub callback {
}
my @rv;
+ my $scomp_out;
foreach my $cb ( @$callbacks ) {
- push @rv, scalar $self->comp( $cb, %args );
+ if ( $use_scomp ) {
+ no warnings 'uninitialized';
+ $scomp_out .= $self->scomp( $cb, %args );
+ } else {
+ push @rv, scalar $self->comp( $cb, %args );
+ }
}
- return @rv;
+ return $use_scomp ? $scomp_out : @rv;
}
sub clear_callback_cache {
diff --git a/rt/share/html/Elements/Header b/rt/share/html/Elements/Header
index 23007ddd1..58136c584 100755
--- a/rt/share/html/Elements/Header
+++ b/rt/share/html/Elements/Header
@@ -148,8 +148,11 @@ jQuery(document).ready(function(){
}
-# $m->callback( %ARGS, CallbackName => 'Head' );
-$head .= $m->scomp( '/Elements/Callback', _CallbackName => 'Head', %ARGS );
+$head .= $m->callback(
+ %ARGS,
+ CallbackName => 'Head',
+ ReturnComponentOutput => 1,
+);
#XXX $head .= <& /Elements/Framekiller &>;