summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2010-07-21 02:06:44 +0000
committerivan <ivan>2010-07-21 02:06:44 +0000
commit1932aeb09f14c6293905882806fd50a277e45ee9 (patch)
treead62531b9879a09c78a64fb19597bf36e5d394db
parentf794037a8c67dccf85bef34c7a865e3ed151b24c (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.pm20
-rwxr-xr-xrt/share/html/Elements/SelectDate4
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>