element_button.erl 1.1 KB

1234567891011121314151617181920212223242526
  1. -module(element_button).
  2. -author('Andrew Zadorozhny').
  3. -include_lib("nitro/include/nitro.hrl").
  4. -include_lib("nitro/include/event.hrl").
  5. -compile(export_all).
  6. render_element(Record) when Record#button.show_if==false -> [<<>>];
  7. render_element(Record) ->
  8. Id = case Record#button.postback of
  9. [] -> Record#button.id;
  10. undefined -> Record#button.id;
  11. Postback ->
  12. ID = case Record#button.id of [] -> nitro:temp_id(); I -> I end,
  13. nitro:wire(#event{type=click, postback=Postback, target=ID,
  14. source=Record#button.source, delegate=Record#button.delegate }),
  15. ID end,
  16. wf_tags:emit_tag(<<"button">>, nitro:render(Record#button.body), [
  17. {<<"id">>, Id},
  18. {<<"type">>, Record#button.type},
  19. {<<"name">>, Record#button.name},
  20. {<<"class">>, Record#button.class},
  21. {<<"style">>, Record#button.style},
  22. {<<"onchange">>, Record#button.onchange},
  23. {<<"onclick">>, Record#button.onclick},
  24. {<<"disabled">>, if Record#button.disabled == true -> "disabled"; true -> [] end},
  25. {<<"value">>, Record#button.value} | Record#button.data_fields ]).