Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MyApp::HTML::FormHandler::Widget::Theme::Bootstrap;
- use HTML::FormHandler::Moose::Role;
- with 'HTML::FormHandler::Widget::Theme::BootstrapFormMessages';
- after 'before_build' => sub {
- my $self = shift;
- $self->set_widget_wrapper('Bootstrap')
- if $self->widget_wrapper eq 'Simple';
- };
- ## sample method; not needed for example
- after 'html_attributes' => sub {
- my ( $self, $obj, $type, $attr, $result ) = @_;
- $attr->{placeholder} = $self->_localize($attr->{placeholder})
- if exists $attr->{placeholder};
- return $attr;
- };
- no HTML::FormHandler::Moose::Role;
- 1;
- __END__
- package MyApp::HTML::FormHandler::Widget::Wrapper::Bootstrap;
- use Moose::Role;
- use namespace::autoclean;
- use HTML::FormHandler::Render::Util ('process_attrs');
- with 'HTML::FormHandler::Widget::Wrapper::Base';
- ### LOTS of code here, can override pretty much any method
- ### I've heavily customized `wrap_field`, not included here
- ## sample method; not needed for example
- # don't render label for checkboxes
- sub do_render_label {
- my ( $self ) = @_;
- return '' if $self->type_attr eq 'checkbox';
- HTML::FormHandler::Widget::Wrapper::Base::do_render_label(@_);
- }
- 1;
- __END__
- package MyApp::HTML::FormHandler::Form::Base;
- use Moose;
- use namespace::autoclean;
- use HTML::FormHandler::Moose;
- use HTML::FormHandler::Merge ('merge');
- extends 'HTML::FormHandler';
- with qw'HTML::FormHandler::Widget::Form::Role::HTMLAttributes
- MyApp::HTML::FormHandler::Widget::Theme::Bootstrap
- MyApp::Roles::DateTime
- ';
- has "+is_html5" => ( default => 1 );
- # use MyApp namespaces
- has '+field_name_space' => ( default => sub { ['MyApp::HTML::FormHandler::Field'] } );
- has '+widget_name_space' => ( default => sub { ['MyApp::HTML::FormHandler::Widget'] } );
- ## sample attribute; not needed for example
- # init custom tags; tags used in MyApp::HFH::W::W::Bootstrap
- has '+widget_tags' => ( default => sub { {
- label_is_after => 0,
- label_cols => 'col-sm-3',
- field_cols => 'col-sm-6',
- error_cols => 'col-sm-3',
- } } );
- ## sample method; not needed for example
- after 'html_attributes' => sub {
- my ( $self, $field, $type, $attr ) = @_;
- if ($type eq 'label' && $field->{required}) {
- push @{ $attr->{class} }, ( 'required' );
- }
- return $attr;
- };
- no HTML::FormHandler::Moose;
- 1;
- __END__
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement