Gantry
view release on metacpan or search on metacpan
lib/Gantry/Plugins/AjaxFORM.pm view on Meta::CPAN
sub do_main {
my ( $self ) = @_;
my $data = "something';
$self->stash->view->template('form.tt');
my $form = Gantry::Plugins::AjaxFORM->new(
process_action => \&user_process,
cancel_action => \&user_cancel,
success_action => \&user_success,
form => \&user_form,
user_data => $data,
text_descr => 'database row description',
use_clean_dates => 1,
turn_off_clean_params => 1,
);
$form->process($self);
}
sub user_process {
my ( $self , $params, $data ) = @_;
# do somthing interesting with the data
}
sub user_success {
my ( $self, $params, $action ) = @_;
$self->do_main( );
}
sub user_cancel {
my ( $self, $params, $action ) = @_;
$self->do_main( );
}
sub form {
my ( $self, $data ) = @_;
return {name => 'form',
row => $data->{row},
fields => [{name => 'name',
label => 'Name',
type => 'text',
is => 'varchar'}]
};
}
=head1 DESCRIPTION
This module is used for basic form processing. Instead of writing the
same form processing code over and over again. You can use this module
instead. This module is sensitive to server side relocations so it will
work with AJAX based systems.
Notice: most plugins export methods into your package, this one does NOT.
This module does the following basic form handling:
redispatch to listing page if user presses cancel
if form parameters are valid:
callback to action method
else:
if method is POST:
add form validation errors
(re)display form
=head1 METHODS
This is an object oriented only module (it doesn't export like the other
plugins).
=over 4
=item process
Dispatches to the form handler. Called from the do_* function.
=item new
Constructs a new AjaxFORM helper. Pass in a list of the following callbacks
and config parameters (similar, but not the same as in CRUD):
=over 4
=item process_action (a code ref)
Called with:
your self object
hash of form parameters
user specific data
Called only when the form parameters are valid. Do anything you want with
the data. You should try not to die.
=item form (a code ref)
Called with:
your self object
user specific data
This needs to return just like the _form method required by
C<Gantry::Plugins::AutoCRUD>. See its docs for details.
The only difference between these is that the AutoCRUD calls
_form with your self object and the row being edited (during editing)
whereas this method ALWAYS receives both your self object and the
data you supplied.
=item cancel_action (a code ref)
Called with:
( run in 0.603 second using v1.01-cache-2.11-cpan-5511b514fd6 )