Mailing List Archive

svn commit: r1411558 - in /perl/embperl/trunk/Embperl/Form: Control.pm ControlMultValue.pm Validate.pm Validate/Default.pm
Author: richter
Date: Tue Nov 20 06:19:58 2012
New Revision: 1411558

URL: http://svn.apache.org/viewvc?rev=1411558&view=rev
Log:
Fix Form Validate for required with radio buttons & return names of failed controls

Modified:
perl/embperl/trunk/Embperl/Form/Control.pm
perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
perl/embperl/trunk/Embperl/Form/Validate.pm
perl/embperl/trunk/Embperl/Form/Validate/Default.pm

Modified: perl/embperl/trunk/Embperl/Form/Control.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control.pm?rev=1411558&r1=1411557&r2=1411558&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control.pm Tue Nov 20 06:19:58 2012
@@ -87,7 +87,10 @@ sub is_disabled
{
my ($self, $req) = @_ ;

- return $self -> {disable} || $req -> {form_options_masks}{$self->{name}}{disable} || $req -> {form_options_masks}{'*'}{disable} ;
+ my $disable = $self -> {disable} || $req -> {form_options_masks}{$self->{name}}{disable} || $req -> {form_options_masks}{'*'}{disable} ;
+ $disable = &{$disable}($self, $req) if (ref ($disable) eq 'CODE') ;
+
+ return $disable ;
}

# ---------------------------------------------------------------------------
@@ -100,7 +103,10 @@ sub is_readonly
{
my ($self, $req) = @_ ;

- return $self -> {readonly} || $req -> {form_options_masks}{$self->{name}}{readonly} || $req -> {form_options_masks}{'*'}{readonly} ;
+ my $redaonly = $self -> {readonly} || $req -> {form_options_masks}{$self->{name}}{readonly} || $req -> {form_options_masks}{'*'}{readonly} ;
+ $redaonly = &{$redaonly}($req) if (ref ($redaonly) eq 'CODE') ;
+
+ return $redaonly ;
}

# ---------------------------------------------------------------------------

Modified: perl/embperl/trunk/Embperl/Form/ControlMultValue.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/ControlMultValue.pm?rev=1411558&r1=1411557&r2=1411558&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/ControlMultValue.pm (original)
+++ perl/embperl/trunk/Embperl/Form/ControlMultValue.pm Tue Nov 20 06:19:58 2012
@@ -103,7 +103,7 @@ sub get_all_values
if ($addtop)
{
push @values, map { $_ -> [0] } @$addtop ;
- push @options, map { $_ -> [0] } @$addtop ;
+ push @options, map { $_ -> [1] } @$addtop ;
}

if ($values)
@@ -115,7 +115,7 @@ sub get_all_values
if ($addbottom)
{
push @values, map { $_ -> [0] } @$addbottom ;
- push @options, map { $_ -> [0] } @$addbottom ;
+ push @options, map { $_ -> [1] } @$addbottom ;
}

$req -> {$key} = [\@values, \@options] ;

Modified: perl/embperl/trunk/Embperl/Form/Validate.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?rev=1411558&r1=1411557&r2=1411558&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate.pm Tue Nov 20 06:19:58 2012
@@ -692,11 +692,15 @@ function epform_validate_$fname(return_m
var elems = document.$fname\[ids[key]\] ;
if (elems)
{
- if (elems.constructor.name != 'NodeList')
+ if (!(elems instanceof NodeList))
elems = [elems] ;
+ if (elems[0] instanceof NodeList)
+ elems = elems[0] ;
for (i = 0; i < elems.length ;i++)
{
var elem = elems[i] ;
+ if (elem.getAttribute('type') == 'radio')
+ elem = elem.parentElement ;
var eclass = elem.getAttribute('class') ;
elem.setAttribute ('class', eclass + ' ' + failed_class) ;
elem.setAttribute ('title', msgs[key]) ;
@@ -706,7 +710,10 @@ function epform_validate_$fname(return_m
}

if (return_msgs)
- return msgs ;
+ {
+ var ret = [msgs, ids] ;
+ return ret ;
+ }

if (i)
alert (msgs.join('\\n')) ;

Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?rev=1411558&r1=1411557&r2=1411558&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Tue Nov 20 06:19:58 2012
@@ -151,7 +151,7 @@ sub getscript_required
{
my ($self, $arg, $pref) = @_ ;

- return ('obj.value', ['validate_required']) ;
+ return ('obj instanceof NodeList?obj[0].value:obj.value', ['validate_required']) ;
}

# --------------------------------------------------------------



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