Current section

Files

Jump to
nitro src elements input element_radio.erl
Raw

src/elements/input/element_radio.erl

-module(element_radio).
-author('Rusty Klophaus').
-include_lib("nitro/include/nitro.hrl").
-include_lib("nitro/include/event.hrl").
-compile(export_all).
render_element(Record) when Record#radio.show_if==false -> [<<>>];
render_element(Record) ->
ID = case Record#radio.id of
[] -> nitro:temp_id();
RadioID -> RadioID
end,
case Record#radio.postback of
[] -> ignore;
Postback -> nitro:wire(#event{type=change, postback=Postback, target=ID, delegate=Record#radio.delegate })
end,
Content = nitro:render(Record#radio.body),
TypeChecked = case Record#radio.checked of
true -> [{<<"checked">>, <<"">>},{<<"type">>, <<"radio">>}];
_ -> [{<<"type">>, <<"radio">>}] end ++ case Record#radio.disabled of
true -> [{<<"disabled">>, <<"disabled">>}];
_ -> [] end,
[
wf_tags:emit_tag(<<"input">>, Content, TypeChecked ++ [
{<<"id">>, ID},
{<<"value">>, Record#radio.value},
{<<"name">>, nitro:coalesce([Record#radio.html_name,Record#radio.name])},
{<<"class">>, Record#radio.class},
{<<"style">>, Record#radio.style},
{<<"onclick">>, Record#radio.onclick},
{<<"required">>,if Record#radio.required == true -> "required"; true -> [] end}
])
].