Author: richter
Date: Tue Feb 24 07:03:07 2015
New Revision: 1661857

URL: http://svn.apache.org/r1661857
Log:
Fix JavaScript Escaping Issue in Form::Validate

Modified:
    perl/embperl/trunk/Embperl/Form/Validate.pm
    perl/embperl/trunk/Embperl/Form/Validate/Default.pm
    perl/embperl/trunk/Embperl/Form/Validate/Number.pm
    perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm

Modified: perl/embperl/trunk/Embperl/Form/Validate.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?rev=1661857&r1=1661856&r2=1661857&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate.pm Tue Feb 24 07:03:07 2015
@@ -369,7 +369,7 @@ sub validate
 
 sub build_message
     {
-    my ($self, $id, $key, $name, $msg, $param, $typeobj, $pref, $epreq) = @_ ;
+    my ($self, $id, $key, $name, $msg, $param, $typeobj, $pref, $epreq, 
$escape) = @_ ;
 
     my $language = $pref -> {language} ;
     my $default_language = $pref -> {default_language} || $self -> 
{default_language} ;
@@ -404,6 +404,7 @@ sub build_message
     $txt ||= "Missing Message $id: %0 %1 %2 %3" ;                 
     $id = $param -> [0] ;
     $param -> [0] = $name ;
+    $param -> [0] =~ s/(?<!\\)\'/\\'/g if ($escape) ;
     my @param ;
     eval "require Encode" ;
     if ($charset && $has_encode)
@@ -415,6 +416,7 @@ sub build_message
         @param =  @$param ;
         }
     
+    $txt =~ s/(?<!\\)\'/\\'/g if ($escape) ;
     $txt =~ s/%(\d+)/$param[$1]/g ;
     $param -> [0] = $id ;
 
@@ -596,7 +598,7 @@ sub gather_script_code
                 my $setmsg = '' ;
                 if ($msgparam && !$break)
                     {
-                    my $txt = $self -> build_message ($msgparam -> [0], $key, 
$nametxt, $msgtxt, $msgparam, $typeobj, $pref, $epreq) ;
+                    my $txt = $self -> build_message ($msgparam -> [0], $key, 
$nametxt, $msgtxt, $msgparam, $typeobj, $pref, $epreq, 1) ;
                     $setmsg = "ids[i] = '$key' ; msgs[i++]='$txt';" 
                     }
                 if (!ref $key)

Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?rev=1661857&r1=1661856&r2=1661857&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Tue Feb 24 07:03:07 2015
@@ -33,22 +33,22 @@ $VERSION = '2.0.0' ;
        validate_required => 'Bitte Feld "%0" ausfüllen',
        validate_eq => 'Falscher Inhalt "%1" des Feldes "%0": Erwartet wird 
"%2"',
        validate_same => '"%0" stimmt nicht mit "%2" überein',
