Gantry
view release on metacpan or search on metacpan
lib/Gantry/Plugins/CRUD.pm view on Meta::CPAN
unless $your_self->stash->view->title;
my %params = $your_self->get_param_hash();
# Redirect if 'Cancel'
if ( $params{cancel} ) {
my $redirect = $self->_find_redirect(
{
gantry_site => $your_self,
data => $data,
action => 'cancel',
user_req => 'edit',
}
);
return $your_self->relocate( $redirect );
}
# 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;
my $results;
if ( $your_self->is_post ) {
$show_form = 1 if ( keys %params == 0 );
# Check form data
if ( $self->validator ) {
$results = $self->validator->(
{
self => $your_self,
params => \%params,
form => $form,
profile => form_profile( $form->{ fields } ),
action => 'edit',
}
);
}
else {
$results = Data::FormValidator->check(
\%params,
form_profile( $form->{ fields } ),
);
}
$show_form = 1 if ( $results->has_invalid );
$show_form = 1 if ( $results->has_missing );
$show_form = 1 if ( $form->{ error_text } );
}
else {
$show_form = 1;
}
# 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 {
my $redirect;
my $action = $params{submit_add_another}
? 'submit_add_another'
: 'submit';
# remove submit button entry
delete $params{submit};
delete $params{submit_add_another};
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 );
# Find redirect.
$redirect = $self->_find_redirect(
{
gantry_site => $your_self,
data => $data,
action => $action,
user_req => 'edit'
}
);
return $your_self->relocate( $redirect );
}
} # END: edit
#-------------------------------------------------
# $self->delete( $your_self, $confirm, { other => 'data' } )
#-------------------------------------------------
sub delete {
my ( $self, $your_self, $yes, $data ) = @_;
$your_self->stash->view->template( 'delete.tt' )
unless $your_self->stash->view->template();
$your_self->stash->view->title( 'Delete' )
unless $your_self->stash->view->title;
if ( $your_self->params->{cancel} ) {
my $redirect = $self->_find_redirect(
{
gantry_site => $your_self,
data => $data,
action => 'cancel',
user_req => 'delete'
}
( run in 0.904 second using v1.01-cache-2.11-cpan-ceb78f64989 )