Gantry
view release on metacpan or search on metacpan
lib/Gantry/Plugins/AjaxCRUD.pm view on Meta::CPAN
if ( $self->turn_off_clean_params ) {
if ( $self->use_clean_dates ) {
clean_dates( $params, $form->{ fields } );
}
}
else {
clean_params( $params, $form->{ fields } );
}
$self->add_action->( $your_self, $params, $data );
# move along, we're all done here
return $self->success_action->( $your_self, $data, 'submit', 'add' );
}
} # END: add
#-------------------------------------------------
# $self->edit( $your_self, { put => 'your', data => 'here' } );
#-------------------------------------------------
sub edit {
my ( $self, $your_self, $data ) = @_;
eval {
$self->setup_action->( $your_self, $data, 'edit', $self->text_descr );
}; # failure means they don't wan this
my %params = $your_self->get_param_hash();
# Redirect if 'Cancel'
if ( $params{cancel} ) {
return $self->cancel_action->( $your_self, $data, 'cancel', 'edit' );
}
# get and hold the form description
my $form = $self->form->( $your_self, $data );
croak 'Your form callback gave me nothing' unless defined $form and $form;
my $show_form = 0;
$show_form = 1 if ( keys %params == 0 );
# Check form data
my $results = Data::FormValidator->check(
\%params,
form_profile( $form->{fields} ),
);
$show_form = 1 if ( $results->has_invalid );
$show_form = 1 if ( $results->has_missing );
# Form has errors
if ( $show_form ) {
# order matters, get form data first...
$your_self->stash->view->form( $form );
# ... then overlay with results
if ( $your_self->method eq 'POST' ) {
$your_self->stash->view->form->results( $results );
}
}
# Form looks good, make update
else {
# remove submit button param
delete $params{submit};
if ( $self->turn_off_clean_params ) {
if ( $self->use_clean_dates ) {
clean_dates( \%params, $form->{ fields } );
}
}
else {
clean_params( \%params, $form->{ fields } );
}
$self->edit_action->( $your_self, \%params, $data );
# all done, move along
return $self->success_action->( $your_self, $data, 'submit', 'edit' );
}
} # END: edit
#-------------------------------------------------
# $self->delete( $your_self, $confirm, { other => 'data' } )
#-------------------------------------------------
sub delete {
my ( $self, $your_self, $yes, $data ) = @_;
eval {
$self->setup_action->(
$your_self, $data, 'delete', $self->text_descr
);
}; # failure means they don't wan this
if ( $your_self->params->{cancel} ) {
return $self->cancel_action->( $your_self, $data, 'cancel', 'delete' );
}
if ( ( defined $yes ) and ( $yes eq 'yes' ) ) {
$self->delete_action->( $your_self, $data );
# Move along, it's already dead
return $self->success_action->( $your_self, $data, 'submit', 'delete' );
}
else {
$your_self->stash->view->form->message (
'Delete ' . $self->text_descr() . '?'
);
}
}
( run in 1.477 second using v1.01-cache-2.11-cpan-7fcb06a456a )