-       validate_lt => '%0 muß kleiner als %2 sein',
-       validate_gt => '%0 muß größer als %2 sein',
-       validate_le => '%0 muß kleiner oder gleich wie %2 sein',
-       validate_ge => '%0 muß größer oder gleich %2 sein',
-       validate_ne => '%0 muß ungleich %2 sein',
-       validate_length_max => 'Inhalt des Feldes %0 ist zu lang, maximale 
Länge sind %2, eingegeben wurden %1 Zeichen',
-       validate_length_min => 'Inhalt des Feldes %0 ist zu kurz, minimal Länge 
sind %2, eingegeben wurden %1 Zeichen',
-       validate_length_eq => 'Inhalt des Feldes %0 hat die falsche Länge: Er 
sollte %2 Zeichen lang sein, ist aber %1 lang',
-       validate_matches_regex => 'Inhalt "%1" des Feldes %0 entspricht nicht 
dem regulären Ausdruck /%2/',
-       validate_matches_regex_js => 'Inhalt "%1" des Feldes %0 entspricht 
nicht dem regulären Ausdruck /%2/',
-       validate_not_matches_regex => 'Inhalt "%1" des Feldes %0 darf nicht dem 
regulären Ausdruck /%2/ entsprechen',
-       validate_not_matches_regex_js => 'Inhalt "%1" des Feldes %0 darf nicht 
dem regulären Ausdruck /%2/ entsprechen',
-       validate_matches_wildcard => 'Inhalt "%1" des Feldes %0 entspricht 
nicht dem Wildcard-Ausdruck "%2"',
-       validate_must_only_contain => 'Das Feld %0 darf nur folgende Zeichen 
enthalten: "%2"',
-       validate_must_contain_one_of => 'Das Feld %0 muß mindestens eines der 
folgenden Zeichen enthalten: "%2"',
-       validate_must_not_contain => 'Das Feld %0 darf folgende Zeichen nicht 
enthalten: "%2"'
+       validate_lt => '"%0" muß kleiner als %2 sein',
+       validate_gt => '"%0" muß größer als %2 sein',
+       validate_le => '"%0" muß kleiner oder gleich wie %2 sein',
+       validate_ge => '"%0" muß größer oder gleich %2 sein',
+       validate_ne => '"%0" muß ungleich %2 sein',
+       validate_length_max => 'Inhalt des Feldes "%0" ist zu lang, maximale 
Länge sind %2, eingegeben wurden %1 Zeichen',
+       validate_length_min => 'Inhalt des Feldes "%0" ist zu kurz, minimal 
Länge sind %2, eingegeben wurden %1 Zeichen',
+       validate_length_eq => 'Inhalt des Feldes "%0" hat die falsche Länge: Er 
sollte %2 Zeichen lang sein, ist aber %1 lang',
+       validate_matches_regex => 'Inhalt "%1" des Feldes "%0" entspricht nicht 
dem regulären Ausdruck /%2/',
+       validate_matches_regex_js => 'Inhalt "%1" des Feldes "%0" entspricht 
nicht dem regulären Ausdruck /%2/',
+       validate_not_matches_regex => 'Inhalt "%1" des Feldes "%0" darf nicht 
dem regulären Ausdruck /%2/ entsprechen',
+       validate_not_matches_regex_js => 'Inhalt "%1" des Feldes "%0" darf 
nicht dem regulären Ausdruck /%2/ entsprechen',
+       validate_matches_wildcard => 'Inhalt "%1" des Feldes "%0" entspricht 
nicht dem Wildcard-Ausdruck "%2"',
+       validate_must_only_contain => 'Das Feld "%0" darf nur folgende Zeichen 
enthalten: "%2"',
+       validate_must_contain_one_of => 'Das Feld "%0" muß mindestens eines der 
folgenden Zeichen enthalten: "%2"',
+       validate_must_not_contain => 'Das Feld "%0" darf folgende Zeichen nicht 
enthalten: "%2"'
     },
 
     'de.utf-8' => 
@@ -56,45 +56,45 @@ $VERSION = '2.0.0' ;
        validate_required => 'Bitte Feld "%0" ausfüllen',
        validate_eq => 'Falscher Inhalt "%1" des Feldes "%0": Erwartet wird 
"%2"',
        validate_same => '"%0" stimmt nicht mit "%2" überein',
