diff options
author | ivan <ivan> | 2010-07-21 02:06:44 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-07-21 02:06:44 +0000 |
commit | 1932aeb09f14c6293905882806fd50a277e45ee9 (patch) | |
tree | ad62531b9879a09c78a64fb19597bf36e5d394db | |
parent | f794037a8c67dccf85bef34c7a865e3ed151b24c (diff) |
fix calendar popup for weirdly named fields in RT, for the quotes around custom field bullshit, RT#8449
-rw-r--r-- | FS/FS/Mason.pm | 20 | ||||
-rwxr-xr-x | 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 @@ <IMG SRC="<%$fsurl%>images/calendar.png" ID="<% $Name %>_date_button" STYLE="cursor: pointer" TITLE="Select date"> <script type="text/javascript"> Calendar.setup({ - inputField: "<%$Name%>", + inputField: <% $Name |n,js_string %>, % if ( defined($ShowTime) && $ShowTime ) { ifFormat: "%Y-%m-%d %H:%M", showsTime: true, % } else { ifFormat: "%Y-%m-%d", % } - button: "<%$Name%>_date_button", + button: <% $Name.'_date_button' |n,js_string %>, }); </script> <%init> |