testcities.erl 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. -module(testcities).
  2. -include_lib("nitro/include/nitro.hrl").
  3. -include_lib("n4u/include/wf.hrl").
  4. -export([
  5. main/0,
  6. event/1
  7. ]).
  8. main() ->
  9. Tr = hm:get_tr_mod(), % get i18n module by lang
  10. Body = #dtl{file = "testcities", app = n2o_sample, bindings=[
  11. {cities, Tr:tr(testcities, cities) },
  12. {cities_show, Tr:tr(testcities, cities_show) },
  13. {cities_add, Tr:tr(testcities, cities_add) },
  14. {city_name, Tr:tr(testcities, city_name) },
  15. {city_pop, Tr:tr(testcities, city_pop) },
  16. {city_add, Tr:tr(testcities, city_add) }
  17. ]},
  18. #dtl{file = "layout", app = n2o_sample, bindings=[
  19. {page_title, Tr:tr(testcities, page_title) },
  20. {page_css, <<"<link rel=\"stylesheet\" href=\"/css/test.css\">">>},
  21. {page_body, wf:render(Body)},
  22. {page_js, <<"<script src=\"/js/testcities.js\" defer></script>">>}
  23. ]}.
  24. event(init) ->
  25. ?MODULE:event({client, {sitiesshow}});
  26. %[];
  27. event({client, {sitiesshow}}) ->
  28. Ppid = pgm:mypg(),
  29. Data = pq:get_all_cities(Ppid),
  30. epgsql:close(Ppid),
  31. InnerHtml = hg:generate_cities_list(Data),
  32. wf:wire(wf:f("var parent = qi('cities');"
  33. "parent.innerHTML='~s';"
  34. "window.getting_data=false;"
  35. "qi('citiesshow').disabled=false;", [unicode:characters_to_binary(InnerHtml, utf8)]));
  36. event({client, {cityadd, Name, Pop}}) ->
  37. %io:format("~p~n~p~n",[Name, Pop]),
  38. Mpid = pgm:mypg(),
  39. 1 = pq:add_city(Mpid, Name, Pop),
  40. epgsql:close(Mpid),
  41. wf:wire(wf:f("qi('cityname').value='';"
  42. "qi('citypop').value='1';"
  43. "window.sending_data=false;"
  44. "qi('cityadd').disabled=false;", [])),
  45. ?MODULE:event({client, {sitiesshow}});
  46. event(Event) ->
  47. wf:info(?MODULE, "Event: ~p", [Event]),
  48. ok.