summaryrefslogtreecommitdiff
path: root/src/web/ejabberd_web_admin.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2005-07-29 20:34:57 +0000
committerAlexey Shchepin <alexey@process-one.net>2005-07-29 20:34:57 +0000
commit8f90927d8340f5c90f320a64fff06562227042be (patch)
tree0492b745e9100c7ce5b5b1e9560d8ba74aff94ee /src/web/ejabberd_web_admin.erl
parentRenamed route_packet hook to filter_packet (diff)
* src/web/ejabberd_web_admin.erl: Added "Virtual Hosts" page
SVN Revision: 382
Diffstat (limited to 'src/web/ejabberd_web_admin.erl')
-rw-r--r--src/web/ejabberd_web_admin.erl58
1 files changed, 46 insertions, 12 deletions
diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl
index cac24c77..86bccb2a 100644
--- a/src/web/ejabberd_web_admin.erl
+++ b/src/web/ejabberd_web_admin.erl
@@ -76,6 +76,7 @@ make_xhtml(Els, global, Lang) ->
[?XE("ul",
[?LI([?ACT("/admin/acls/", "Access Control Lists")]),
?LI([?ACT("/admin/access/", "Access Rules")]),
+ ?LI([?ACT("/admin/vhosts/", "Virtual Hosts")]),
?LI([?ACT("/admin/nodes/", "Nodes")]),
?LI([?ACT("/admin/stats/", "Statistics")])
]
@@ -528,6 +529,7 @@ process_admin(global,
?ACT("/admin/acls-raw/", "(raw)")]),
?LI([?ACT("/admin/access/", "Access Rules"), ?C(" "),
?ACT("/admin/access-raw/", "(raw)")]),
+ ?LI([?ACT("/admin/vhosts/", "Virtual Hosts")]),
?LI([?ACT("/admin/nodes/", "Nodes")]),
?LI([?ACT("/admin/stats/", "Statistics")])
]
@@ -821,11 +823,19 @@ process_admin(Host,
])
], Host, Lang);
+process_admin(global,
+ #request{us = US,
+ path = ["vhosts"],
+ q = Query,
+ lang = Lang} = Request) ->
+ Res = list_vhosts(Lang),
+ make_xhtml([?XCT("h1", "ejabberd virtual hosts")] ++ Res, global, Lang);
+
process_admin(Host,
#request{us = US,
- path = ["users"],
- q = Query,
- lang = Lang} = Request) when is_list(Host) ->
+ path = ["users"],
+ q = Query,
+ lang = Lang} = Request) when is_list(Host) ->
Res = list_users(Host, Query, Lang),
make_xhtml([?XCT("h1", "ejabberd users")] ++ Res, Host, Lang);
@@ -839,9 +849,9 @@ process_admin(Host,
process_admin(Host,
#request{us = US,
- path = ["online-users"],
- q = Query,
- lang = Lang} = Request) when is_list(Host) ->
+ path = ["online-users"],
+ q = Query,
+ lang = Lang} = Request) when is_list(Host) ->
Res = list_online_users(Host, Lang),
make_xhtml([?XCT("h1", "ejabberd users")] ++ Res, Host, Lang);
@@ -941,17 +951,17 @@ process_admin(Host,
process_admin(Host,
#request{us = US,
- path = ["shared-roster"],
- q = Query,
- lang = Lang} = Request) ->
+ path = ["shared-roster"],
+ q = Query,
+ lang = Lang} = Request) ->
Res = list_shared_roster_groups(Query, Lang),
make_xhtml(Res, Host, Lang);
process_admin(Host,
#request{us = US,
- path = ["shared-roster", Group],
- q = Query,
- lang = Lang} = Request) ->
+ path = ["shared-roster", Group],
+ q = Query,
+ lang = Lang} = Request) ->
Res = shared_roster_group(Group, Query, Lang),
make_xhtml(Res, Host, Lang);
@@ -1188,6 +1198,30 @@ parse_access_rule(Text) ->
end.
+list_vhosts(Lang) ->
+ Hosts = ?MYHOSTS,
+ SHosts = lists:sort(Hosts),
+ [?XE("table",
+ [?XE("thead",
+ [?XE("tr",
+ [?XCT("td", "Host"),
+ ?XCT("td", "Registered users"),
+ ?XCT("td", "Online users")
+ ])]),
+ ?XE("tbody",
+ lists:map(
+ fun(Host) ->
+ OnlineUsers =
+ length(ejabberd_sm:get_vh_session_list(Host)),
+ RegisteredUsers =
+ length(ejabberd_auth:get_vh_registered_users(Host)),
+ ?XE("tr",
+ [?XE("td", [?AC("../server/" ++ Host ++ "/", Host)]),
+ ?XC("td", integer_to_list(RegisteredUsers)),
+ ?XC("td", integer_to_list(OnlineUsers))
+ ])
+ end, SHosts)
+ )])].
list_users(Host, Query, Lang) ->