$HTML::FormFu::Element::Label::VERSION
=
'2.07'
;
'HTML::FormFu::Role::Element::SingleValueField'
,
'HTML::FormFu::Role::Element::Coercible'
;
has
field_type
=> (
is
=>
'rw'
,
traits
=> [
'Chained'
] );
has
tag
=> (
is
=>
'rw'
,
default
=>
'span'
,
lazy
=> 1,
traits
=> [
'Chained'
],
);
after
BUILD
=>
sub
{
my
$self
=
shift
;
$self
->layout_field_filename(
'field_layout_label_field'
);
$self
->non_param(1);
$self
->model_config->{read_only} = 1;
return
;
};
sub
_string_field {
my
(
$self
,
$render
) =
@_
;
my
$html
.=
"<"
.
$self
->tag;
$html
.=
sprintf
"%s"
, process_attrs(
$render
->{attributes} || {} );
if
(
defined
$render
->{nested_name} ) {
$html
.=
sprintf
qq{ name="%s"}
,
$render
->{nested_name};
}
$html
.=
">"
;
if
(
defined
$render
->{value} ) {
$html
.=
sprintf
qq{%s}
,
$render
->{value};
}
$html
.=
"</"
.
$self
->tag .
">"
;
return
$html
;
}
sub
process_input {
my
(
$self
,
$input
) =
@_
;
my
$form
=
$self
->form;
my
$name
=
$self
->nested_name;
if
(
$form
->submitted
&&
$form
->nested_hash_key_exists(
$input
,
$name
) )
{
my
@fields
= @{
$form
->get_fields( {
nested_name
=>
$name
} ) };
if
( none {
$_
==
$self
}
@fields
) {
$form
->delete_nested_hash_key(
$input
,
$name
);
}
}
return
;
}
sub
render_data_non_recursive {
my
(
$self
,
$args
) =
@_
;
my
$render
=
$self
->SUPER::render_data_non_recursive(
{
tag
=>
$self
->tag,
$args
?
%$args
: (),
} );
return
$render
;
}
__PACKAGE__->meta->make_immutable;
1;