element_comboLookup.erl 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. -module(element_comboLookup).
  2. -include_lib("nitro/include/comboLookup.hrl").
  3. -include_lib("nitro/include/nitro.hrl").
  4. -export([render_element/1,proto/1]).
  5. proto(#comboKey{delegate=Module}=Msg) -> Module:proto(Msg);
  6. proto(#comboKeyup{delegate=Module}=Msg) -> Module:proto(Msg);
  7. proto(#comboSelect{delegate=Module}=Msg) -> Module:proto(Msg).
  8. render_element(#comboLookup{id=Id, style=Style, value = Val, bind = Object0,
  9. feed = Feed, disabled = Disabled, delegate = Module} = Data) ->
  10. Object = case Object0 of
  11. [] -> [];
  12. _ -> base64:encode(term_to_binary(Object0))
  13. end,
  14. nitro:render(
  15. #panel{id=form:atom([lookup, Id]), class=[dropdown],
  16. body=[#input{id=Id, disabled = Disabled, type="comboLookup",
  17. onkeyup = nitro:jse("comboLookupKeyup('"
  18. ++ nitro:to_list(Id) ++ "','"
  19. ++ nitro:to_list(Feed) ++ "','"
  20. ++ nitro:to_list(Module) ++ "')"),
  21. onkeydown= nitro:jse("comboLookupKeydown('"
  22. ++ nitro:to_list(Id) ++ "','"
  23. ++ nitro:to_list(Feed) ++ "','"
  24. ++ nitro:to_list(Module) ++ "')"),
  25. bind = Object,
  26. value = Val, style = Style, class = column},
  27. #panel{id=form:atom([comboContainer, Id]),
  28. class = ['dropdown-content']}]}).