Author: richter Date: Thu Aug 30 05:52:03 2012 New Revision: 1378808 URL: http://svn.apache.org/viewvc?rev=1378808&view=rev Log: Auto Form Validation for Number and Date Controls
Added: perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm Modified: perl/embperl/trunk/Embperl/Form/Control/datetime.pm perl/embperl/trunk/Embperl/Form/Control/grid.pm perl/embperl/trunk/Embperl/Form/Control/textarea.pm perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm perl/embperl/trunk/Embperl/Form/Validate/TimeHHMMSS.pm Modified: perl/embperl/trunk/Embperl/Form/Control/datetime.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/datetime.pm?rev=1378808&r1=1378807&r2=1378808&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/datetime.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/datetime.pm Thu Aug 30 05:52:03 2012 @@ -163,6 +163,19 @@ sub prepare_fdat $fdat -> {$name} = $year?sprintf ('%04d%02d%02d%02d%02d%02dZ', $year, $mon, $day, $hour, $min, $sec):'' ; } +# --------------------------------------------------------------------------- +# +# get_validate_auto_rules - get rules for validation, in case user did +# not specify any +# + +sub get_validate_auto_rules + { + my ($self, $req) = @_ ; + + return [ $self -> {required}?(required => 1):(emptyok => 1), -type => 'DateTime' ] ; + } + 1 ; __EMBPERL__ Modified: perl/embperl/trunk/Embperl/Form/Control/grid.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/grid.pm?rev=1378808&r1=1378807&r2=1378808&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/grid.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/grid.pm Thu Aug 30 05:52:03 2012 @@ -595,7 +595,7 @@ header at the bottom. =head3 order -Column to use as sort key +Number of column to use as sort key =head3 order_desc Modified: perl/embperl/trunk/Embperl/Form/Control/textarea.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Control/textarea.pm?rev=1378808&r1=1378807&r2=1378808&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Control/textarea.pm (original) +++ perl/embperl/trunk/Embperl/Form/Control/textarea.pm Thu Aug 30 05:52:03 2012 @@ -21,6 +21,8 @@ use base 'Embperl::Form::Control' ; use Embperl::Inline ; + + 1 ; __EMBPERL__ Added: perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm?rev=1378808&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm Thu Aug 30 05:52:03 2012 @@ -0,0 +1,88 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2010 Gerald Richter / ecos gmbh www.ecos.de +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# $Id: TimeHHMMSS.pm 1004104 2010-10-04 04:07:38Z richter $ +# +################################################################################### + + +package Embperl::Form::Validate::DateTime ; + +use base qw(Embperl::Form::Validate::Default); + +my %error_messages = +( + de => + { + validate_datetime_eu => 'Feld %0: "%1" ist kein g𬴩ges Zeitformat. Geben Sie die Zeit in der Form tt.mm.jjjj hh:mm:ss ein. Die Angabe der Zeit nach dem Datum ist optional.', + }, + + 'de.utf-8' => + { + validate_datetime_eu => 'Feld %0: "%1" ist kein gültiges Zeitformat. Geben Sie die Zeit in der Form tt.mm.jjjj hh:mm:ss ein. Die Angabe der Zeit nach dem Datum ist optional.', + }, + + en => + { + validate_datetime_eu => 'Field %0: "%1" isn\\\'t a valid time. Please enter the time as hh:mm:ss. The time string is optional.', + } + ); + +# -------------------------------------------------------------- + +sub getmsg + { + my ($self, $id, $language, $default_language) = @_ ; + + return $error_messages{$language}{$id} || + $error_messages{$default_language}{$id} || + $self -> SUPER::getmsg ($id, $language, $default_language) ; + } + + +# -------------------------------------------------------------- + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + + if($value =~ /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(.)$/) + { + if ($4 < 1 || $4 > 31 || + $5 < 1 || $5 > 12 || + $6 < 1900 || $6 > 2100 || + $3 < 0 || $3 > 23 || + $4 < 0 || $4 > 59 || + $5 < 0 || $5 > 59) + { + return ['validate_datetime_eu', $value] ; + } + } + elsif ($value !~ /^\s*((?:d|m|y)\s*(?:\+|-)?\s*(?:\d+)?)\s*$/) + { + return ['validate_datetime_eu', $value] ; + } + + return undef ; + } + +# -------------------------------------------------------------- + +sub getscript_validate + { + my ($self, $arg, $pref) = @_ ; + + return ('obj.value.search(/^\s*\d{1,2}(\.\d{1,2}(\.\d{1,4})?)?(\s*,?\s+\d{1,2}(:\d{1,2})?)?(:\d{1,2})?\s*$/) >= 0 || obj.value.search(/^\s*((d|m|y)\s*(\+|-)?\s*(\d+)?)\s*$/) >= 0', ['validate_datetime_eu', "'+obj.value+'"]) ; + } + + +1; Added: perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm?rev=1378808&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm Thu Aug 30 05:52:03 2012 @@ -0,0 +1,45 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2010 Gerald Richter / ecos gmbh www.ecos.de +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# $Id: TimeHHMMSS.pm 1004104 2010-10-04 04:07:38Z richter $ +# +################################################################################### + + +package Embperl::Form::Validate::DateTimeEU ; + +use base qw(Embperl::Form::Validate::DateTime); + + +# -------------------------------------------------------------- + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + + if($value =~ /^(\d{1:2})\.(\d{1:2})\.(\d{1:4})\s+(\d{1:2})\.(\d{1:2})\.(\d{1:4})$/) + { + if ($1 < 1 || $1 > 31 || + $2 < 1 || $2 > 12 || + $3 < 1900 || $3 > 2100 || + $4 < 0 || $4 > 23 || + $5 < 0 || $5 > 59 || + $6 < 0 || $6 > 59) + { + return ['validate_datetime_eu', $value] ; + } + return undef ; + } + + + +1; Modified: perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm?rev=1378808&r1=1378807&r2=1378808&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm Thu Aug 30 05:52:03 2012 @@ -15,7 +15,7 @@ ################################################################################### -package Embperl::Form::Validate::Time ; +package Embperl::Form::Validate::TimeHHMM ; use base qw(Embperl::Form::Validate::Default); Modified: perl/embperl/trunk/Embperl/Form/Validate/TimeHHMMSS.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/TimeHHMMSS.pm?rev=1378808&r1=1378807&r2=1378808&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/TimeHHMMSS.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/TimeHHMMSS.pm Thu Aug 30 05:52:03 2012 @@ -15,7 +15,7 @@ ################################################################################### -package Embperl::Form::Validate::Time_Long ; +package Embperl::Form::Validate::TimeHHMMSS ; use base qw(Embperl::Form::Validate::Default); --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org