element_dtl.erl 873 B

1234567891011121314151617181920
  1. -module(element_dtl).
  2. -author('Maxim Sokhatsky').
  3. -include("nitro.hrl").
  4. -compile(export_all).
  5. render_element(Record) when Record#dtl.show_if==false -> [<<>>];
  6. render_element(Record=#dtl{}) ->
  7. M = list_to_atom(nitro:to_list(Record#dtl.file) ++ "_view"),
  8. %File = case code:lib_dir(nitro:to_atom(Record#dtl.app)) of
  9. %{error,bad_name} -> nitro:to_list(Record#dtl.app);
  10. %A -> A end ++ "/" ++ nitro:to_list(Record#dtl.folder)
  11. %++ "/" ++ nitro:to_list(Record#dtl.file) ++ "." ++ nitro:to_list(Record#dtl.ext),
  12. {ok,R} = render(M, Record#dtl.js_escape, [{K,nitro:render(V)} || {K,V} <- Record#dtl.bindings] ++
  13. if Record#dtl.bind_script==true -> [{script,nitro:script()}]; true-> [] end),
  14. R.
  15. render(M, true, Args) ->
  16. {ok, R} = M:render(Args),
  17. {ok, nitro:js_escape(R)};
  18. render(M, _, Args) -> M:render(Args).