richter     2003/02/23 23:23:02

  Modified:    .        Changes.pod test.pl
               Embperl/Form Validate.pm
               Embperl/Form/Validate IPAddr.pm IPAddr_Mask.pm
               test/cmp epform.htm escape.htm
               test/html epform.htm
  Added:       Embperl/Form/Validate EMail.pm EMailRFC.pm TimeHHMM.pm
                        TimeHHMMSS.pm
  Removed:     test/cmp2 escape.htm
  Log:
  -type email & time and test fixes
  
  Revision  Changes    Path
  1.202     +2 -1      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.201
  retrieving revision 1.202
  diff -u -r1.201 -r1.202
  --- Changes.pod       19 Feb 2003 08:30:04 -0000      1.201
  +++ Changes.pod       24 Feb 2003 07:23:00 -0000      1.202
  @@ -63,7 +63,8 @@
      - EMBPERL_COOKIE_EXPIRES now again accepts relatives times like +2h.
      - embpexec.pl now correctly takes config values from environment
        for application object.
  -   - Added -type => Integer, IPAddr, IPAddr_Net to Embperl::Form::Validate.
  +   - Added -type => Integer, IPAddr, IPAddr_Net, TimeHHMM, TimeHHMMSS,
  +     EMail and EMailRFC to Embperl::Form::Validate.
   
   =head1 2.0b8  (BETA)  25. Juni 2002
   
  
  
  
  1.125     +3 -2      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.124
  retrieving revision 1.125
  diff -u -r1.124 -r1.125
  --- test.pl   15 Feb 2003 20:46:32 -0000      1.124
  +++ test.pl   24 Feb 2003 07:23:00 -0000      1.125
  @@ -1018,6 +1018,8 @@
       $^W     = 1 ;
       $|      = 1;
       
  +    $ENV{EMBPERL_COOKIE_EXPIRES} = '+120s' ;
  +
       if (($ARGV[0] || '') eq '--testlib') 
           {
           eval 'use ExtUtils::testlib' ;
  @@ -1749,7 +1751,6 @@
   $cp -> share ('$testshare') ;
   
   $ENV{EMBPERL_ALLOW} = 'asc|\\.xml$|\\.htm$|\\.htm-1$' ;
  -$ENV{EMBPERL_COOKIE_EXPIRE} = '+120s' ;
   
   #Embperl::log ("Start testing...\n") ; # force logfile open
   
  
  
  
  1.5       +53 -8     embperl/Embperl/Form/Validate.pm
  
  Index: Validate.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Form/Validate.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Validate.pm       19 Feb 2003 08:30:04 -0000      1.4
  +++ Validate.pm       24 Feb 2003 07:23:01 -0000      1.5
  @@ -134,7 +134,7 @@
   Adds rules $field_rules for a (new) field $field to the validator,
   e.g.
   
  - $epf->add_rule([ -key => 'fnord', -type => 'Float', -max => 1.3, -name => 'Fnord' 
]);
  + $epf->add_rule([ -key => 'fnord', -type => 'Number', -max => 1.3, -name => 'Fnord' 
]);
   
   The new rule will be appended to the end of the list of rules.
   
  @@ -674,7 +674,7 @@
       ],
       [
       -key        => 'from',
  -    -type       => 'Date',
  +    -type       => 'EMail',
       emptyok     => 1,
       ],
   
  @@ -707,13 +707,58 @@
   specfify to not use the standard tests, but the ones for a special type.
   For example there is a type C<Number> which will replaces all the comparsions
   by numeric ones instead of string comparisions. You may add your own types
  -by wrting a module that contains the necessary test and dropping it under
  +by writing a module that contains the necessary test and dropping it under
   Embperl::Form::Validate::<Typename>. The -type directive also can verfiy
   that the given data has a valid format for the type.
   
  -At the moment the only types that are available is C<Default> and C<Number>.
  -The first is the default and need not to be specified. If you are writing new 
  -type make sure to send them back, so they can be part of the next distribution.
  +The following types are available:
  +
  +=over
  +
  +=item Default
  +
  +This one is used when no type is specified. It contains all the standart
  +tests.
  +
  +=item Number
  +
  +Input must be a floating point number.
  +
  +=item Integer
  +
  +Input must be a integer number.
  +
  +=item TimeHHMM
  +
  +Input must be the time in the format hh::mm
  +
  +=item TimeHHMMSS
  +
  +Input must be the time in the format hh::mm:ss
  +
  +=item EMail
  +
  +Input must be a valid email address including a top level domain
  +e.g. [EMAIL PROTECTED]
  +
  +=item EMailRFC
  +
  +Input must be a valid email adress, no top level domain is required,
  +so [EMAIL PROTECTED] is also valid.
  +
  +=item IPAddr
  +
  +Input must be an ip-address in the form nnn.nnn.nnn.nnn
  +
  +=item IPAddr_Mask
  +
  +Input must be an ip-address and network mask in the form nnn.nnn.nnn.nnn/mm
  +
  +=back
  +
  +
  +If you write your own type package,
  +make sure to send them back, so they can be part of the next distribution.
   
   =item -msg
   
  
  
  
  1.2       +1 -1      embperl/Embperl/Form/Validate/IPAddr.pm
  
  Index: IPAddr.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Form/Validate/IPAddr.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IPAddr.pm 19 Feb 2003 08:30:05 -0000      1.1
  +++ IPAddr.pm 24 Feb 2003 07:23:01 -0000      1.2
  @@ -28,7 +28,7 @@
   
       en =>
       {
  -     validate_ipaddr => 'Field %0: "%1" isn\'t a valid ip-address. Please enter the 
ip-address as nnn.nnn.nnn.nnn',
  +     validate_ipaddr => 'Field %0: "%1" isn\\\'t a valid ip-address. Please enter 
the ip-address as nnn.nnn.nnn.nnn',
       }
    );
   
  
  
  
  1.2       +1 -1      embperl/Embperl/Form/Validate/IPAddr_Mask.pm
  
  Index: IPAddr_Mask.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Form/Validate/IPAddr_Mask.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IPAddr_Mask.pm    19 Feb 2003 08:30:05 -0000      1.1
  +++ IPAddr_Mask.pm    24 Feb 2003 07:23:01 -0000      1.2
  @@ -28,7 +28,7 @@
   
       en =>
       {
  -     validate_ipaddr_mask => 'Field %0: "%1" isn\'t a valid ip-address/netmask. 
Please enter the ip-address/netmask as nnn.nnn.nnn.nnn/mm',
  +     validate_ipaddr_mask => 'Field %0: "%1" isn\\\'t a valid ip-address/netmask. 
Please enter the ip-address/netmask as nnn.nnn.nnn.nnn/mm',
       }
    );
   
  
  
  
  1.1                  embperl/Embperl/Form/Validate/EMail.pm
  
  Index: EMail.pm
  ===================================================================
  
  ###################################################################################
  #
  #   Embperl  - Copyright (c) 1997-2003 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: EMail.pm,v 1.1 2003/02/24 07:23:01 richter Exp $
  #
  ###################################################################################
  
  
  package Embperl::Form::Validate::EMail ;
  
  use base qw(Embperl::Form::Validate::Default);
  
  my %error_messages = 
  (
      de => 
      {
        validate_email => 'Die eingegebene E-Mail-Adresse "%0" in Feld "%1" ist 
ung�ltig, sie mu� genau ein "@" enthalten und darf keine Leerzeichen, Klammern oder 
Umlaute enthalten.',
        validate_email_nomailto => 'Die eingegebene E-Mail-Adresse "%0" in Feld "%1" 
scheint mit einem "mailto:"; zu beginnen. Bitte geben Sie nur eine E-Mail-Adresse ein 
und keine mit "mailto:"; beginnende URL.',
      },
  
      en =>
      {
        validate_email => 'The given e-mail address "%0" in field "%1" is not valid. 
It must have exactly one "@" and must not contain any blanks, parentheses or special 
charactes like umlauts.',  
        validate_email_nomailto => 'The given e-mail address "%0" in field "%1" seems 
to be prepended by "mailto:";. Please enter only an e-mail address and no URL starting 
with "mailto:";.',
      }
   );
  
  # --------------------------------------------------------------
  
  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) = @_ ;
      
      # The valid address "[EMAIL PROTECTED]" or local addresses are not valid in this 
