
richter at apache
Nov 12, 2006, 8:41 PM
Post #1 of 1
(855 views)
Permalink
|
|
svn commit: r474140 - in /perl/embperl/trunk: Changes.pod Embperl/Form/Control/radio.pm Embperl/Form/Validate.pm Embperl/Form/Validate/Default.pm
|
|
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: embperl-cvs-unsubscribe[at]perl.apache.org For additional commands, e-mail: embperl-cvs-help[at]perl.apache.org
|