Current section

Files

Jump to
nitro src elements combo element_comboLookupModify.erl
Raw

src/elements/combo/element_comboLookupModify.erl

-module(element_comboLookupModify).
-include_lib("nitro/include/comboLookupModify.hrl").
-include_lib("nitro/include/comboLookupModify_item.hrl").
-include_lib("nitro/include/nitro.hrl").
-include_lib("nitro/include/event.hrl").
-export([render_element/1]).
render_element(#comboLookupModify{id = Id, input = Input, disabled = Disabled, validation = Validation, values = Values,
modify_pos = Pos, modify_feed = Feed, modify_module = Module, modify_default = Default}) ->
ListId = form:atom([Id, "list"]),
InputId = element(#element.id, Input),
InputBody =
case Disabled of
true -> [];
_ ->
#panel{
body = [
Input,
#link{class = 'add-btn', onclick = nitro:jse("comboLookupModifyAdd('" ++ ListId ++ "', '" ++ InputId ++ "');")}
]
}
end,
ProtoItem = #comboLookupModify_item{list_id = ListId, pos = Pos, feed = Feed, delegate = Module, default = Default, disabled = Disabled},
ListBody =
case Values of
{view_value_pairs, X} -> [ProtoItem#comboLookupModify_item{value = Value, bind = Bind} || {Value, Bind} <- X];
_ -> [ProtoItem#comboLookupModify_item{value = X} || X <- Values]
end,
nitro:render(
#panel{
id = Id,
data_fields = [{<<"data-modify-input">>, <<"data-modify-input">>}],
validation = Validation,
body = [
InputBody,
#panel{
id = ListId,
data_fields = [
{<<"data-modify-list">>, <<"data-modify-list">>},
{<<"data-pos">>, base64:encode(term_to_binary(Pos))},
{<<"data-feed">>, base64:encode(term_to_binary(Feed))},
{<<"data-delegate">>, base64:encode(term_to_binary(Module))},
{<<"data-default">>, base64:encode(term_to_binary(Default))}
],
body = ListBody
}
]
}
).