From 1932aeb09f14c6293905882806fd50a277e45ee9 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 21 Jul 2010 02:06:44 +0000 Subject: [PATCH] fix calendar popup for weirdly named fields in RT, for the quotes around custom field bullshit, RT#8449 --- FS/FS/Mason.pm | 20 ++++++++++++-------- rt/share/html/Elements/SelectDate | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/FS/FS/Mason.pm b/FS/FS/Mason.pm index 5d860f2de..0f1415009 100644 --- a/FS/FS/Mason.pm +++ b/FS/FS/Mason.pm @@ -480,15 +480,17 @@ sub mason_interps { my $html_defang = new HTML::Defang (%defang_opts); + my $js_string_sub = sub { + #${$_[0]} =~ s/(['\\\n])/'\\'.($1 eq "\n" ? 'n' : $1)/ge; + ${$_[0]} =~ s/(['\\])/\\$1/g; + ${$_[0]} =~ s/\r/\\r/g; + ${$_[0]} =~ s/\n/\\n/g; + ${$_[0]} = "'". ${$_[0]}. "'"; + }; + my $fs_interp = new HTML::Mason::Interp ( %interp, - escape_flags => { 'js_string' => sub { - #${$_[0]} =~ s/(['\\\n])/'\\'.($1 eq "\n" ? 'n' : $1)/ge; - ${$_[0]} =~ s/(['\\])/\\$1/g; - ${$_[0]} =~ s/\r/\\r/g; - ${$_[0]} =~ s/\n/\\n/g; - ${$_[0]} = "'". ${$_[0]}. "'"; - }, + escape_flags => { 'js_string' => $js_string_sub, 'defang' => sub { ${$_[0]} = $html_defang->defang(${$_[0]}); }, @@ -500,7 +502,9 @@ sub mason_interps { my $rt_interp = new HTML::Mason::Interp ( %interp, - escape_flags => { 'h' => \&RT::Interface::Web::EscapeUTF8 }, + escape_flags => { 'h' => \&RT::Interface::Web::EscapeUTF8, + 'js_string' => $js_string_sub, + }, compiler => HTML::Mason::Compiler::ToObject->new( default_escape_flags => 'h', allow_globals => [qw(%session)], diff --git a/rt/share/html/Elements/SelectDate b/rt/share/html/Elements/SelectDate index 183086f3d..46092ce23 100755 --- a/rt/share/html/Elements/SelectDate +++ b/rt/share/html/Elements/SelectDate @@ -50,14 +50,14 @@ <%init> -- 2.11.0