From 9ee23d36490d71535efc1e3363639fde86303c05 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 17 May 2024 16:16:21 +0200 Subject: [PATCH] WebAdmin: Improve home page - Update ejabberd WebAdmin logo - Add hyperlink in disclaimer text - Add welcome paragraph --- priv/img/admin-logo.png | Bin 26648 -> 9908 bytes src/ejabberd_web_admin.erl | 54 ++++++++++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/priv/img/admin-logo.png b/priv/img/admin-logo.png index 0088eddc8a5b6f53e0570dbb454a6e1d66738866..041b37c69bb0e500b6e35cd9773a280690afbd9b 100644 GIT binary patch literal 9908 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 diff --git a/src/ejabberd_web_admin.erl b/src/ejabberd_web_admin.erl index ac0d9f3c9..4203e5d6a 100644 --- a/src/ejabberd_web_admin.erl +++ b/src/ejabberd_web_admin.erl @@ -397,16 +397,44 @@ logo_fill() -> %%%================================== %%%% process_admin -process_admin(global, #request{path = [], lang = Lang}, AJID) -> +process_admin(global, #request{path = [], lang = Lang} = Request, AJID) -> + Title = ?H1GLraw(<<"">>, <<"">>, <<"home">>), MenuItems = get_menu_items(global, cluster, Lang, AJID, 0), Disclaimer = maybe_disclaimer_not_admin(MenuItems, AJID, Lang), - make_xhtml((?H1GL((translate:translate(Lang, ?T("Administration"))), <<"">>, - <<"Configuration">>)) - ++ Disclaimer ++ - [?XE(<<"ul">>, - [?LI([?ACT(MIU, MIN)]) - || {MIU, MIN} - <- MenuItems])], + WelcomeText = + [?BR, + ?XAE(<<"p">>, [{<<"align">>, <<"center">>}], + [?XA(<<"img">>, [{<<"src">>, <<"logo.png">>}, + {<<"style">>, <<"border-radius:10px; background:#49cbc1; padding: 1.1em;">>}]) + ]), + ?BR, + ?X(<<"hr">>)] ++ Title ++ + [?XE(<<"blockquote">>, + [ + ?XC(<<"p">>, <<"Welcome to ejabberd's WebAdmin!">>), + ?XC(<<"p">>, <<"Browse the menu to navigate your XMPP virtual hosts, " + "Erlang nodes, and other global server pages...">>), + ?XC(<<"p">>, <<"Some pages have a link in the top right corner " + "to relevant documentation in ejabberd Docs.">>), + ?X(<<"hr">>), + ?XE(<<"p">>, + [?C(<<"Many pages use ejabberd's API commands to show information " + "and to allow you perform administrative tasks. " + "Click on a command name to view its details. " + "You can also execute those same API commands " + "using other interfaces, see: ">>), + ?AC(<<"https://docs.ejabberd.im/developer/ejabberd-api/">>, + <<"ejabberd Docs: API">>) + ]), + ?XC(<<"p">>, <<"For example, this is the 'stats' command, " + "it accepts an argument and returns an integer:">>), + make_command(stats, Request)]), + ?X(<<"hr">>), ?BR], + make_xhtml(Disclaimer ++ WelcomeText ++ + [?XE(<<"ul">>, + [?LI([?ACT(MIU, MIN)]) + || {MIU, MIN} + <- MenuItems])], global, Lang, AJID, 0); process_admin(Host, #request{path = [], lang = Lang}, AJID) -> make_xhtml([?XCT(<<"h1">>, ?T("Administration")), @@ -621,12 +649,14 @@ list_vhosts2(Lang, Hosts) -> end, SHosts)))])]. -maybe_disclaimer_not_admin(MenuItems, AJID, Lang) -> +maybe_disclaimer_not_admin(MenuItems, AJID, _Lang) -> case {MenuItems, list_vhosts_allowed(AJID)} of {[_], []} -> - [?XREST(?T("Apparently your account has no administration rights in this server. " - "Please check how to grant admin rights in: " - "https://docs.ejabberd.im/admin/install/next-steps/#administration-account")) + [?BR, + ?DIVRES([?C(<<"Apparently your account has no administration rights in " + "this server. Please check how to grant admin rights: ">>), + ?AC(<<"https://docs.ejabberd.im/admin/install/next-steps/#administration-account">>, + <<"ejabberd Docs: Administration Account">>)]) ]; _ -> []