more general ruleset
      if ($value !~ /^[^ <>()@[EMAIL PROTECTED] <>()@�-�]+\.[a-zA-Z]{2,4}$/ or
        $value =~ /@(\.|.*(\.\.|@))/)
        {
        return ['validate_email', $value, $key] ;
        }
  
      if ($value =~ /^mailto:/i)
        {
        return ['validate_email_nomailto', $value, $key] ;
        }
  
      return undef ;
      }
  
  # --------------------------------------------------------------
  
  sub getscript_validate 
      {
      my ($self, $arg, $pref) = @_ ;
      
      return ('((obj.value.search(/^[^ <>()@[EMAIL PROTECTED] 
<>()@�-�]+\.[a-zA-Z]{2,4}$/) >= 0) && (obj.value.search(/@(\.|.*(\.\.|@))|mailto:/i) < 
0))', 
            ['validate_email', "'+obj.value+'"]) ;
      }
  
  1;
  
  
  
  1.1                  embperl/Embperl/Form/Validate/EMailRFC.pm
  
  Index: EMailRFC.pm
  ===================================================================
  
  ###################################################################################
  #
  #   Embperl  - Copyright (c) 1997-2003 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: EMailRFC.pm,v 1.1 2003/02/24 07:23:01 richter Exp $
  #
  ###################################################################################
  
  
  package Embperl::Form::Validate::EMailRFC ;
  
  use base qw(Embperl::Form::Validate::EMail);
  
  # --------------------------------------------------------------
  
  sub validate 
      {
      my ($self, $key, $value, $fdat, $pref) = @_ ;
      
      # The valid address "[EMAIL PROTECTED]" or local addresses are valid in this RFC 
conforming ruleset
      if ($value !~ /^[^ <>()@[EMAIL PROTECTED] <>()@�-�]+$/ or
        $value =~ /@(\.|.*(\.\.|@))/)
        {
        return ['validate_email', $value, $key] ;
        }
  
      if ($value =~ /^mailto:/i)
        {
        return ['validate_email_nomailto', $value, $key] ;
        }
  
      return undef ;
      }
  
  # --------------------------------------------------------------
  
  sub getscript_validate 
      {
      my ($self, $arg, $pref) = @_ ;
      
      return ('((obj.value.search(/^[^ <>()@[EMAIL PROTECTED] <>()@�-�]+$/) >= 0) && 
(obj.value.search(/@(\.|.*(\.\.|@))|mailto:/i) < 0))', 
            ['validate_email', "'+obj.value+'"]) ;
      }
  
  1;
  
  
  
  1.1                  embperl/Embperl/Form/Validate/TimeHHMM.pm
  
  Index: TimeHHMM.pm
  ===================================================================
  
  ###################################################################################
  #
  #   Embperl - Copyright (c) 1997-2002 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: TimeHHMM.pm,v 1.1 2003/02/24 07:23:01 richter Exp $
  #
  ###################################################################################
  
  
  package Embperl::Form::Validate::Time ;
  
  use base qw(Embperl::Form::Validate::Default);
  
  my %error_messages = 
  (
      de => 
      {
        validate_time => 'Feld %0: "%1" ist kein g�ltiges Zeitformat. Geben Sie die 
Zeit in der Form hh:mm ein',
      },
  
      en =>
      {
        validate_time => 'Field %0: "%1" isn\\\'t a valid time. Please enter the time 
as hh:mm',
      }
   );
  
  # --------------------------------------------------------------
  
  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\d):(\d\d)$/)
        {
        if ($1 < 0 || $1 > 23 ||
            $2 < 0 || $2 > 59 )
            {
              return ['validate_time', $value] ;
            }
        return undef ;
        }
      return ['validate_time', $value] ;
      }
  
  # --------------------------------------------------------------
  
  sub getscript_validate
      {
      my ($self, $arg, $pref) = @_ ;
  
      return ('obj.value.search(/^\d{2}\:\d{2}$/) >= 0', ['validate_time', 
"'+obj.value+'"]) ;
      }
  
  
  1;
  
  
  
  1.1                  embperl/Embperl/Form/Validate/TimeHHMMSS.pm
  
  Index: TimeHHMMSS.pm
  ===================================================================
  
  ###################################################################################
  #
  #   Embperl - Copyright (c) 1997-2002 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,v 1.1 2003/02/24 07:23:01 richter Exp $
  #
  ###################################################################################
  
  
  package Embperl::Form::Validate::Time_Long ;
  
  use base qw(Embperl::Form::Validate::Default);
  
  my %error_messages = 
  (
      de => 
      {
        validate_time_long => 'Feld %0: "%1" ist kein g�ltiges Zeitformat. Geben Sie 
die Zeit in der Form hh:mm:ss ein',
      },
  
      en =>
      {
        validate_time_long => 'Field %0: "%1" isn\\\'t a valid time. Please enter the 
time as hh:mm:ss',
      }
   );
  
  # --------------------------------------------------------------
  
  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\d):(\d\d):(\d\d)$/)
        {
        if ($1 < 0 || $1 > 23 ||
            $2 < 0 || $2 > 59 ||
          $3 < 0 || $3 > 59)
            {
              return ['validate_time_long', $value] ;
            }
        return undef ;
        }
      return ['validate_time_long', $value] ;
      }
  
  # --------------------------------------------------------------
  
  sub getscript_validate
      {
      my ($self, $arg, $pref) = @_ ;
  
      return ('obj.value.search(/^\d\d:\d\d:\d\d$/) >= 0', ['validate_time_long', 
"'+obj.value+'"]) ;
      }
  
  
  1;
  
  
  
  1.2       +3 -1      embperl/test/cmp/epform.htm
  
  Index: epform.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/epform.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- epform.htm        23 Dec 2002 10:08:54 -0000      1.1
  +++ epform.htm        24 Feb 2003 07:23:02 -0000      1.2
  @@ -24,12 +24,14 @@
   
   do {
   obj = document.foo['datum'] ; if (!(obj.value)) { msgs[i++]='Bitte Datum 
eintragen'; break;}
  +obj = document.foo['datum'] ; if (!(obj.value.search(/\d+\.\d+\.\d+/) >= 0)) { 
msgs[i++]='Datum �berpr�fen'; break;}
    
   } while (0) ; if (fail) break ;
   
   do {
   obj = document.foo['stunden'] ; if (!(obj.value)) { msgs[i++]='Bitte Stunden 
eintragen'; break;}
  -obj = document.foo['stunden'] ; if (!(obj.value > 0)) { msgs[i++]='Stundenzahl 
nicht numerisch'; break;}
  +obj = document.foo['stunden'] ; if (!(obj.value.search(/^\s*[0-9+-.][0-9.eE]*\s*$/) 
>= 0)) { msgs[i++]='Stundenzahl nicht numerisch'; break;}
  +obj = document.foo['stunden'] ; if (!(obj.value > 0)) { msgs[i++]='Stundenzahl mu� 
>0 sein'; break;}
    
   } while (0) ; if (fail) break ;
   
  
  
  
  1.26      +22 -0     embperl/test/cmp/escape.htm
  
  Index: escape.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/escape.htm,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- escape.htm        22 Oct 2002 05:29:09 -0000      1.25
  +++ escape.htm        24 Feb 2003 07:23:02 -0000      1.26
  @@ -194,6 +194,28 @@
   ^<a 
href="7\?(!Table=interface%2Crouter&amp;%24where=interface.router_id%3Drouter.id|%24where=interface.router_id%3Drouter.id&amp;!Table=interface%2Crouter)">
     
   
  +--> my
  +
  + &lt;b&gt;hello
  +&lt;b&gt;hello
  +<br><br>reset<br>
  +    &lt;b&gt;helloin++
  + &lt;b&gt;hello
  +&lt;b&gt;hello
  +<br><br>reset<br>
  +    &lt;b&gt;hello
  +&lt;b&gt;hello
  +--> local
  +
  + <b>hello
  +<b>hello
  +<br><br>reset<br>
  +    &lt;b&gt;helloin++
  + <b>hello
  +<b>hello
  +<br><br>reset<br>
  +    <b>hello
  +<b>hello
   <P>Ok.<P>
   
   
  
  
  
  1.2       +1 -2      embperl/test/html/epform.htm
  
  Index: epform.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/epform.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- epform.htm        23 Dec 2002 10:08:55 -0000      1.1
  +++ epform.htm        24 Feb 2003 07:23:02 -0000      1.2
  @@ -20,8 +20,7 @@
       -msg     => 'Bitte Stunden eintragen',
       required => 1,
       -msg     => 'Stundenzahl nicht numerisch', # fail-msg for next test
  -    -type    => 'Number',  # only Number and Default
  -    available
  +    -type    => 'Number',  # only Number and Default available
       -msg     => 'Stundenzahl mu&szlig; >0 sein', # fail-msg for next test
       gt       => 0,
       ],
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to