Created
October 29, 2012 07:03
-
-
Save akzhan/3972047 to your computer and use it in GitHub Desktop.
пример визарда
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package FrontOffice::Controller::WizardSample; | |
=encoding windows-1251 | |
=head1 NAME | |
FrontOffice::Controller::WizardSample | |
=cut | |
use Modern::Perl; | |
use Moose; | |
use namespace::autoclean; | |
BEGIN { extends 'FrontOffice::WizardBaseController'; } | |
__PACKAGE__->config( | |
wizard_name => 'sample', | |
first_state => 'welcome', | |
states => { | |
welcome => { | |
# проверка валидности сохраненных данных. | |
# используется только последний валидный шаг. | |
valid => sub { | |
my ( $c, $wiz ) = @_; | |
return true; | |
}, | |
# проверка валидности принятых параметров. | |
# в случае ошибок показываем текущий шаг снова с ошибками в $c->flash. | |
validate => sub { | |
my ( $c, $wiz, $param ) = @_; | |
my @errors = (); | |
return @errors; | |
}, | |
# сохранение принятых данных в модели. | |
save => sub { | |
my ( $c, $wiz, $param ) = @_; | |
return; | |
}, | |
# получение следующего шага (может быть просто именем). | |
# если undef, выполнение мастера завершено. | |
next => sub { | |
my ( $c, $wiz ) = @_; | |
return 'success'; | |
}, | |
}, | |
success => { | |
valid => sub { | |
my ( $c, $wiz ) = @_; | |
return true; | |
}, | |
validate => sub { | |
my ( $c, $wiz, $param ) = @_; | |
my @errors = (); | |
return @errors; | |
}, | |
save => sub { | |
my ( $c, $wiz, $param ) = @_; | |
return; | |
}, | |
next => sub { | |
my ( $c, $wiz ) = @_; | |
$c->response->redirect( '/welcome_page' ); | |
return; | |
}, | |
}, | |
}, | |
); | |
sub base : PathPart( 'wizard/sample' ) { | |
return; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment