Dancer2::Plugin::TemplateFlute - Dancer2 form handler for Template::Flute template engine
Version 0.202
Display template with checkout form:
get '/checkout' => sub {
my $form;
$form = form( name => 'checkout', source => 'session' );
template 'checkout', { form => $form };
};
Retrieve form input from checkout form body:
post '/checkout' => sub {
my ($form, $values);
$form = form( name => 'checkout', source => 'body' );
$values = $form->values;
};
Reset form after completion to prevent old data from showing up on new form:
form('checkout')->reset;
If you have multiple forms then just pass the form token as an array reference:
get '/cart' => sub {
my ( $cart_form, $inquiry_form );
# 'source' defaults to 'session' if not provided
$cart_form = form( name => 'cart' );
# equivalent to form( name => 'inquiry' )
$inquiry_form = form( 'inquiry' );
template 'checkout', { form => [ $cart_form, $inquiry_form ] };
};
The following %params
are recognised:
The name of the form. Defaults to 'main'.
my $form = form( 'main', values => $params );
The form parameters as a Hash::MultiValue object or something that can be coerced into one.
Instead of "values" you can also use "source" to set initial values.
my $form = form( name => 'main', source => 'body' );
The following values are valid:
-
body
This sets the form values to the request body parameters Dancer2::Core::Request::body_parameters.
-
query
This sets the form values to the request query parameters Dancer2::Core::Request::query_parameters.
-
parameters
This sets the form values to the combined body and request query parameters Dancer2::Core::Request::parameters.
-
session
Reads in values from the session. This is the default if no "source" or "parameters" are specified.
NOTE: if both "source" and "values" are supplied then values is ignored.
See Dancer2::Plugin::TemplateFlute::Form for details of other parameters that can be used.
Dancer2::Plugin::TemplateFlute
is used for forms with the
Dancer2::Template::TemplateFlute templating engine.
Form fields, values and errors are stored into and loaded from the session key
form
.
Original Dancer plugin by:
Stefan Hornburg (Racke), <racke at linuxia.de>
Initial port to Dancer2 by:
Evan Brown (evanernest), evan at bottlenose-wine.com
Rehacking to Dancer2's plugin2 and general rework:
Peter Mottram (SysPete), peter at sysnix.com
Please report any bugs or feature requests via GitHub issues: https://github.com/interchange/Dancer2-Plugin-TemplateFlute/issues.
We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.
Copyright 2011-2016 Stefan Hornburg (Racke).
Copyright 2015-1016 Evan Brown.
Copyright 2016 Peter Mottram (SysPete).
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.