Author: richter
Date: Sun Nov 12 20:41:09 2006
New Revision: 474140
URL: http://svn.apache.org/viewvc?view=rev&rev=474140
Log:
- Embperl::Form: readonly handling for radio buttons
- Embperl::Form::Validate: checked and notchecked validation rules
Modified:
perl/embperl/trunk/Changes.pod
perl/embperl/trunk/Embperl/Form/Control/radio.pm
perl/embperl/trunk/Embperl/Form/Validate.pm
perl/embperl/trunk/Embperl/Form/Validate/Default.pm
Modified: perl/embperl/trunk/Changes.pod
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Changes.pod?view=diff&rev=474140&r1=474139&r2=474140
==============================================================================
--- perl/embperl/trunk/Changes.pod (original)
+++ perl/embperl/trunk/Changes.pod Sun Nov 12 20:41:09 2006
@@ -23,6 +23,7 @@
- Added Table of Content pod file, which lists
all available Embperl documentation, to get
a better overview. Thanks to Axel Beckert.
+ - Additional checked and notchecked Validationrules
- Fixed Cookie expire calculation, because
relative exipre times where only calculated
once at server startup. Spotted by Derrick Spell.
Modified: perl/embperl/trunk/Embperl/Form/Control/radio.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/radio.pm?view=diff&rev=474140&r1=474139&r2=474140
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Control/radio.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Control/radio.pm Sun Nov 12 20:41:09 2006
@@ -31,8 +31,29 @@
{
my ($self, $req) = @_ ;
+ my ($values, $options) = $self -> get_values ;
my $name = $self -> {name} ;
- $self -> show_control ($req, "^\Q$fdat{$name}\\E\$") ;
+ my $addtop = $self -> {addtop} || [] ;
+ my $addbottom= $self -> {addbottom} || [] ;
+ my $set = !defined ($fdat{$name})?1:0 ;
+ my $filter = $self -> {filter} ;
+
+ my $val ;
+ my $i = 0 ;
+
+ if ($set)
+ {
+ foreach $val ((@$addtop, @$values, @$addbottom))
+ {
+ if (!defined ($filter) || (ref $val?$val -> [0]:$val =~
/$filter/i))
+ {
+ $fdat{$name} = ref $val?$val -> [0]:$val ;
+ last ;
+ }
+ }
+ }
+
+ $self -> show_control ($req, "^\Q$fdat{$name}\\E\$", $values, $options) ;
}
1 ;
@@ -44,9 +65,9 @@
# show_control - output the control
#]
-[$ sub show_control ($self, $req, $filter)
+[$ sub show_control ($self, $req, $filter, $values, $options)
- my ($values, $options) = $self -> get_values ($req) ;
+ ($values, $options) = $self -> get_values ($req) if (!$values) ;
my $name = $self -> {name} ;
$filter ||= $self -> {filter} ;
my $addtop = $self -> {addtop} || [] ;
@@ -56,32 +77,48 @@
my $val ;
my $i = 0 ;
+
+if ($self -> {vert})
+ {
+ $tr = '<tr>' ;
+ $trend = '</tr>' ;
+ $trglob = '' ;
+ $trendglob = '' ;
+ }
+else
+ {
+ $tr = '' ;
+ $trend = '' ;
+ $trglob = '<tr>' ;
+ $trendglob = '</tr>' ;
+ }
+
$]
+<table class="cRadioTab">[+ do { local $escmode = 0 ; $trglob }+]
[$ foreach $val (@$addtop) $]
[$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
[- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
- <input type="radio" name="[+ $name +]" value="[+ $val -> [0] +]"
- >[+ $val ->[1] || $val -> [0] +]
+ [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name
+]" value="[+ $val -> [0] +]"
+ ></td><td>[+ $val ->[1] || $val -> [0] +]</td>[+ do { local $escmode = 0 ;
$trend }+]
[$endif$]
[$endforeach$]
[$ foreach $val (@$values) $]
[$if !defined ($filter) || ($val =~ /$filter/i) $]
[- $fdat{$name} = $val, $set = 0 if ($set) ; -]
- <input type="radio" name="[+ $name +]" value="[+ $val +]"
+ [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name
+]" value="[+ $val +]"
[$if ($self -> {sublines} || $self -> {subobjects}) $]
OnClick="show_radio_checked(this,[+ $i +],[+ $max +])" [$endif$]
- >[+ $options ->[$i] || $val +]
- [- $vert = $self -> {vert} -][$while $vert-- > 0 $]<br/>[$endwhile$]
+ ></td><td>[+ $options ->[$i] || $val +]</td>[+ do { local $escmode = 0 ;
$trend }+]
[$endif$]
[* $i++ ; *]
[$endforeach$]
[$ foreach $val (@$addbottom) $]
[$if !defined ($filter) || ($val->[0] =~ /$filter/i) $]
[- $fdat{$name} = $val -> [0], $set = 0 if ($set) ; -]
- <input type="radio" name="[+ $name +]" value="[+ $val -> [0] +]"
- >[+ $val ->[1] || $val -> [0] +]
+ [+ do { local $escmode = 0 ; $tr }+]<td><input type="radio" name="[+ $name
+]" value="[+ $val -> [0] +]"
+ ></td><td>[+ $val ->[1] || $val -> [0] +]</td>[+ do { local $escmode = 0 ;
$trend }+]
[$endif$]
[$endforeach$]
-
+[+ do { local $escmode = 0 ; $trendglob }+]</table>
[$endsub$]
Modified: perl/embperl/trunk/Embperl/Form/Validate.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?view=diff&rev=474140&r1=474139&r2=474140
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate.pm Sun Nov 12 20:41:09 2006
@@ -915,6 +915,14 @@
=item must_contain_one_of
+=item checked
+
+Checkbox must be selected
+
+=item notchecked
+
+Checkbox must not be selected
+
=back
Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm
URL:
http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?view=diff&rev=474140&r1=474139&r2=474140
==============================================================================
--- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original)
+++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Sun Nov 12 20:41:09 2006
@@ -171,6 +171,43 @@
return ('obj.value') ;
}
+
+# --------------------------------------------------------------
+
+sub validate_checked
+ {
+ my ($self, $key, $value, $arg, $fdat, $pref) = @_ ;
+
+ return !defined($value) || $value eq '' ? undef : [] ;
+ }
+
+# --------------------------------------------------------------
+
+sub getscript_checked
+ {
+ my ($self, $arg, $pref) = @_ ;
+
+ return ('obj.checked') ;
+ }
+
+# --------------------------------------------------------------
+
+sub validate_notchecked
+ {
+ my ($self, $key, $value, $arg, $fdat, $pref) = @_ ;
+
+ return !defined($value) || $value eq '' ? [] : undef ;
+ }
+
+# --------------------------------------------------------------
+
+sub getscript_notchecked
+ {
+ my ($self, $arg, $pref) = @_ ;
+
+ return ('!obj.checked') ;
+ }
+
# --------------------------------------------------------------
sub validate_eq
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]