Rework form rendering to use formhandler.

agranig/1_0_subfix
Andreas Granig 12 years ago
parent 7ca48ece05
commit d2d0fef99b

@ -34,12 +34,13 @@ sub index :Path Form {
$form->process(
posted => ($c->req->method eq 'POST'),
params => $c->request->params,
action => $c->uri_for($c->controller('Login')->action_for('index')),
);
if($form->validated) {
print ">>>>>> login form validated\n";
my $user = $form->field('username');
my $pass = $form->field('password');
my $user = $form->field('username')->value;
my $pass = $form->field('password')->value;
$c->log->debug("*** Login::index user=$user, pass=$pass, realm=$realm");
if($c->authenticate({ username => $user, password => $pass }, $realm)) {
# auth ok
@ -49,7 +50,7 @@ sub index :Path Form {
$c->response->redirect($target);
} else {
$c->log->debug("*** Login::index auth failed");
$c->stash->{error}->{message} = 'login failed';
$form->add_form_error('Invalid username/password');
}
} elsif($c->req->method eq 'POST') {
print ">>>>>> login form NOT validated\n";

@ -4,15 +4,16 @@ use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
use Moose::Util::TypeConstraints;
with 'HTML::FormHandler::Widget::Form::Simple';
sub build_form_tags {{ error_class => 'label label-secondary'}}
has_field 'username' => (
type => 'Text',
required => 1,
element_attr => { placeholder => 'Username' },
element_class => [qw/login username-field/],
wrapper_class => [qw/field control-group/],
wrapper_class => [qw/login-fields field control-group/],
error_class => [qw/error/],
messages => {
required => 'Please provide a username'
@ -24,12 +25,20 @@ has_field 'password' => (
required => 1,
element_attr => { placeholder => 'Password' },
element_class => [qw/login password-field/],
wrapper_class => [qw/field control-group/],
wrapper_class => [qw/login-fields field control-group/],
error_class => [qw/error/],
messages => {
required => 'Please provide a password'
},
);
has_field 'submit' => (
type => 'Submit',
value => 'Sign In',
label => '',
element_class => [qw/button btn btn-primary btn-large/],
wrapper_class => [qw/login-actions/],
);
1;
# vim: set tabstop=4 expandtab:

@ -1,29 +1,8 @@
<body class="login">
<!--
[%
USE Dumper;
Dumper.dump(form);
%]
-->
[% IF error.message -%]
<div class="alert alert-error">
<span>[% error.message -%]</span>
</div>
[% END -%]
<div class="account-container login stacked">
<div class="content clearfix">
<form method="post" action="[% c.uri_for("/login/$realm") %]">
<h1>Sign In</h1>
<div class="login-fields">
<p>Sign in with your [% realm %] credentials:</p>
[% FOREACH f IN form.sorted_fields -%]
[% f.render -%]
[% END -%]
</div>
<div class="login-actions">
<button id="submit" name="submit" class="button btn btn-primary btn-large">Sign In</button>
</div>
</form>
<h1>Sign In</h1>
[% form.render %]
</div>
</div>
[% IF realm == 'subscriber' -%]

Loading…
Cancel
Save