-module(testcities).
-include_lib("nitro/include/nitro.hrl").
-include_lib("n4u/include/wf.hrl").
%% example work with postgresql (without pool)
-export([
main/0,
event/1
]).
main() ->
Tr = hm:get_tr_mod(), % get i18n module by lang
Body = #dtl{file = "testcities", app = n2o_sample, bindings=[
{cities, Tr:tr(testcities, cities) },
{cities_show, Tr:tr(testcities, cities_show) },
{cities_add, Tr:tr(testcities, cities_add) },
{city_name, Tr:tr(testcities, city_name) },
{city_pop, Tr:tr(testcities, city_pop) },
{city_add, Tr:tr(testcities, city_add) }
]},
#dtl{file = "layout", app = n2o_sample, bindings=[
{page_title, Tr:tr(testcities, page_title) },
{page_css, <<"">>},
{page_body, wf:render(Body)},
{page_js, <<"">>}
]}.
event(init) ->
?MODULE:event({client, {sitiesshow}});
%[];
event({client, {sitiesshow}}) ->
Ppid = pgm:mypg(),
Data = pq:get_all_cities(Ppid),
epgsql:close(Ppid),
InnerHtml = hg:generate_cities_list(Data),
wf:wire(wf:f("var parent = qi('cities');"
"parent.innerHTML='~s';"
"window.getting_data=false;"
"qi('citiesshow').disabled=false;", [unicode:characters_to_binary(InnerHtml, utf8)]));
event({client, {cityadd, Name, Pop}}) ->
%io:format("~p~n~p~n",[Name, Pop]),
Mpid = pgm:mypg(),
1 = pq:add_city(Mpid, Name, Pop),
epgsql:close(Mpid),
wf:wire(wf:f("qi('cityname').value='';"
"qi('citypop').value='1';"
"window.sending_data=false;"
"qi('cityadd').disabled=false;", [])),
?MODULE:event({client, {sitiesshow}});
event(Event) ->
wf:info(?MODULE, "Event: ~p", [Event]),
ok.