1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-06 03:50:15 +02:00

* src/mod_announce.erl: When editing MOTD, display current value (EJAB-475)

SVN Revision: 1100
This commit is contained in:
Badlop 2007-12-22 13:58:19 +00:00
parent 61295e9c1b
commit ccbc4b0c04
2 changed files with 27 additions and 6 deletions

View file

@ -2,7 +2,8 @@
* src/mod_announce.erl: Fixed unnoticeable bug related to Node * src/mod_announce.erl: Fixed unnoticeable bug related to Node
matching. Renamed some nonstandard node names according to matching. Renamed some nonstandard node names according to
XEP-0133. Small reordering of clauses. XEP-0133. Small reordering of clauses. When editing MOTD, display
current value (EJAB-475)
2007-12-22 Christophe Romain <christophe.romain@process-one.net> 2007-12-22 Christophe Romain <christophe.romain@process-one.net>

View file

@ -434,7 +434,7 @@ announce_commands(From, To,
#adhoc_response{status = canceled}); #adhoc_response{status = canceled});
XData == false, ActionIsExecute -> XData == false, ActionIsExecute ->
%% User requests form %% User requests form
Elements = generate_adhoc_form(Lang, Node), Elements = generate_adhoc_form(Lang, Node, To#jid.lserver),
adhoc:produce_response( adhoc:produce_response(
Request, Request,
#adhoc_response{status = executing, #adhoc_response{status = executing,
@ -453,14 +453,25 @@ announce_commands(From, To,
-define(VVALUE(Val), -define(VVALUE(Val),
{xmlelement, "value", [], [{xmlcdata, Val}]}). {xmlelement, "value", [], [{xmlcdata, Val}]}).
-define(VVALUEL(Val),
case Val of
"" -> [];
_ -> [?VVALUE(Val)]
end).
-define(TVFIELD(Type, Var, Val), -define(TVFIELD(Type, Var, Val),
{xmlelement, "field", [{"type", Type}, {xmlelement, "field", [{"type", Type},
{"var", Var}], {"var", Var}],
[?VVALUE(Val)]}). ?VVALUEL(Val)}).
-define(HFIELD(), ?TVFIELD("hidden", "FORM_TYPE", ?NS_ADMIN)). -define(HFIELD(), ?TVFIELD("hidden", "FORM_TYPE", ?NS_ADMIN)).
generate_adhoc_form(Lang, Node) -> generate_adhoc_form(Lang, Node, ServerHost) ->
LNode = tokenize(Node), LNode = tokenize(Node),
{OldSubject, OldBody} = if (LNode == ?NS_ADMINL("edit-motd"))
or (LNode == ?NS_ADMINL("edit-motd-allhosts")) ->
get_stored_motd(ServerHost);
true ->
{[], []}
end,
{xmlelement, "x", {xmlelement, "x",
[{"xmlns", ?NS_XDATA}, [{"xmlns", ?NS_XDATA},
{"type", "form"}], {"type", "form"}],
@ -481,12 +492,12 @@ generate_adhoc_form(Lang, Node) ->
[{"var", "subject"}, [{"var", "subject"},
{"type", "text-single"}, {"type", "text-single"},
{"label", translate:translate(Lang, "Subject")}], {"label", translate:translate(Lang, "Subject")}],
[]}, ?VVALUEL(OldSubject)},
{xmlelement, "field", {xmlelement, "field",
[{"var", "body"}, [{"var", "body"},
{"type", "text-multi"}, {"type", "text-multi"},
{"label", translate:translate(Lang, "Message body")}], {"label", translate:translate(Lang, "Message body")}],
[]}] ?VVALUEL(OldBody)}]
end}. end}.
join_lines([]) -> join_lines([]) ->
@ -807,6 +818,15 @@ send_motd(#jid{luser = LUser, lserver = LServer} = JID) ->
ok ok
end. end.
get_stored_motd(LServer) ->
case catch mnesia:dirty_read({motd, LServer}) of
[#motd{packet = Packet}] ->
{xml:get_subtag_cdata(Packet, "subject"),
xml:get_subtag_cdata(Packet, "body")};
_ ->
{"", ""}
end.
%%------------------------------------------------------------------------- %%-------------------------------------------------------------------------
update_tables() -> update_tables() ->