[cgiapp] Alpha release - GenVal Form generation and client/server validation

Lyle webmaster at cosmicperl.com
Fri Mar 13 13:50:13 EDT 2009


Hi All,
  I've uploaded part of the YAML based form generation and client/server 
validation module I've been working on.

It's aim is make make creating forms with client and server validation 
very easy, and ultra easy to keep up to date. Once setup all you need to 
do is edit the central YAML schema to add/remove/edit form fields and 
the server and client validation is automatically updated.

Background:
  I'm working on a large project with a lot of config forms. The usual 
process of updating HTML, JavaScript, DFV profile then finally Perl code 
is simply not feasible and would be far to time consuming. So I've 
created this module so all this can be done by editing one YAML file.

Issues it resolves:
  Newer versions of DFV use compiled regexps and closures. These are 
great for the server side Perl validation but no longer exportable to 
the client side Data.FormValidator.js validation.
  As GenVal has all the validation regexps and method names in the YAML, 
is uses this to create the compiled regexps and closures for the Perl 
validation and also downgrades them to normal regexps and methods for 
the JS validation.
  I've also updated Data.FormValidator.js so that it displays errors in 
the exact same way as the Perl DFV. I've made newer DFV methods that are 
only available as closures, such as FV_eq_with, available in 
Data.FormValidator.js. This is possible because GenVal downgrades the 
new closure methods to the old format that Data.FormValidator.js can 
understand.

This is only alpha release, so will probably have a few bugs while I 
work on it. But I thought I'd put it out there for people to see.

I've got another version that has all the mysql database schema in the 
YAML as well. It creates/updates the database tables as needed, so you 
no longer need to write and DB upgrade routines when you change your 
forms and data. This isn't released yet though.


Feedback much appreciated.


Lyle



More information about the cgiapp mailing list