Hatena::Groupcatalyst

masaki@catalyst RSSフィード

Fork me on GitHub

2006-11-26

C::P::FillInForm::Loose

| 23:45 | C::P::FillInForm::Loose - masaki@catalyst を含むブックマーク はてなブックマーク - C::P::FillInForm::Loose - masaki@catalyst C::P::FillInForm::Loose - masaki@catalyst のブックマークコメント

finalize での強制 fillform をオプションにしてみた.あと $c->stash->{error} は外した.

package Catalyst::Plugin::FillInForm::Loose;

use strict;
use warnings;
use HTML::FillInForm;
use NEXT;

use version; our $VERSION = qv('0.1.0');

sub finalize {
    my $c = shift;

    return $c->NEXT::finalize(@_)
        unless $c->config->{fillinform}->{auto_on_error}
        and    $c->isa('Catalyst::Plugin::FormValidator');

    $c->fillform if $c->form->has_missing || $c->form->has_invalid;

    return $c->NEXT::finalize(@_);
}

sub fillform {
    my ($c, $fdat) = @_;

    $c->res->output(
        HTML::FillInForm->new->fill(
            scalarref => \$c->res->{body},
            fdat      => ($fdat || $c->req->params),
        )
    );
}

1;
# myapp.yml
fillinform:
  auto_on_error: 1 # force fillform() in finalize phase