Skip to content

Commit 0d0b39c

Browse files
committed
Use improved WebAdmin menu system in more modules
1 parent 091e7e2 commit 0d0b39c

File tree

5 files changed

+56
-13
lines changed

5 files changed

+56
-13
lines changed

src/ejabberd_captcha.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -482,10 +482,10 @@ get_url(Str) ->
482482
end.
483483

484484
get_url() ->
485-
case ejabberd_http:get_auto_url(any, ?MODULE) of
486-
undefined ->
485+
case ejabberd_http:get_auto_urls(any, ?MODULE) of
486+
[] ->
487487
undefined;
488-
Url ->
488+
[{_ThisTls, Url} | _] ->
489489
Host = ejabberd_config:get_myname(),
490490
misc:expand_keyword(<<"@HOST@">>, Url, Host)
491491
end.

src/ejabberd_oauth.erl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
oauth_remove_client/1]).
5656

5757
-export([web_menu_main/2, web_page_main/2]).
58+
-export([web_menu_system/3]).
5859

5960
-include_lib("xmpp/include/xmpp.hrl").
6061
-include("logger.hrl").
@@ -234,6 +235,7 @@ init([]) ->
234235
ejabberd_commands:register_commands(get_commands_spec()),
235236
ejabberd_hooks:add(webadmin_menu_main, ?MODULE, web_menu_main, 50),
236237
ejabberd_hooks:add(webadmin_page_main, ?MODULE, web_page_main, 50),
238+
ejabberd_hooks:add(webadmin_menu_system_post, ?MODULE, web_menu_system, 889),
237239
ejabberd_hooks:add(config_reloaded, ?MODULE, config_reloaded, 50),
238240
erlang:send_after(expire(), self(), clean),
239241
{ok, ok}.
@@ -261,6 +263,7 @@ handle_info(Info, State) ->
261263
terminate(_Reason, _State) ->
262264
ejabberd_hooks:delete(webadmin_menu_main, ?MODULE, web_menu_main, 50),
263265
ejabberd_hooks:delete(webadmin_page_main, ?MODULE, web_page_main, 50),
266+
ejabberd_hooks:delete(webadmin_menu_system_post, ?MODULE, web_menu_system, 889),
264267
ejabberd_hooks:delete(config_reloaded, ?MODULE, config_reloaded, 50).
265268

266269
code_change(_OldVsn, State, _Extra) -> {ok, State}.
@@ -842,3 +845,7 @@ web_page_main(_, #request{path = [<<"oauth">>]} = R) ->
842845
{stop, Head ++ Set};
843846
web_page_main(Acc, _) ->
844847
Acc.
848+
849+
web_menu_system(Result, _Request, _Level) ->
850+
Els = ejabberd_web_admin:make_menu_system(?MODULE, "", "OAuth", "authorization_token"),
851+
Els ++ Result.

src/mod_conversejs.erl

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
start(_Host, _Opts) ->
4545
{ok, [{hook, http_request_handlers_init, http_handlers_init, 50, global},
46-
{hook, webadmin_menu_system_post, web_menu_system, 50, global}]}.
46+
{hook, webadmin_menu_system_post, web_menu_system, 1000-$c, global}]}.
4747

4848
stop(_Host) ->
4949
ok.
@@ -281,15 +281,22 @@ http_handlers_init(Handlers, _Opts) ->
281281
Handlers),
282282
lists:reverse(Handlers2).
283283

