element_radiogroup.erl 827 B

1234567891011121314151617181920212223
  1. -module(element_radiogroup).
  2. -author('Rusty Klophaus').
  3. -include_lib("nitro/include/nitro.hrl").
  4. -compile(export_all).
  5. render_element(Record) ->
  6. ID = Record#radiogroup.id,
  7. Body = apply_name(ID, Record#radiogroup.body),
  8. wf_render_elements:render_element(#panel {
  9. id=ID,
  10. class=[radiogroup, Record#radiogroup.class],
  11. style=Record#radiogroup.style,
  12. body=Body
  13. }).
  14. %% TODO: This whole thing needs to be replaced with a smarter recursive search.
  15. %% As it is, it won't dive into the bodies of subelements. A recursive map (ie: nitro:map_body) would be
  16. %% ideal
  17. apply_name(Name, Terms) -> [do_apply(Name, X) || X <- Terms].
  18. do_apply(Name, X) when is_record(X, radio) -> X#radio {name = Name};
  19. do_apply(Name, List) when is_list(List) -> apply_name(Name,List);
  20. do_apply(_Name, X) -> X.