Packages
nitro
5.11.1
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/form/element_form.erl
-module(element_form).
-author('Vladimir Galunshchikov').
-include_lib("nitro/include/nitro.hrl").
-include_lib("nitro/include/event.hrl").
-compile(export_all).
render_element(Record) when Record#form.show_if==false -> [<<>>];
render_element(Record) ->
ID = case Record#form.id of [] -> nitro:temp_id(); I->I end,
case Record#form.postback of
[] -> skip;
Postback -> nitro:wire(#event { type=submit,
target=ID,
postback=Postback,
delegate=Record#form.delegate,
source=Record#form.source }) end,
List = [
%global
{<<"accesskey">>, Record#form.accesskey},
{<<"class">>, Record#form.class},
{<<"contenteditable">>, case Record#form.contenteditable of true -> "true"; false -> "false"; _ -> [] end},
{<<"contextmenu">>, Record#form.contextmenu},
{<<"dir">>, case Record#form.dir of "ltr" -> "ltr"; "rtl" -> "rtl"; "auto" -> "auto"; _ -> [] end},
{<<"draggable">>, case Record#form.draggable of true -> "true"; false -> "false"; _ -> [] end},
{<<"dropzone">>, Record#form.dropzone},
{<<"hidden">>, case Record#form.hidden of "hidden" -> "hidden"; _ -> [] end},
{<<"id">>, ID},
{<<"lang">>, Record#form.lang},
{<<"spellcheck">>, case Record#form.spellcheck of true -> "true"; false -> "false"; _ -> [] end},
{<<"style">>, Record#form.style},
{<<"tabindex">>, Record#form.tabindex},
{<<"title">>, Record#form.title},
{<<"translate">>, case Record#form.contenteditable of "yes" -> "yes"; "no" -> "no"; _ -> [] end},
% spec
{<<"accept-charset">>, Record#form.accept_charset},
{<<"action">>, Record#form.action},
{<<"autocomplete">>, case Record#form.autocomplete of true -> "on"; false -> "off"; _ -> [] end},
{<<"enctype">>, case Record#form.enctype of "application/x-www-form-urlencoded" -> "application/x-www-form-urlencoded"; "multipart/form-data" -> "multipart/form-data"; "text/plain" -> "text/plain"; _ -> [] end},
{<<"method">>, case Record#form.method of "post" -> "post"; _ -> "get" end},
{<<"name">>,Record#form.name},
{<<"novalidate">>, case Record#form.novalidate of true -> "novalidate"; _ -> [] end},
{<<"target">>, Record#form.target} | Record#form.data_fields
],
wf_tags:emit_tag(<<"form">>, nitro:render(Record#form.body), List).