Packages
nitro
1.4.0
11.4.16
11.4.15
11.4.14
9.9.7
9.9.6
8.2.4
8.2.3
8.2.2
8.2.1
8.2.0
7.12.1
7.10.0
7.9.3
7.9.2
7.9.1
7.9.0
7.8.3
7.8.2
7.8.0
7.7.1
7.7.0
7.6.2
7.6.1
7.6.0
7.5.0
7.4.2
7.4.1
7.4.0
7.2.1
7.2.0
7.1.1
7.1.0
6.12.0
6.11.11
6.11.10
6.11.9
6.11.8
6.11.7
6.11.6
6.11.4
6.11.2
6.11.1
6.10.9
6.10.8
6.10.7
6.10.6
6.10.5
6.10.4
6.10.3
6.10.2
6.10.1
6.9.1
6.6.1
6.5.0
6.4.4
6.4.3
6.4.2
6.4.1
6.4.0
5.12.4
5.12.3
5.12.2
5.12.1
5.12.0
5.11.1
5.11.0
5.9.2
5.9.1
5.8.5
5.8.4
5.8.3
5.8.1
5.8.0
5.6.1
5.5.1
5.4.3
5.4.2
5.4.1
5.3.1
5.3.0
5.2.1
5.1.7
5.1.6
5.1.5
5.1.4
5.1.3
5.1.2
5.1.1
4.12.11
4.12.10
4.12.9
4.12.8
4.12.7
4.12.6
4.12.5
4.12.4
4.12.3
4.12.2
4.12.1
4.12.0
4.11.13
4.11.12
4.11.11
4.11.10
4.11.9
4.11.8
4.11.7
4.11.6
4.11.5
4.11.4
4.11.3
4.11.2
4.11.1
4.11.0
4.10.9
4.10.8
4.10.7
4.10.6
4.10.5
4.10.4
4.10.3
4.10.2
4.10.1
4.10.0
4.7.7
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.4.1
4.4.0
1.4.0
NITRO Nitrogen Web Framework
Current section
Files
Jump to
Current section
Files
src/elements/element_select.erl
-module(element_select).
-include_lib("nitro/include/nitro.hrl").
-compile(export_all).
render_element(Record = #select{}) ->
ID = case Record#select.id of undefined -> nitro:temp_id(); I->I end,
case Record#select.postback of
undefined -> skip;
Postback -> nitro:wire(#event{ type=change,
target=ID,
postback=Postback,
source=[nitro:to_atom(ID)],
delegate=Record#select.delegate }) end,
Props = [
{<<"id">>, ID},
{<<"class">>, Record#select.class},
{<<"style">>, Record#select.style},
{<<"name">>, Record#select.name},
{<<"onchange">>, Record#select.onchange},
{<<"title">>, Record#select.title},
{<<"required">>, case Record#select.required of true -> <<"required">>; _-> undefined end},
{<<"disabled">>, case Record#select.disabled of true -> <<"disabled">>; _-> undefined end},
{<<"multiple">>, case Record#select.multiple of true -> <<"multiple">>; _-> undefined end} | Record#select.data_fields
],
wf_tags:emit_tag(<<"select">>, nitro:render(Record#select.body),
Props);
render_element(Group = #optgroup{}) ->
wf_tags:emit_tag(<<"optgroup">>, nitro:render(Group#optgroup.body), [
{<<"disabled">>, case Group#optgroup.disabled of true-> <<"disabled">>; _-> undefined end},
{<<"label">>, Group#optgroup.label}
]);
render_element(O = #option{}) ->
wf_tags:emit_tag(<<"option">>, nitro:render(O#option.body), [
{<<"id">>, O#option.id},
{<<"disabled">>, case O#option.disabled of true -> <<"disabled">>; _-> undefined end},
{<<"label">>, O#option.label},
{<<"title">>, O#option.title},
{<<"selected">>, case O#option.selected of true -> <<"selected">>; _-> undefined end},
{<<"value">>, O#option.value} | O#option.data_fields]).