aboutsummaryrefslogtreecommitdiff
path: root/src/web/ejabberd_web_admin.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-01-12 12:02:50 +0000
committerBadlop <badlop@process-one.net>2010-01-12 12:02:50 +0000
commitee77257d41e8c4dc45ccf8c5bb4963e887786ef0 (patch)
tree254285d514c161ae9980e2a27f6a4bd0cb863891 /src/web/ejabberd_web_admin.erl
parentfix 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.erl18
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;