Преглед изворни кода

Add `api.chatviews.get` method

JC Brand пре 7 година
родитељ
комит
2045741fbe
2 измењених фајлова са 46 додато и 0 уклоњено
  1. 25 0
      docs/source/developer_api.rst
  2. 21 0
      src/converse-chatview.js

+ 25 - 0
docs/source/developer_api.rst

@@ -864,6 +864,31 @@ To return an array of chatboxes, provide an array of JIDs:
 | url         | The URL of the chatbox heading.                    |
 | url         | The URL of the chatbox heading.                    |
 +-------------+-----------------------------------------------------+
 +-------------+-----------------------------------------------------+
 
 
+The **chatviews** grouping
+----------------------
+
+.. note:: This is only for private chats.
+
+get
+~~~
+
+Returns a `Backbone.View <http://backbonejs.org/#View>`_ of type _converse.ChatBoxView.
+
+The chat should already be open, otherwise `undefined` will be returned.
+
+To return a single view, provide the JID of the contact:
+
+.. code-block:: javascript
+
+    _converse.api.chatviews.get('buddy@example.com')
+
+To return an array of views, provide an array of JIDs:
+
+.. code-block:: javascript
+
+    _converse.api.chatviews.get(['buddy1@example.com', 'buddy2@example.com'])
+
+
 .. _`listen-grouping`:
 .. _`listen-grouping`:
 
 
 The **listen** grouping
 The **listen** grouping

+ 21 - 0
src/converse-chatview.js

@@ -1186,6 +1186,27 @@
                 // Advertise that we support XEP-0382 Message Spoilers
                 // Advertise that we support XEP-0382 Message Spoilers
                 _converse.connection.disco.addFeature(Strophe.NS.SPOILER);
                 _converse.connection.disco.addFeature(Strophe.NS.SPOILER);
             });
             });
+
+
+            /************************ BEGIN API ************************/
+            _.extend(_converse.api, {
+                'chatviews': {
+                    'get' (jids) {
+                        if (_.isUndefined(jids)) {
+                            _converse.log(
+                                "chats.create: You need to provide at least one JID",
+                                Strophe.LogLevel.ERROR
+                            );
+                            return null;
+                        }
+                        if (_.isString(jids)) {
+                            return _converse.chatboxviews.get(jids);
+                        }
+                        return _.map(jids, (jid) => _converse.chatboxviews.get(jids));
+                    }
+                }
+            });
+            /************************ END API ************************/
         }
         }
     });
     });