-module(element_radiogroup). %%-author('Rusty Klophaus'). -include_lib("nitro/include/nitro.hrl"). -export([ render_element/1 ]). render_element(Record) when Record#radiogroup.show_if == false -> [<<>>]; render_element(Record) -> ID = Record#radiogroup.id, Body = apply_name(ID, Record#radiogroup.body), wf_render_elements:render_element( #panel{ id = ID, class = [radiogroup, Record#radiogroup.class], style = Record#radiogroup.style, body = Body }). %% TODO: This whole thing needs to be replaced with a smarter recursive search. %% As it is, it won't dive into the bodies of subelements. A recursive map (ie: nitro:map_body) would be %% ideal apply_name(Name, Terms) -> [ do_apply(Name, X) || X <- Terms ]. do_apply(Name, X) when erlang:is_record(X, radio) -> X#radio{name = Name}; do_apply(Name, List) when erlang:is_list(List) -> apply_name(Name, List); do_apply(_Name, X) -> X.