aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2009-01-07 01:38:45 +0000
committerBadlop <badlop@process-one.net>2009-01-07 01:38:45 +0000
commit14bc7cf77fc75d9696fbc8735ae4f4c5f823df5d (patch)
tree6347f39131d5fc3b5d6a912e1aa98914f63e56ad
parent* src/web/ejabberd_web_admin.erl: WebAdmin serves Guide and links (diff)
* src/mod_roster.erl: Show hyperlinks to local contacts when
browsing roster of account in Web Admin (EJAB-480) * src/mod_roster_odbc.erl: Likewise SVN Revision: 1778
-rw-r--r--ChangeLog4
-rw-r--r--src/mod_roster.erl22
-rw-r--r--src/mod_roster_odbc.erl22
3 files changed, 44 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 0192aa7e0..59403788a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2009-01-07 Badlop <badlop@process-one.net>
+ * src/mod_roster.erl: Show hyperlinks to local contacts when
+ browsing roster of account in Web Admin (EJAB-480)
+ * src/mod_roster_odbc.erl: Likewise
+
* src/web/ejabberd_web_admin.erl: WebAdmin serves Guide and links
to related sections; the path to guide.html can be configured with
option doc_path (EJAB-837)
diff --git a/src/mod_roster.erl b/src/mod_roster.erl
index 79cfb5199..4521c7df3 100644
--- a/src/mod_roster.erl
+++ b/src/mod_roster.erl
@@ -815,9 +815,9 @@ user_roster(User, Server, Query, Lang) ->
[?C(Group), ?BR]
end, R#roster.groups),
Pending = ask_to_pending(R#roster.ask),
+ TDJID = build_contact_jid_td(R#roster.jid),
?XE("tr",
- [?XAC("td", [{"class", "valign"}],
- jlib:jid_to_string(R#roster.jid)),
+ [TDJID,
?XAC("td", [{"class", "valign"}],
R#roster.name),
?XAC("td", [{"class", "valign"}],
@@ -855,6 +855,24 @@ user_roster(User, Server, Query, Lang) ->
?INPUTT("submit", "addjid", "Add Jabber ID")
])].
+build_contact_jid_td(RosterJID) ->
+ %% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
+ ContactJID = jlib:make_jid(RosterJID),
+ JIDURI = case {ContactJID#jid.luser, ContactJID#jid.lserver} of
+ {"", _} -> "";
+ {CUser, CServer} ->
+ case lists:member(CServer, ?MYHOSTS) of
+ false -> "";
+ true -> "/admin/server/" ++ CServer ++ "/user/" ++ CUser ++ "/"
+ end
+ end,
+ case JIDURI of
+ [] ->
+ ?XAC("td", [{"class", "valign"}], jlib:jid_to_string(RosterJID));
+ URI when is_list(URI) ->
+ ?XAE("td", [{"class", "valign"}], [?AC(JIDURI, jlib:jid_to_string(RosterJID))])
+ end.
+
user_roster_parse_query(User, Server, Items, Query) ->
case lists:keysearch("addjid", 1, Query) of
{value, _} ->
diff --git a/src/mod_roster_odbc.erl b/src/mod_roster_odbc.erl
index 5b190671f..25c54b01c 100644
--- a/src/mod_roster_odbc.erl
+++ b/src/mod_roster_odbc.erl
@@ -915,9 +915,9 @@ user_roster(User, Server, Query, Lang) ->
[?C(Group), ?BR]
end, R#roster.groups),
Pending = ask_to_pending(R#roster.ask),
+ TDJID = build_contact_jid_td(R#roster.jid),
?XE("tr",
- [?XAC("td", [{"class", "valign"}],
- jlib:jid_to_string(R#roster.jid)),
+ [TDJID,
?XAC("td", [{"class", "valign"}],
R#roster.name),
?XAC("td", [{"class", "valign"}],
@@ -955,6 +955,24 @@ user_roster(User, Server, Query, Lang) ->
?INPUTT("submit", "addjid", "Add Jabber ID")
])].
+build_contact_jid_td(RosterJID) ->
+ %% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
+ ContactJID = jlib:make_jid(RosterJID),
+ JIDURI = case {ContactJID#jid.luser, ContactJID#jid.lserver} of
+ {"", _} -> "";
+ {CUser, CServer} ->
+ case lists:member(CServer, ?MYHOSTS) of
+ false -> "";
+ true -> "/admin/server/" ++ CServer ++ "/user/" ++ CUser ++ "/"
+ end
+ end,
+ case JIDURI of
+ [] ->
+ ?XAC("td", [{"class", "valign"}], jlib:jid_to_string(RosterJID));
+ URI when is_list(URI) ->
+ ?XAE("td", [{"class", "valign"}], [?AC(JIDURI, jlib:jid_to_string(RosterJID))])
+ end.
+
user_roster_parse_query(User, Server, Items, Query) ->
case lists:keysearch("addjid", 1, Query) of
{value, _} ->