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

Reply via email to