diff options
author | Badlop <badlop@process-one.net> | 2010-01-12 12:02:50 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-01-12 12:02:50 +0000 |
commit | ee77257d41e8c4dc45ccf8c5bb4963e887786ef0 (patch) | |
tree | 254285d514c161ae9980e2a27f6a4bd0cb863891 /src/web/ejabberd_web_admin.erl | |
parent | fix headers (EJAB-1091), (EJAB-1092), (EJAB-1093) (thanks to Karim Gemayel) (diff) |
Support in user list page of WebAdmin when mod_offline is disabled (EJAB-377)
SVN Revision: 2877
Diffstat (limited to 'src/web/ejabberd_web_admin.erl')
-rw-r--r-- | src/web/ejabberd_web_admin.erl | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl index 06890f142..a9681e001 100644 --- a/src/web/ejabberd_web_admin.erl +++ b/src/web/ejabberd_web_admin.erl @@ -1546,6 +1546,7 @@ list_users_in_diapason(Host, Diap, Lang, URLFunc) -> list_given_users(Host, Users, Prefix, Lang, URLFunc) -> ModLast = get_lastactivity_module(Host), + ModOffline = get_offlinemsg_module(Host), ?XE("table", [?XE("thead", [?XE("tr", @@ -1556,10 +1557,10 @@ list_given_users(Host, Users, Prefix, Lang, URLFunc) -> lists:map( fun(_SU = {Server, User}) -> US = {User, Server}, - QueueLen = length(mnesia:dirty_read({offline_msg, US})), + QueueLenStr = get_offlinemsg_length(ModOffline, User, Server), FQueueLen = [?AC(URLFunc({users_queue, Prefix, User, Server}), - pretty_string_int(QueueLen))], + QueueLenStr)], FLast = case ejabberd_sm:get_user_resources(User, Server) of [] -> @@ -1591,6 +1592,19 @@ list_given_users(Host, Users, Prefix, Lang, URLFunc) -> end, Users) )]). +get_offlinemsg_length(ModOffline, User, Server) -> + case ModOffline of + none -> "disabled"; + _ -> pretty_string_int(ModOffline:get_queue_length(User, Server)) + end. + +get_offlinemsg_module(Server) -> + case [mod_offline, mod_offline_odbc] -- gen_mod:loaded_modules(Server) of + [mod_offline, mod_offline_odbc] -> none; + [mod_offline_odbc] -> mod_offline; + [mod_offline] -> mod_offline_odbc + end. + get_lastactivity_module(Server) -> case lists:member(mod_last, gen_mod:loaded_modules(Server)) of true -> mod_last; |