Current section

Files

Jump to
nitro src elements combo element_comboLookupEdit.erl
Raw

src/elements/combo/element_comboLookupEdit.erl

-module(element_comboLookupEdit).
-include_lib("nitro/include/comboLookupEdit.hrl").
-include_lib("nitro/include/comboLookup.hrl").
-include_lib("nitro/include/sortable_list.hrl").
-include_lib("nitro/include/nitro.hrl").
-include_lib("nitro/include/event.hrl").
-export([render_element/1]).
render_element(#comboLookupEdit{id=Id, input=Input, disabled=Disabled, validation=Validation, form=Form, values=Values, multiple=Multiple}) ->
ListId = form:atom([Id, "list"]),
InputId = element(#element.id, Input),
nitro:render(
#panel{
id = Id,
validation = Validation,
data_fields = [{<<"data-edit-input">>,<<"data-edit-input">>}],
body = [
#panel{
style = "display: flex; position: relative; width: 100%; justify-content: center;",
body =
[ Input,
case Multiple of
true ->
#link{
class = [add-btn],
onclick = nitro:jse("addSortableItemFrom('#" ++ ListId ++ "', '" ++ InputId ++ "')"),
body = <<"+">>};
false -> []
end,
case Disabled of
true -> [];
_ ->
#panel{
id = form:atom([InputId, "form"]),
class = ['dropdown-content', 'dropdown-content-form'],
body = #panel{class = ['dropdown-item'], body = Form}
} end ]},
case Multiple of
true -> #sortable_list{id = ListId, values = Values, closeable = true, disabled = Disabled};
false -> []
end ]}).