Call in WebAdmin the proper mod_last backend module (EJAB-1031)

SVN Revision: 2798
This commit is contained in:
Badlop 2009-12-09 17:46:51 +00:00
parent 3250c24ff1
commit 8ac16a0ec1
2 changed files with 15 additions and 8 deletions

View File

@ -175,7 +175,7 @@ store_last_info(User, Server, TimeStamp, Status) ->
mnesia:transaction(F). mnesia:transaction(F).
%% @spec (LUser::string(), LServer::string()) -> %% @spec (LUser::string(), LServer::string()) ->
%% {ok, Timestamp::integer(), Status::string()} | not_found %% {ok, TimeStamp::integer(), Status::string()} | not_found
get_last_info(LUser, LServer) -> get_last_info(LUser, LServer) ->
case catch mnesia:dirty_read(last_activity, {LUser, LServer}) of case catch mnesia:dirty_read(last_activity, {LUser, LServer}) of
{'EXIT', _Reason} -> {'EXIT', _Reason} ->

View File

@ -1467,7 +1467,7 @@ list_users(Host, Query, Lang, URLFunc) ->
FUsers = FUsers =
case length(SUsers) of case length(SUsers) of
N when N =< 100 -> N when N =< 100 ->
[list_given_users(SUsers, "../", Lang, URLFunc)]; [list_given_users(Host, SUsers, "../", Lang, URLFunc)];
N -> N ->
NParts = trunc(math:sqrt(N * 0.618)) + 1, NParts = trunc(math:sqrt(N * 0.618)) + 1,
M = trunc(N / NParts) + 1, M = trunc(N / NParts) + 1,
@ -1542,9 +1542,10 @@ list_users_in_diapason(Host, Diap, Lang, URLFunc) ->
N1 = list_to_integer(S1), N1 = list_to_integer(S1),
N2 = list_to_integer(S2), N2 = list_to_integer(S2),
Sub = lists:sublist(SUsers, N1, N2 - N1 + 1), Sub = lists:sublist(SUsers, N1, N2 - N1 + 1),
[list_given_users(Sub, "../../", Lang, URLFunc)]. [list_given_users(Host, Sub, "../../", Lang, URLFunc)].
list_given_users(Users, Prefix, Lang, URLFunc) -> list_given_users(Host, Users, Prefix, Lang, URLFunc) ->
ModLast = get_lastactivity_module(Host),
?XE("table", ?XE("table",
[?XE("thead", [?XE("thead",
[?XE("tr", [?XE("tr",
@ -1562,11 +1563,10 @@ list_given_users(Users, Prefix, Lang, URLFunc) ->
FLast = FLast =
case ejabberd_sm:get_user_resources(User, Server) of case ejabberd_sm:get_user_resources(User, Server) of
[] -> [] ->
case mnesia:dirty_read({last_activity, US}) of case ModLast:get_last_info(User, Server) of
[] -> not_found ->
?T("Never"); ?T("Never");
[E] -> {ok, Shift, _Status} ->
Shift = element(3, E),
TimeStamp = {Shift div 1000000, TimeStamp = {Shift div 1000000,
Shift rem 1000000, Shift rem 1000000,
0}, 0},
@ -1591,6 +1591,13 @@ list_given_users(Users, Prefix, Lang, URLFunc) ->
end, Users) end, Users)
)]). )]).
get_lastactivity_module(Server) ->
case lists:member(mod_last, gen_mod:loaded_modules(Server)) of
true -> mod_last;
_ -> mod_last_odbc
end.
us_to_list({User, Server}) -> us_to_list({User, Server}) ->
jlib:jid_to_string({User, Server, ""}). jlib:jid_to_string({User, Server, ""}).