]> granicus.if.org Git - ejabberd/commitdiff
* src/mod_roster.erl: Show hyperlinks to local contacts when
authorBadlop <badlop@process-one.net>
Wed, 7 Jan 2009 01:38:45 +0000 (01:38 +0000)
committerBadlop <badlop@process-one.net>
Wed, 7 Jan 2009 01:38:45 +0000 (01:38 +0000)
browsing roster of account in Web Admin (EJAB-480)
* src/mod_roster_odbc.erl: Likewise

SVN Revision: 1778

ChangeLog
src/mod_roster.erl
src/mod_roster_odbc.erl

index 0192aa7e0d6b8d6ed5aecd31866cc0f3c7b32610..59403788aeca5abf3e9591aa9f8e1e6d9d598807 100644 (file)
--- 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)
index 79cfb51993250f28be4afe939086d815c3189218..4521c7df3aee1d8b363a28a17d981ae14b4aa9a3 100644 (file)
@@ -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, _} ->
index 5b190671f44c68612891b84a29fc134674052f69..25c54b01cf2dc635bd4a0315cef36fd3cedbaf2a 100644 (file)
@@ -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, _} ->