* src/web/ejabberd_web_admin.erl: Updated
* src/ejabberd_listener.erl: Added API for adding/removing listeners SVN Revision: 232
This commit is contained in:
parent
c812a59efc
commit
63feb5dabf
|
@ -1,3 +1,10 @@
|
||||||
|
2004-05-09 Alexey Shchepin <alexey@sevcom.net>
|
||||||
|
|
||||||
|
* src/web/ejabberd_web_admin.erl: Updated
|
||||||
|
|
||||||
|
* src/ejabberd_listener.erl: Added API for adding/removing
|
||||||
|
listeners
|
||||||
|
|
||||||
2004-05-08 Alexey Shchepin <alexey@sevcom.net>
|
2004-05-08 Alexey Shchepin <alexey@sevcom.net>
|
||||||
|
|
||||||
* doc/guide.tex: Updated
|
* doc/guide.tex: Updated
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
|
|
||||||
-export([start_link/0, init/1, start/3,
|
-export([start_link/0, init/1, start/3,
|
||||||
init/3,
|
init/3,
|
||||||
init_ssl/4
|
init_ssl/4,
|
||||||
|
start_listener/3,
|
||||||
|
stop_listener/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-include("ejabberd.hrl").
|
-include("ejabberd.hrl").
|
||||||
|
@ -131,3 +133,16 @@ accept_ssl(ListenSocket, Module, Opts) ->
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
start_listener(Port, Module, Opts) ->
|
||||||
|
ChildSpec = {Port,
|
||||||
|
{?MODULE, start, [Port, Module, Opts]},
|
||||||
|
permanent,
|
||||||
|
brutal_kill,
|
||||||
|
worker,
|
||||||
|
[?MODULE]},
|
||||||
|
supervisor:start_child(ejabberd_listeners, ChildSpec).
|
||||||
|
|
||||||
|
stop_listener(Port) ->
|
||||||
|
supervisor:terminate_child(ejabberd_listeners, Port),
|
||||||
|
supervisor:delete_child(ejabberd_listeners, Port).
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,8 @@ make_xhtml(Els, Lang) ->
|
||||||
?XE("body",
|
?XE("body",
|
||||||
[?XAE("table",
|
[?XAE("table",
|
||||||
[{"id", "main"}],
|
[{"id", "main"}],
|
||||||
[?XAE("tr",
|
[?XE("tbody",
|
||||||
|
[?XAE("tr",
|
||||||
[{"id", "top"}],
|
[{"id", "top"}],
|
||||||
[?XE("td",
|
[?XE("td",
|
||||||
[?XE("table",
|
[?XE("table",
|
||||||
|
@ -78,45 +79,37 @@ make_xhtml(Els, Lang) ->
|
||||||
{"border", "0"}])]
|
{"border", "0"}])]
|
||||||
)])])
|
)])])
|
||||||
])])]),
|
])])]),
|
||||||
?XAE("tr",
|
?XAE("tr",
|
||||||
[{"id", "middle"}],
|
[{"id", "middle"}],
|
||||||
[?XE("td",
|
[?XE("td",
|
||||||
[?XAE("table",
|
[?XAE("table",
|
||||||
[{"id", "middle-table"}],
|
[{"id", "middle-table"}],
|
||||||
[?XE("tbody",
|
[?XE("tbody",
|
||||||
[?XE("tr",
|
[?XE("tr",
|
||||||
[?XAE("td",
|
[?XAE("td",
|
||||||
[%{"height", "100%"},
|
[{"id", "middle-td1"}],
|
||||||
%{"width", "100%"},
|
[?XAE("ul",
|
||||||
{"id", "middle-td1"},
|
[{"id", "navlist"}],
|
||||||
{"bgcolor", "#ffffff"},
|
[?LI([?ACT("/admin/acls/", "Access Control Lists")]),
|
||||||
{"valign", "top"}],
|
?LI([?ACT("/admin/access/", "Access Rules")]),
|
||||||
[?XAE("ul",
|
?LI([?ACT("/admin/users/", "Users")]),
|
||||||
[{"id", "navlist"}],
|
?LI([?ACT("/admin/nodes/", "Nodes")]),
|
||||||
[?LI([?ACT("/admin/acls/", "Access Control Lists")]),
|
?LI([?ACT("/admin/stats/", "Statistics")])
|
||||||
?LI([?ACT("/admin/access/", "Access Rules")]),
|
])]),
|
||||||
?LI([?ACT("/admin/users/", "Users")]),
|
?XAE("td",
|
||||||
?LI([?ACT("/admin/nodes/", "Nodes")]),
|
[{"id", "middle-td2"}],
|
||||||
?LI([?ACT("/admin/stats/", "Statistics")])
|
[?XAE("div", [{"id", "content"}], Els)])])])
|
||||||
])]),
|
])])]),
|
||||||
?XAE("td",
|
?XAE("tr",
|
||||||
[%{"height", "100%"},
|
[{"id", "bottom"}],
|
||||||
{"width", "100%"},
|
[?XE("td",
|
||||||
{"id", "middle-td2"},
|
[?XE("table",
|
||||||
{"bgcolor", "#ffffff"},
|
[?XE("tbody",
|
||||||
{"valign", "top"}],
|
[?XE("tr",
|
||||||
[?XAE("div", [{"id", "content"}], Els)])])])
|
[?XCT("td",
|
||||||
])])]),
|
"ejabberd (c) 2002-2004 Alexey Shchepin")
|
||||||
?XAE("tr",
|
])])
|
||||||
[{"id", "bottom"}],
|
])])])])])])
|
||||||
[?XE("td",
|
|
||||||
[?XE("table",
|
|
||||||
[?XE("tbody",
|
|
||||||
[?XE("tr",
|
|
||||||
[?XCT("td",
|
|
||||||
"ejabberd (c) 2002-2004 Alexey Shchepin")
|
|
||||||
])])
|
|
||||||
])])])])])
|
|
||||||
]}}.
|
]}}.
|
||||||
|
|
||||||
css() -> "
|
css() -> "
|
||||||
|
@ -159,22 +152,10 @@ body {
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
#top > td > table > tbody > tr > td {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#top td {
|
#top td {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
#top > td > table > tbody > tr > td > img {
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#top img {
|
#top img {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
@ -192,8 +173,14 @@ body {
|
||||||
empty-cells: show;
|
empty-cells: show;
|
||||||
}
|
}
|
||||||
|
|
||||||
#middle-td1, #middle-td1 {
|
#middle-td1, #middle-td2 {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#middle-td2 {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#bottom table {
|
#bottom table {
|
||||||
|
@ -453,7 +440,8 @@ h3 {
|
||||||
|
|
||||||
#content li {
|
#content li {
|
||||||
list-style-type: dot;
|
list-style-type: dot;
|
||||||
font-size: 7pt;
|
font-size: 10pt;
|
||||||
|
/*font-size: 7pt;*/
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -774,6 +762,13 @@ process_admin(#request{user = User,
|
||||||
Res = user_info(U, Query, Lang),
|
Res = user_info(U, Query, Lang),
|
||||||
make_xhtml(Res, Lang);
|
make_xhtml(Res, Lang);
|
||||||
|
|
||||||
|
process_admin(#request{user = User,
|
||||||
|
path = ["nodes"],
|
||||||
|
q = Query,
|
||||||
|
lang = Lang} = Request) ->
|
||||||
|
Res = get_nodes(Lang),
|
||||||
|
make_xhtml(Res, Lang);
|
||||||
|
|
||||||
process_admin(#request{lang = Lang}) ->
|
process_admin(#request{lang = Lang}) ->
|
||||||
setelement(1, make_xhtml([?XC("h1", "Not found")], Lang), 404).
|
setelement(1, make_xhtml([?XC("h1", "Not found")], Lang), 404).
|
||||||
|
|
||||||
|
@ -1112,3 +1107,27 @@ user_parse_query(User, Query) ->
|
||||||
nothing
|
nothing
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
get_nodes(Lang) ->
|
||||||
|
RunningNodes = mnesia:system_info(running_db_nodes),
|
||||||
|
StoppedNodes = lists:usort(mnesia:system_info(db_nodes) ++
|
||||||
|
mnesia:system_info(extra_db_nodes)) --
|
||||||
|
RunningNodes,
|
||||||
|
FRN = lists:map(
|
||||||
|
fun(N) ->
|
||||||
|
S = atom_to_list(N),
|
||||||
|
?LI([?AC("../node/" ++ S ++ "/", S)])
|
||||||
|
end, lists:sort(RunningNodes)),
|
||||||
|
FSN = lists:map(
|
||||||
|
fun(N) ->
|
||||||
|
S = atom_to_list(N),
|
||||||
|
?LI([?C(S)])
|
||||||
|
end, lists:sort(StoppedNodes)),
|
||||||
|
[?XC("h1", "Nodes"),
|
||||||
|
?XC("h3", "Running Nodes"),
|
||||||
|
?XE("ul", FRN),
|
||||||
|
?XC("h3", "Stopped Nodes"),
|
||||||
|
?XE("ul", FSN)].
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue