NAME

Dancer2::Plugin::TemplateFlute - Dancer2 form handler for Template::Flute template engine

VERSION

Version 0.202

SYNOPSIS

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 ] };
    };

KEYWORDS

form <$name|%params>

The following %params are recognised:

name

The name of the form. Defaults to 'main'.

values

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.

source

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.

DESCRIPTION

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.

AUTHORS

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

BUGS

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.

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

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.