diff options
author | Badlop <badlop@process-one.net> | 2009-01-07 01:38:45 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2009-01-07 01:38:45 +0000 |
commit | 14bc7cf77fc75d9696fbc8735ae4f4c5f823df5d (patch) | |
tree | 6347f39131d5fc3b5d6a912e1aa98914f63e56ad | |
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-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/mod_roster.erl | 22 | ||||
-rw-r--r-- | src/mod_roster_odbc.erl | 22 |
3 files changed, 44 insertions, 4 deletions
@@ -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, _} -> |