NAME
Zapp::Task::Action
VERSION
version 0.005
SYNOPSIS
package My::Task::Action;
use Mojo::Base 'Zapp::Task::Action', -signatures;
sub prepare( $self, $input ) {
# Notify user of input
...;
# Call superclass to show input form on run page
$self->SUPER::prepare( $self, $input );
}
sub action( $self, $task_input, $c, $form_input ) {
# Process form input
return $self->SUPER::action( $task_input, $c, $form_input );
}
sub run( $self, $task_input ) {
my $form_input = $self->info->{notes}{input};
# Do something with input
...;
# Call superclass to finish
$self->SUPER::run( $c, $task_input, $form_input );
}
1;
__DATA__
@@ action.html.ep
%# Display form for user input
DESCRIPTION
Actions are Task classes that prompt for user input and then wait. While they are waiting, Action classes may display a button, an input form, or other content on the run page.
Unlike regular Tasks, custom Actions have three steps:
- prepare
-
The prepare step is run by a Worker. This can be extended to perform any necessary notifications or setup. Once the action is prepared, the user may see the action_field on the Run page.
- action
-
The action step is run by the web application when a user interacts with the action field. The form input is stored in the
input
note (see "info" in Minion::Job). - run
-
The run step is run by the worker after the user has interacted with the action field. The default behavior is to simply finish the job successfully with the user's input. Override this for custom behavior.
SEE ALSO
Zapp::Task::Action::Confirm, Zapp::Task, Zapp
AUTHOR
Doug Bell <preaction@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.