-       validate_lt => '%0 muß kleiner als %2 sein',
-       validate_gt => '%0 muß größer als %2 sein',
-       validate_le => '%0 muß kleiner oder gleich wie %2 sein',
-       validate_ge => '%0 muß größer oder gleich %2 sein',
-       validate_ne => '%0 muß ungleich %2 sein',
-       validate_length_max => 'Inhalt des Feldes %0 ist zu lang, maximale 
Länge sind %2, eingegeben wurden %1 Zeichen',
-       validate_length_min => 'Inhalt des Feldes %0 ist zu kurz, minimal 
Länge sind %2, eingegeben wurden %1 Zeichen',
-       validate_length_eq => 'Inhalt des Feldes %0 hat die falsche Länge: Er 
sollte %2 Zeichen lang sein, ist aber %1 lang',
-       validate_matches_regex => 'Inhalt "%1" des Feldes %0 entspricht nicht 
dem regulären Ausdruck /%2/',
-       validate_matches_regex_js => 'Inhalt "%1" des Feldes %0 entspricht 
nicht dem regulären Ausdruck /%2/',
-       validate_not_matches_regex => 'Inhalt "%1" des Feldes %0 darf nicht dem 
regulären Ausdruck /%2/ entsprechen',
-       validate_not_matches_regex_js => 'Inhalt "%1" des Feldes %0 darf nicht 
dem regulären Ausdruck /%2/ entsprechen',
-       validate_matches_wildcard => 'Inhalt "%1" des Feldes %0 entspricht 
nicht dem Wildcard-Ausdruck "%2"',
-       validate_must_only_contain => 'Das Feld %0 darf nur folgende Zeichen 
enthalten: "%2"',
-       validate_must_contain_one_of => 'Das Feld %0 muß mindestens eines der 
folgenden Zeichen enthalten: "%2"',
-       validate_must_not_contain => 'Das Feld %0 darf folgende Zeichen nicht 
enthalten: "%2"'
+       validate_lt => '"%0" muß kleiner als %2 sein',
+       validate_gt => '"%0" muß größer als %2 sein',
+       validate_le => '"%0" muß kleiner oder gleich wie %2 sein',
+       validate_ge => '"%0" muß größer oder gleich %2 sein',
+       validate_ne => '"%0" muß ungleich %2 sein',
+       validate_length_max => 'Inhalt des Feldes "%0" ist zu lang, maximale 
Länge sind %2, eingegeben wurden %1 Zeichen',
+       validate_length_min => 'Inhalt des Feldes "%0" ist zu kurz, minimal 
Länge sind %2, eingegeben wurden %1 Zeichen',
+       validate_length_eq => 'Inhalt des Feldes "%0" hat die falsche Länge: 
Er sollte %2 Zeichen lang sein, ist aber %1 lang',
+       validate_matches_regex => 'Inhalt "%1" des Feldes "%0" entspricht nicht 
dem regulären Ausdruck /%2/',
+       validate_matches_regex_js => 'Inhalt "%1" des Feldes "%0" entspricht 
nicht dem regulären Ausdruck /%2/',
+       validate_not_matches_regex => 'Inhalt "%1" des Feldes "%0" darf nicht 
dem regulären Ausdruck /%2/ entsprechen',
+       validate_not_matches_regex_js => 'Inhalt "%1" des Feldes "%0" darf 
nicht dem regulären Ausdruck /%2/ entsprechen',
+       validate_matches_wildcard => 'Inhalt "%1" des Feldes "%0" entspricht 
nicht dem Wildcard-Ausdruck "%2"',
+       validate_must_only_contain => 'Das Feld "%0" darf nur folgende Zeichen 
enthalten: "%2"',
+       validate_must_contain_one_of => 'Das Feld "%0" muß mindestens eines 
der folgenden Zeichen enthalten: "%2"',
+       validate_must_not_contain => 'Das Feld "%0" darf folgende Zeichen nicht 
enthalten: "%2"'
     },
 
     en =>
     {
-       validate_required => 'Please enter a value in %0',
-       validate_eq => 'Wrong content "%1" of field %0: Expected "%2"',
+       validate_required => 'Please enter a value in "%0"',
+       validate_eq => 'Wrong content "%1" of field "%0": Expected "%2"',
        validate_same => '"%0" does not match "%2"',
-       validate_lt => '%0 must be less then %2',
-       validate_gt => '%0 must be greater then %2',
-       validate_le => '%0 must be less or equal then %2',
-       validate_ge => '%0 must be greater or equal then %2',
-       validate_ne => 'Wrong content "%1" of field %0: Expected not "%2"',
-       validate_length_max => 'Content of field %0 is too long, has %1 
characters, maximum is %2 characters',
-       validate_length_min => 'Content of field %0 is too short, has %1 
characters, minimum is %2 characters',
-       validate_length_eq => 'Content of field %0 has wrong length: It is %1 
characters long, but should be %2 characters long',
-       validate_matches_regex => 'Field %0 doesn"t match regexp /%2/',
-       validate_matches_regex_js => 'Field %0 doesn"t match regexp /%2/',
-       validate_not_matches_regex => 'Field %0 must not match regexp /%2/',
-       validate_not_matches_regex_js => 'Field %0 must not match regexp /%2/',
-       validate_matches_wildcard => 'Field %0 doesn"t match wildcard 
expression "%2"',
-       validate_must_only_contain => 'Field %0 must contain only the following 
characters: "%2"',
-       validate_must_contain_one_of => 'Field %0 must contain one of the 
following characters: "%2"',
-       validate_must_not_contain => 'Field %0 must not contain the following 
characters: "%2"'
+       validate_lt => '"%0" must be less then %2',
+       validate_gt => '"%0" must be greater then %2',
+       validate_le => '"%0" must be less or equal then %2',
+       validate_ge => '"%0" must be greater or equal then %2',
+       validate_ne => 'Wrong content "%1" of field "%0": Expected not "%2"',
+       validate_length_max => 'Content of field "%0" is too long, has %1 
characters, maximum is %2 characters',
+       validate_length_min => 'Content of field "%0" is too short, has %1 
characters, minimum is %2 characters',
+       validate_length_eq => 'Content of field "%0" has wrong length: It is %1 
characters long, but should be %2 characters long',
+       validate_matches_regex => 'Field "%0" doesn"t match regexp /%2/',
+       validate_matches_regex_js => 'Field "%0" doesn"t match regexp /%2/',
+       validate_not_matches_regex => 'Field "%0" must not match regexp /%2/',
+       validate_not_matches_regex_js => 'Field "%0" must not match regexp 
/%2/',
+       validate_matches_wildcard => 'Field "%0" doesn"t match wildcard 
expression "%2"',
+       validate_must_only_contain => 'Field "%0" must contain only the 
following characters: "%2"',
+       validate_must_contain_one_of => 'Field "%0" must contain one of the 
following characters: "%2"',
+       validate_must_not_contain => 'Field "%0" must not contain the following 
characters: "%2"'
     }
  );
 