284-
web_menu_system(Result, _Request, Level) ->
284+
web_menu_system(Result, #request{tp = Protocol}, Level) ->
285+
Els = ejabberd_web_admin:make_menu_system(?MODULE, "☯️", "Converse", ""),
285286
Base = iolist_to_binary(lists:duplicate(Level, "../")),
286-
ConverseEl =
287-
?LI([?C(unicode:characters_to_binary("☯️")),
288-
?XAE(<<"a">>,
289-
[{<<"href">>, <<Base/binary, ?AUTOLOGIN_PATH/binary>>},
290-
{<<"target">>, <<"_blank">>}],
291-
[?C(unicode:characters_to_binary("Converse"))])]),
292-
[ConverseEl | Result].
287+
ThisTls =
288+
case Protocol of
289+
http ->
290+
false;
291+
https ->
292+
true
293+
end,
294+
ConverseEl2 =
295+
ejabberd_web_admin:make_menu_system_el("☯️",
296+
"Converse (autologin)",
297+
binary_to_list(?AUTOLOGIN_PATH),
298+
{ThisTls, Base}),
299+
lists:flatten([ConverseEl2, Els, Result]).
293300
%% @format-end
294301

295302
%%----------------------------------------------------------------------

src/mod_http_fileserver.erl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,12 @@
4545

4646
-export([reopen_log/0, mod_opt_type/1, mod_options/1, depends/2, mod_doc/0]).
4747

48+
-export([web_menu_system/3]).
49+
50+
-include_lib("xmpp/include/xmpp.hrl").
4851
-include("logger.hrl").
4952
-include("ejabberd_http.hrl").
53+
-include("ejabberd_web_admin.hrl").
5054
-include_lib("kernel/include/file.hrl").
5155
-include("translate.hrl").
5256

@@ -89,9 +93,11 @@
8993
%%====================================================================
9094

9195
start(Host, Opts) ->
96+
ejabberd_hooks:add(webadmin_menu_system_post, global, ?MODULE, web_menu_system, 896),
9297
gen_mod:start_child(?MODULE, Host, Opts).
9398

9499
stop(Host) ->
100+
ejabberd_hooks:delete(webadmin_menu_system_post, global, ?MODULE, web_menu_system, 896),
95101
gen_mod:stop_child(?MODULE, Host).
96102

97103
reload(Host, NewOpts, OldOpts) ->
@@ -473,6 +479,16 @@ ip_to_string(Address) when size(Address) == 8 ->
473479
Parts = lists:map(fun (Int) -> io_lib:format("~.16B", [Int]) end, tuple_to_list(Address)),
474480
string:to_lower(lists:flatten(join(Parts, ":"))).
475481

482+
%%----------------------------------------------------------------------
483+
%% WebAdmin
484+
%%----------------------------------------------------------------------
485+
486+
web_menu_system(Result, _Request, _Level) ->
487+
Els = ejabberd_web_admin:make_menu_system(?MODULE, "📁", "HTTP Fileserver", ""),
488+
Els ++ Result.
489+
490+
%%----------------------------------------------------------------------
491+
476492
mod_opt_type(accesslog) ->
477493
econf:file(write);
478494
mod_opt_type(content_types) ->

src/mod_register_web.erl

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
-export([start/2, stop/1, reload/3, process/2, mod_options/1, depends/2]).
3333
-export([mod_doc/0]).
34+
-export([web_menu_system/3]).
3435

3536
-include("logger.hrl").
3637

@@ -48,7 +49,7 @@
4849

4950
start(_Host, _Opts) ->
5051
%% case mod_register_web_opt:docroot(Opts, fun(A) -> A end, undefined) of
51-
ok.
52+
{ok, [{hook, webadmin_menu_system_post, web_menu_system, 1000-$r, global}]}.
5253

5354
stop(_Host) -> ok.
5455

@@ -606,6 +607,18 @@ get_error_text({error, wrong_parameters}) ->
606607
get_error_text({error, Why}) ->
607608
mod_register:format_error(Why).
608609

610+
%%----------------------------------------------------------------------
611+
%% WebAdmin
612+
%%----------------------------------------------------------------------
613+
614+
web_menu_system(Result, _Request, _Level) ->
615+
Els = ejabberd_web_admin:make_menu_system(?MODULE, "🪪", "Register Web", ""),
616+
Els ++ Result.
617+
618+
%%----------------------------------------------------------------------
619+
%%
620+
%%----------------------------------------------------------------------
621+
609622
mod_options(_) ->
610623
[].
611624

0 commit comments

Comments
 (0)