NAME

Gantry::Utils::FormErrors - A CRUD form validation error object

SYNOPSIS

A typical example:

use Gantry::Plugins::CRUD;
use Gantry::Utils::FormErrors;

my $crud_obj = Gantry::Plugins::CRUD->new(
    #...
    validator => \&my_validator,
);

sub my_validator {
    my $opts   = shift;
    my $params = $opts->{ params };
    my $form   = $opts->{ form   };

    my %missing;
    my @errors;

    if ( not $params->{ password } ) {
        $missing{ password }++;
    }
    if ( $params->{ password } =~ /$params->{ user_name }/ ) {
        push @errors, 'Password cannot contain user name';
    }
    # ... other similar tests

    my $error_text = join "\n<br /><b>Error:</b> ", @errors;

    $form->{ error_text } = $error_text;

    return Gantry::Utils::FormErrors->new(
        {
            missing    => \%missing,
        }
    );
}

The rest is handled by the CRUD plugin and the default template (form.tt).

DESCRIPTION

This module provides objects which respond to the same API as Data::FormValidator::Results (or at least the parts of that API which Gantry normally uses).

Use this module in your Gantry::Plugins::CRUD validator callback.

METHODS

new

Constructor, expects a hash reference with the following keys (all are optional):

missing    - a hash reference keyed by missing field names
invalid    - a hash reference keyed by invalid field names
has_missing

Returns 1 if there are any keys in the missing hash.

has_invalid

Same as has_missing, except that it checks the invalid hash.

missing

If called without arguments, returns number of missing fields. If call with the name of a field, returns 1 if that field is a key in the missing hash and 0 otherwise.

invalid

Same as missing, but checks the invalid hash.

get_missing_hash

Returns the hash reference of missing fields. Keys are field names values are usually 1 (but they must be true).

This is useful if two validation routines are cooperating to form the final lists.

get_invalid_hash

Returns the hash reference of invalid fields. Keys are field names values are usually 1 (but they must be true).

This is useful if two validation routines are cooperating to form the final lists.

AUTHOR

Phil Crow, <philcrow2000@yayoo.com<gt>

COPYRIGHT AND LICENSE

Copyright (C) 2006 Phil Crow

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.