Modified: perl/embperl/trunk/Embperl/Form/Validate/Number.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Number.pm?rev=1661857&r1=1661856&r2=1661857&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate/Number.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate/Number.pm Tue Feb 24 07:03:07 2015
@@ -27,17 +27,17 @@ my %error_messages =
 (
     de => 
     {
-       validate_number => '%0 muß eine Zahl sein',
+       validate_number => '"%0" muß eine Zahl sein',
     },
 
     'de.utf-8' => 
     {
-       validate_number => '%0 muß eine Zahl sein',
+       validate_number => '"%0" muß eine Zahl sein',
     },
 
     en =>
     {
-       validate_number => '%0 must be a number',
+       validate_number => '"%0" must be a number',
     }
  );
 

Modified: perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm
URL: 
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm?rev=1661857&r1=1661856&r2=1661857&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm Tue Feb 24 07:03:07 
2015
@@ -24,17 +24,17 @@ my %error_messages =
 (
     de => 
     {
-       validate_pos_number => '%0 muß eine Zahl größer oder gleich Null sein',
+       validate_pos_number => '"%0" muß eine Zahl größer oder gleich Null 
sein',
     },
 
     'de.utf-8' => 
     {
-       validate_pos_number => '%0 muß eine Zahl größer oder gleich Null 
sein',
+       validate_pos_number => '"%0" muß eine Zahl größer oder gleich Null 
sein',
     },
 
     en =>
     {
-       validate_pos_number => '%0 must be a number greater or equal zero',
+       validate_pos_number => '"%0" must be a number greater or equal zero',
     }
  );
 



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org
For additional commands, e-mail: embperl-cvs-h...@perl.apache.org

Reply via email to