Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
converse.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
converse.js
Commits
dc4c832f
Commit
dc4c832f
authored
Aug 01, 2018
by
JC Brand
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add jsdoc docstrings to `chats` API.
Link to the jsdoc output from the Sphinx docs
parent
506aa331
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
97 additions
and
69 deletions
+97
-69
Makefile
Makefile
+1
-0
docs/source/conf.py
docs/source/conf.py
+8
-8
docs/source/developer_api.rst
docs/source/developer_api.rst
+22
-56
docs/source/development.rst
docs/source/development.rst
+5
-4
src/converse-chatboxes.js
src/converse-chatboxes.js
+61
-1
No files found.
Makefile
View file @
dc4c832f
...
...
@@ -227,6 +227,7 @@ check: eslint
html
:
rm
-rf
$(BUILDDIR)
/html
$(SPHINXBUILD)
-b
html
$(ALLSPHINXOPTS)
$(BUILDDIR)
/html
make apidoc
@
echo
@
echo
"Build finished. The HTML pages are in
$(BUILDDIR)
/html."
...
...
docs/source/conf.py
View file @
dc4c832f
# -*- coding: utf-8 -*-
#
# Converse
.js
documentation build configuration file, created by
# Converse documentation build configuration file, created by
# sphinx-quickstart on Fri Apr 26 20:48:03 2013.
#
# This file is execfile()d with the current directory set to its containing dir.
...
...
@@ -40,8 +40,8 @@ source_suffix = '.rst'
master_doc
=
'index'
# General information about the project.
project
=
u'Converse
.js
'
copyright
=
u'201
7
, JC Brand'
project
=
u'Converse'
copyright
=
u'201
8
, JC Brand'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
...
...
@@ -108,7 +108,7 @@ html_logo = "_static/conversejs_small.png"
# theme further.
html_theme_options
=
{
# Navigation bar title. (Default: ``project`` value)
'navbar_title'
:
"Converse
.js
"
,
'navbar_title'
:
"Converse"
,
# Tab name for entire site. (Default: "Site")
'navbar_site_name'
:
"Table of Contents"
,
# A list of tuples containing pages or urls to link to.
...
...
@@ -229,7 +229,7 @@ latex_elements = {
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents
=
[
(
'index'
,
'Conversejs.tex'
,
u'Converse
.js
Documentation'
,
(
'index'
,
'Conversejs.tex'
,
u'Converse Documentation'
,
u'JC Brand'
,
'manual'
),
]
...
...
@@ -259,7 +259,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages
=
[
(
'index'
,
'conversejs'
,
u'Converse
.js
Documentation'
,
(
'index'
,
'conversejs'
,
u'Converse Documentation'
,
[
u'JC Brand'
],
1
)
]
...
...
@@ -273,8 +273,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents
=
[
(
'index'
,
'Conversejs'
,
u'Converse
.js
Documentation'
,
u'JC Brand'
,
'Converse
js
'
,
'Open Source XMPP webchat'
,
(
'index'
,
'Conversejs'
,
u'Converse Documentation'
,
u'JC Brand'
,
'Converse'
,
'Open Source XMPP webchat'
,
'Miscellaneous'
),
]
...
...
docs/source/developer_api.rst
View file @
dc4c832f
...
...
@@ -2,12 +2,12 @@
<div id="banner"><a href="https://github.com/jcbrand/converse.js/blob/master/docs/source/theming.rst">Edit me on GitHub</a></div>
=========================
====
The
converse.js developer API
=========================
====
=========================
The
old API documentation
=========================
.. note:: The API documented here is available in Converse
.js
0.8.4 and higher.
Earlier versions of Converse
.js
might have different API methods or none at all.
.. note:: The API documented here is available in Converse 0.8.4 and higher.
Earlier versions of Converse might have different API methods or none at all.
.. note:: From version 3.0.0 and onwards many API methods have been made
private and available to plugins only. This means that if you want to
...
...
@@ -15,7 +15,7 @@ The converse.js developer API
access it. This change is done to avoid leakage of sensitive data to
malicious or non-whitelisted scripts.
The Converse
.js
API is broken up into different logical "groupings" (for
The Converse API is broken up into different logical "groupings" (for
example ``converse.plugins`` or ``converse.contacts``).
There are some exceptions to this, like ``converse.initialize``, which aren't
...
...
@@ -58,8 +58,8 @@ initialize
.. note:: This method is the one exception of a method which is not logically grouped as explained above.
Publich API method which initializes
converse.js
.
This method must always be called when using
converse.js
.
Publich API method which initializes
Converse
.
This method must always be called when using
Converse
.
The `initialize` method takes a map of :ref:`configuration-settings`.
...
...
@@ -105,7 +105,7 @@ Registers a new plugin.
// Inside this method, you have access to the closured
// _converse object, which contains the core logic and data
// structures of
converse.js
// structures of
Converse
}
}
converse.plugins.add('myplugin', plugin);
...
...
@@ -182,7 +182,7 @@ two important ways:
* A handler registered for a promise, will still fire *after* the promise has
been resolved, which is not the case with an event handler.
Converse
.js
has the following promises:
Converse has the following promises:
* :ref:`cachedRoster`
* :ref:`chatBoxesFetched`
...
...
@@ -210,7 +210,7 @@ already by that time.
The **archive** grouping
------------------------
Converse
.js
supports the *Message Archive Management*
Converse supports the *Message Archive Management*
(`XEP-0313 <https://xmpp.org/extensions/xep-0313.html>`_) protocol,
through which it is able to query an XMPP server for archived messages.
...
...
@@ -263,12 +263,12 @@ the returned messages.
**Waiting until server support has been determined**
The query method will only work if
converse.js
has been able to determine that
The query method will only work if
Converse
has been able to determine that
the server supports MAM queries, otherwise the following error will be raised:
- *This server does not support XEP-0313, Message Archive Management*
The very first time
converse.js
loads in a browser tab, if you call the query
The very first time
Converse
loads in a browser tab, if you call the query
API too quickly, the above error might appear because service discovery has not
yet been completed.
...
...
@@ -453,7 +453,7 @@ Paramters:
get
***
Returns all of the identities registered for this client (i.e. instance of Converse
.js
).
Returns all of the identities registered for this client (i.e. instance of Converse).
.. code-block:: javascript
...
...
@@ -473,17 +473,17 @@ Paramters:
* (String) name
* (String) lang
Lets you add new identities for this client (i.e. instance of Converse
.js
).
Lets you add new identities for this client (i.e. instance of Converse).
.. code-block:: javascript
_converse.api.disco.own.identities.add('client', 'web', 'Converse
.js
');
_converse.api.disco.own.identities.add('client', 'web', 'Converse');
get
***
Returns all of the identities registered for this client (i.e. instance of Converse
.js
).
Returns all of the identities registered for this client (i.e. instance of Converse).
.. code-block:: javascript
...
...
@@ -602,7 +602,7 @@ Logs the user in. This method can accept a map with the credentials, like this:
}
});
or it can be called without any parameters, in which case
converse.js
will try
or it can be called without any parameters, in which case
Converse
will try
to log the user in by calling the `prebind_url` or `credentials_url` depending
on whether prebinding is used or not.
...
...
@@ -877,40 +877,6 @@ To return an array of chats, provide an array of JIDs:
});
*The returned chat object contains the following methods:*
+-------------------+------------------------------------------+
| Method | Description |
+===================+==========================================+
| close | Close the chat. |
+-------------------+------------------------------------------+
| focus | Focuses the chat textarea |
+-------------------+------------------------------------------+
| model.endOTR | End an OTR (Off-the-record) session. |
+-------------------+------------------------------------------+
| model.get | Get an attribute (i.e. accessor). |
+-------------------+------------------------------------------+
| model.initiateOTR | Start an OTR (off-the-record) session. |
+-------------------+------------------------------------------+
| model.maximize | Minimize the chat. |
+-------------------+------------------------------------------+
| model.minimize | Maximize the chat. |
+-------------------+------------------------------------------+
| model.set | Set an attribute (i.e. mutator). |
+-------------------+------------------------------------------+
| show | Opens/shows the chat. |
+-------------------+------------------------------------------+
*The get and set methods can be used to retrieve and change the following attributes:*
+-------------+-----------------------------------------------------+
| Attribute | Description |
+=============+=====================================================+
| height | The height of the chat. |
+-------------+-----------------------------------------------------+
| url | The URL of the chat heading. |
+-------------+-----------------------------------------------------+
The **chatviews** grouping
--------------------------
...
...
@@ -941,7 +907,7 @@ To return an array of views, provide an array of JIDs:
The **listen** grouping
-----------------------
Converse
.js
emits events to which you can subscribe from your own JavaScript.
Converse emits events to which you can subscribe from your own JavaScript.
Concerning events, the following methods are available under the "listen"
grouping:
...
...
@@ -1139,7 +1105,7 @@ JIDs.
The **promises** grouping
-------------------------
Converse
.js
and its plugins emit various events which you can listen to via the
Converse and its plugins emit various events which you can listen to via the
:ref:`listen-grouping`.
Some of these events are also available as `ES2015 Promises <http://es6-features.org/#PromiseUsage>`_,
...
...
@@ -1198,7 +1164,7 @@ For example:
The **settings** grouping
-------------------------
This grouping allows access to the configuration settings of
converse.js
.
This grouping allows access to the configuration settings of
Converse
.
.. _`settings-update`:
...
...
@@ -1279,7 +1245,7 @@ or :
});
Note, this is not an alternative to calling ``converse.initialize``, which still needs
to be called. Generally, you'd use this method after
converse.js
is already
to be called. Generally, you'd use this method after
Converse
is already
running and you want to change the configuration on-the-fly.
The **tokens** grouping
...
...
docs/source/development.rst
View file @
dc4c832f
...
...
@@ -8,13 +8,13 @@
Development
===========
Welcome to the developer documentation of
converse.js
. Read the documentation
Welcome to the developer documentation of
Converse
. Read the documentation
linked to below, if you want to add new features or create your own customized
version of
converse.js
.
version of
Converse
.
Converse
.js
itself composed of plugins, and exposes an API with which you can
Converse itself composed of plugins, and exposes an API with which you can
create and register your own plugins. This is the recommended way to customize
or add new functionality to
converse.js
.
or add new functionality to
Converse
.
.. toctree::
:maxdepth: 2
...
...
@@ -22,6 +22,7 @@ or add new functionality to converse.js.
developer_guidelines
style_guide
plugin_development
api/index
developer_api
events
other_frameworks
...
...
src/converse-chatboxes.js
View file @
dc4c832f
...
...
@@ -873,6 +873,11 @@
/************************ BEGIN API ************************/
_
.
extend
(
_converse
.
api
,
{
/**
* The "chats" grouping (used for one-on-one chats)
*
* @namespace
*/
'
chats
'
:
{
'
create
'
(
jids
,
attrs
)
{
if
(
_
.
isUndefined
(
jids
))
{
...
...
@@ -882,7 +887,6 @@
);
return
null
;
}
if
(
_
.
isString
(
jids
))
{
if
(
attrs
&&
!
_
.
get
(
attrs
,
'
fullname
'
))
{
attrs
.
fullname
=
_
.
get
(
_converse
.
api
.
contacts
.
get
(
jids
),
'
attributes.fullname
'
);
...
...
@@ -899,6 +903,40 @@
return
_converse
.
chatboxes
.
getChatBox
(
jid
,
attrs
,
true
).
trigger
(
'
show
'
);
});
},
/**
* Opens a new one-on-one chat.
*
* @function
*
* @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com']
* @returns {Promise} Promise which resolves with the Backbone.Model representing the chat.
*
* @example
* // To open a single chat, provide the JID of the contact you're chatting with in that chat:
* converse.plugins.add('myplugin', {
* initialize: function() {
* var _converse = this._converse;
* // Note, buddy@example.org must be in your contacts roster!
* _converse.api.chats.open('buddy@example.com').then((chat) => {
* // Now you can do something with the chat model
* });
* }
* });
*
* @example
* // To open an array of chats, provide an array of JIDs:
* converse.plugins.add('myplugin', {
* initialize: function () {
* var _converse = this._converse;
* // Note, these users must first be in your contacts roster!
* _converse.api.chats.open(['buddy1@example.com', 'buddy2@example.com']).then((chats) => {
* // Now you can do something with the chat models
* });
* }
* });
*
*/
'
open
'
(
jids
,
attrs
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
Promise
.
all
([
...
...
@@ -917,6 +955,28 @@
}).
catch
(
_
.
partial
(
_converse
.
log
,
_
,
Strophe
.
LogLevel
.
FATAL
));
});
},
/**
* Returns a chat model. The chat should already be open.
*
* @function
*
* @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com']
* @returns {Backbone.Model}
*
* @example
* // To return a single chat, provide the JID of the contact you're chatting with in that chat:
* const model = _converse.api.chats.get('buddy@example.com');
*
* @example
* // To return an array of chats, provide an array of JIDs:
* const models = _converse.api.chats.get(['buddy1@example.com', 'buddy2@example.com']);
*
* @example
* // To return all open chats, call the method without any parameters::
* const models = _converse.api.chats.get();
*
*/
'
get
'
(
jids
)
{
if
(
_
.
isUndefined
(
jids
))
{
const
result
=
[];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment