Commit d95610cb authored by JC Brand's avatar JC Brand

Add documentation for events emitted. Updates #48

parent e729471b
...@@ -537,6 +537,123 @@ It shows in which order the libraries must be loaded via ``<script>`` tags. Add ...@@ -537,6 +537,123 @@ It shows in which order the libraries must be loaded via ``<script>`` tags. Add
your own libraries, making sure that they are loaded in the correct order (e.g. your own libraries, making sure that they are loaded in the correct order (e.g.
jQuery plugins must load after jQuery). jQuery plugins must load after jQuery).
======
Events
======
Converse.js emits events to which you can subscribe from your own Javascript.
Concerning events, the following methods are available:
Event Methods
=============
* **on(eventName, callback)**:
Calling the ``on`` method allows you to subscribe to an event.
Every time the event fires, the callback method specified by ``callback`` will be
called.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` is the callback method to be called when the event is emitted.
For example::
converse.on('onMessage', function (message) { ... });
* **once(eventName, callback)**:
Calling the ``once`` method allows you to listen to an event
exactly once.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` is the callback method to be called when the event is emitted.
For example::
converse.once('onMessage', function (message) { ... });
* **off(eventName, callback)**
To stop listening to an event, you can use the ``off`` method.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` refers to the function that is to be no longer executed.
Event Types
===========
Here are the different events that are emitted:
* **onMessage**
``converse.on('onMessage', function (message) { ... });``
Triggered when a message is received.
* **onMessageSend**
``converse.on('onMessageSend', function (message) { ... });``
Triggered when a message will be sent out.
* **onRoster**
``converse.on('onRoster', function (items) { ... });``
Triggered when the roster is updated.
* **onChatBoxFocused**
``converse.on('onChatBoxFocused', function (chatbox) { ... });``
Triggered when the focus has been moved to a chat box.
* **onChatBoxOpened**
``converse.on('onChatBoxOpened', function (chatbox) { ... });``
Triggered when a chat box has been opened.
* **onChatBoxClosed**
``converse.on('onChatBoxClosed', function (chatbox) { ... });``
Triggered when a chat box has been closed.
* **onStatusChanged**
``converse.on('onStatusChanged', function (status) { ... });``
Triggered when own chat status has changed.
* **onStatusMessageChanged**
``converse.on('onStatusMessageChanged', function (message) { ... });``
Triggered when own custom status message has changed.
* **onBuddyStatusChanged**
``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });``
Triggered when a chat buddy's chat status has changed.
* **onBuddyStatusMessageChanged**
``converse.on('onBuddyStatusMessageChanged', function (buddy, message) { ... });``
Triggered when a chat buddy's custom status message has changed.
============= =============
Configuration Configuration
============= =============
......
...@@ -102,34 +102,39 @@ ...@@ -102,34 +102,39 @@
</li> </li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#configuration" id="id26">Configuration</a><ul> <li><a class="reference internal" href="#events" id="id26">Events</a><ul>
<li><a class="reference internal" href="#configuration-variables" id="id27">Configuration variables</a><ul> <li><a class="reference internal" href="#event-methods" id="id27">Event Methods</a></li>
<li><a class="reference internal" href="#allow-contact-requests" id="id28">allow_contact_requests</a></li> <li><a class="reference internal" href="#event-types" id="id28">Event Types</a></li>
<li><a class="reference internal" href="#allow-muc" id="id29">allow_muc</a></li>
<li><a class="reference internal" href="#animate" id="id30">animate</a></li>
<li><a class="reference internal" href="#auto-list-rooms" id="id31">auto_list_rooms</a></li>
<li><a class="reference internal" href="#auto-subscribe" id="id32">auto_subscribe</a></li>
<li><a class="reference internal" href="#bosh-service-url" id="id33">bosh_service_url</a></li>
<li><a class="reference internal" href="#debug" id="id34">debug</a></li>
<li><a class="reference internal" href="#fullname" id="id35">fullname</a></li>
<li><a class="reference internal" href="#hide-muc-server" id="id36">hide_muc_server</a></li>
<li><a class="reference internal" href="#i18n" id="id37">i18n</a></li>
<li><a class="reference internal" href="#prebind" id="id38">prebind</a></li>
<li><a class="reference internal" href="#show-controlbox-by-default" id="id39">show_controlbox_by_default</a></li>
<li><a class="reference internal" href="#show-only-online-users" id="id40">show_only_online_users</a></li>
<li><a class="reference internal" href="#xhr-custom-status" id="id41">xhr_custom_status</a></li>
<li><a class="reference internal" href="#xhr-custom-status-url" id="id42">xhr_custom_status_url</a></li>
<li><a class="reference internal" href="#xhr-user-search" id="id43">xhr_user_search</a></li>
<li><a class="reference internal" href="#xhr-user-search-url" id="id44">xhr_user_search_url</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#configuration" id="id29">Configuration</a><ul>
<li><a class="reference internal" href="#configuration-variables" id="id30">Configuration variables</a><ul>
<li><a class="reference internal" href="#allow-contact-requests" id="id31">allow_contact_requests</a></li>
<li><a class="reference internal" href="#allow-muc" id="id32">allow_muc</a></li>
<li><a class="reference internal" href="#animate" id="id33">animate</a></li>
<li><a class="reference internal" href="#auto-list-rooms" id="id34">auto_list_rooms</a></li>
<li><a class="reference internal" href="#auto-subscribe" id="id35">auto_subscribe</a></li>
<li><a class="reference internal" href="#bosh-service-url" id="id36">bosh_service_url</a></li>
<li><a class="reference internal" href="#debug" id="id37">debug</a></li>
<li><a class="reference internal" href="#fullname" id="id38">fullname</a></li>
<li><a class="reference internal" href="#hide-muc-server" id="id39">hide_muc_server</a></li>
<li><a class="reference internal" href="#i18n" id="id40">i18n</a></li>
<li><a class="reference internal" href="#prebind" id="id41">prebind</a></li>
<li><a class="reference internal" href="#show-controlbox-by-default" id="id42">show_controlbox_by_default</a></li>
<li><a class="reference internal" href="#show-only-online-users" id="id43">show_only_online_users</a></li>
<li><a class="reference internal" href="#xhr-custom-status" id="id44">xhr_custom_status</a></li>
<li><a class="reference internal" href="#xhr-custom-status-url" id="id45">xhr_custom_status_url</a></li>
<li><a class="reference internal" href="#xhr-user-search" id="id46">xhr_user_search</a></li>
<li><a class="reference internal" href="#xhr-user-search-url" id="id47">xhr_user_search_url</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#minification" id="id45">Minification</a><ul>
<li><a class="reference internal" href="#minifying-javascript-and-css" id="id46">Minifying Javascript and CSS</a></li>
</ul> </ul>
</li> </li>
<li><a class="reference internal" href="#translations" id="id47">Translations</a></li> <li><a class="reference internal" href="#minification" id="id48">Minification</a><ul>
<li><a class="reference internal" href="#minifying-javascript-and-css" id="id49">Minifying Javascript and CSS</a></li>
</ul>
</li>
<li><a class="reference internal" href="#translations" id="id50">Translations</a></li>
</ul> </ul>
</div> </div>
<div class="section" id="quickstart-to-get-a-demo-up-and-running"> <div class="section" id="quickstart-to-get-a-demo-up-and-running">
...@@ -174,7 +179,7 @@ practical.</p> ...@@ -174,7 +179,7 @@ practical.</p>
<p>You&#8217;ll most likely want to implement some kind of single-signon solution for <p>You&#8217;ll most likely want to implement some kind of single-signon solution for
your website, where users authenticate once in your website and then stay your website, where users authenticate once in your website and then stay
logged into their XMPP session upon page reload.</p> logged into their XMPP session upon page reload.</p>
<p>For more info on this, read: <a href="#id48"><span class="problematic" id="id49">`Pre-binding and Single Session Support`_</span></a>.</p> <p>For more info on this, read: <a href="#id51"><span class="problematic" id="id52">`Pre-binding and Single Session Support`_</span></a>.</p>
<p>You might also want to have more fine-grained control of what gets included in <p>You might also want to have more fine-grained control of what gets included in
the minified Javascript file. Read <a class="reference internal" href="#configuration">Configuration</a> and <a class="reference internal" href="#minification">Minification</a> for more info on how to do the minified Javascript file. Read <a class="reference internal" href="#configuration">Configuration</a> and <a class="reference internal" href="#minification">Minification</a> for more info on how to do
that.</p> that.</p>
...@@ -526,8 +531,123 @@ jQuery plugins must load after jQuery).</p> ...@@ -526,8 +531,123 @@ jQuery plugins must load after jQuery).</p>
</div> </div>
</div> </div>
</div> </div>
<div class="section" id="events">
<h1><a class="toc-backref" href="#id26">Events</a><a class="headerlink" href="#events" title="Permalink to this headline"></a></h1>
<p>Converse.js emits events to which you can subscribe from your own Javascript.</p>
<p>Concerning events, the following methods are available:</p>
<div class="section" id="event-methods">
<h2><a class="toc-backref" href="#id27">Event Methods</a><a class="headerlink" href="#event-methods" title="Permalink to this headline"></a></h2>
<ul>
<li><p class="first"><strong>on(eventName, callback)</strong>:</p>
<blockquote>
<div><p>Calling the <tt class="docutils literal"><span class="pre">on</span></tt> method allows you to subscribe to an event.
Every time the event fires, the callback method specified by <tt class="docutils literal"><span class="pre">callback</span></tt> will be
called.</p>
<p>Parameters:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">eventName</span></tt> is the event name as a string.</li>
<li><tt class="docutils literal"><span class="pre">callback</span></tt> is the callback method to be called when the event is emitted.</li>
</ul>
<p>For example:</p>
<div class="highlight-python"><pre>converse.on('onMessage', function (message) { ... });</pre>
</div>
</div></blockquote>
</li>
<li><p class="first"><strong>once(eventName, callback)</strong>:</p>
<blockquote>
<div><p>Calling the <tt class="docutils literal"><span class="pre">once</span></tt> method allows you to listen to an event
exactly once.</p>
<p>Parameters:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">eventName</span></tt> is the event name as a string.</li>
<li><tt class="docutils literal"><span class="pre">callback</span></tt> is the callback method to be called when the event is emitted.</li>
</ul>
<p>For example:</p>
<div class="highlight-python"><pre>converse.once('onMessage', function (message) { ... });</pre>
</div>
</div></blockquote>
</li>
<li><p class="first"><strong>off(eventName, callback)</strong></p>
<blockquote>
<div><p>To stop listening to an event, you can use the <tt class="docutils literal"><span class="pre">off</span></tt> method.</p>
<p>Parameters:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">eventName</span></tt> is the event name as a string.</li>
<li><tt class="docutils literal"><span class="pre">callback</span></tt> refers to the function that is to be no longer executed.</li>
</ul>
</div></blockquote>
</li>
</ul>
</div>
<div class="section" id="event-types">
<h2><a class="toc-backref" href="#id28">Event Types</a><a class="headerlink" href="#event-types" title="Permalink to this headline"></a></h2>
<p>Here are the different events that are emitted:</p>
<ul>
<li><p class="first"><strong>onMessage</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onMessage',</span> <span class="pre">function</span> <span class="pre">(message)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a message is received.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onMessageSend</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onMessageSend',</span> <span class="pre">function</span> <span class="pre">(message)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a message will be sent out.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onRoster</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onRoster',</span> <span class="pre">function</span> <span class="pre">(items)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when the roster is updated.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onChatBoxFocused</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onChatBoxFocused',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when the focus has been moved to a chat box.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onChatBoxOpened</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onChatBoxOpened',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a chat box has been opened.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onChatBoxClosed</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onChatBoxClosed',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a chat box has been closed.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onStatusChanged</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onStatusChanged',</span> <span class="pre">function</span> <span class="pre">(status)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when own chat status has changed.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onStatusMessageChanged</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onStatusMessageChanged',</span> <span class="pre">function</span> <span class="pre">(message)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when own custom status message has changed.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onBuddyStatusChanged</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onBuddyStatusChanged',</span> <span class="pre">function</span> <span class="pre">(buddy,</span> <span class="pre">status)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a chat buddy&#8217;s chat status has changed.</p>
</div></blockquote>
</li>
<li><p class="first"><strong>onBuddyStatusMessageChanged</strong></p>
<blockquote>
<div><p><tt class="docutils literal"><span class="pre">converse.on('onBuddyStatusMessageChanged',</span> <span class="pre">function</span> <span class="pre">(buddy,</span> <span class="pre">message)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></p>
<p>Triggered when a chat buddy&#8217;s custom status message has changed.</p>
</div></blockquote>
</li>
</ul>
</div>
</div>
<div class="section" id="configuration"> <div class="section" id="configuration">
<h1><a class="toc-backref" href="#id26">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h1> <h1><a class="toc-backref" href="#id29">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h1>
<p>The included minified JS and CSS files can be used for demoing or testing, but <p>The included minified JS and CSS files can be used for demoing or testing, but
you&#8217;ll want to configure <em>Converse.js</em> to suit your needs before you deploy it you&#8217;ll want to configure <em>Converse.js</em> to suit your needs before you deploy it
on your website.</p> on your website.</p>
...@@ -541,9 +661,9 @@ all the available configuration settings.</p> ...@@ -541,9 +661,9 @@ all the available configuration settings.</p>
JS file so that it will include the new settings. Please refer to the JS file so that it will include the new settings. Please refer to the
<a class="reference internal" href="#minification">Minification</a> section for more info on how to do this.</p> <a class="reference internal" href="#minification">Minification</a> section for more info on how to do this.</p>
<div class="section" id="configuration-variables"> <div class="section" id="configuration-variables">
<h2><a class="toc-backref" href="#id27">Configuration variables</a><a class="headerlink" href="#configuration-variables" title="Permalink to this headline"></a></h2> <h2><a class="toc-backref" href="#id30">Configuration variables</a><a class="headerlink" href="#configuration-variables" title="Permalink to this headline"></a></h2>
<div class="section" id="allow-contact-requests"> <div class="section" id="allow-contact-requests">
<h3><a class="toc-backref" href="#id28">allow_contact_requests</a><a class="headerlink" href="#allow-contact-requests" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id31">allow_contact_requests</a><a class="headerlink" href="#allow-contact-requests" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p>
<p>Allow users to add one another as contacts. If this is set to false, the <p>Allow users to add one another as contacts. If this is set to false, the
<strong>Add a contact</strong> widget, <strong>Contact Requests</strong> and <strong>Pending Contacts</strong> roster <strong>Add a contact</strong> widget, <strong>Contact Requests</strong> and <strong>Pending Contacts</strong> roster
...@@ -551,18 +671,18 @@ sections will all not appear. Additionally, all incoming contact requests will b ...@@ -551,18 +671,18 @@ sections will all not appear. Additionally, all incoming contact requests will b
ignored.</p> ignored.</p>
</div> </div>
<div class="section" id="allow-muc"> <div class="section" id="allow-muc">
<h3><a class="toc-backref" href="#id29">allow_muc</a><a class="headerlink" href="#allow-muc" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id32">allow_muc</a><a class="headerlink" href="#allow-muc" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p>
<p>Allow multi-user chat (muc) in chatrooms. Setting this to <tt class="docutils literal"><span class="pre">false</span></tt> will remove <p>Allow multi-user chat (muc) in chatrooms. Setting this to <tt class="docutils literal"><span class="pre">false</span></tt> will remove
the <tt class="docutils literal"><span class="pre">Chatrooms</span></tt> tab from the control box.</p> the <tt class="docutils literal"><span class="pre">Chatrooms</span></tt> tab from the control box.</p>
</div> </div>
<div class="section" id="animate"> <div class="section" id="animate">
<h3><a class="toc-backref" href="#id30">animate</a><a class="headerlink" href="#animate" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id33">animate</a><a class="headerlink" href="#animate" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">true</span></tt></p>
<p>Show animations, for example when opening and closing chat boxes.</p> <p>Show animations, for example when opening and closing chat boxes.</p>
</div> </div>
<div class="section" id="auto-list-rooms"> <div class="section" id="auto-list-rooms">
<h3><a class="toc-backref" href="#id31">auto_list_rooms</a><a class="headerlink" href="#auto-list-rooms" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id34">auto_list_rooms</a><a class="headerlink" href="#auto-list-rooms" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>If true, and the XMPP server on which the current user is logged in supports <p>If true, and the XMPP server on which the current user is logged in supports
multi-user chat, then a list of rooms on that server will be fetched.</p> multi-user chat, then a list of rooms on that server will be fetched.</p>
...@@ -572,40 +692,40 @@ features, number of occupants etc.), so on servers with many rooms this ...@@ -572,40 +692,40 @@ features, number of occupants etc.), so on servers with many rooms this
option will create lots of extra connection traffic.</p> option will create lots of extra connection traffic.</p>
</div> </div>
<div class="section" id="auto-subscribe"> <div class="section" id="auto-subscribe">
<h3><a class="toc-backref" href="#id32">auto_subscribe</a><a class="headerlink" href="#auto-subscribe" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id35">auto_subscribe</a><a class="headerlink" href="#auto-subscribe" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>If true, the user will automatically subscribe back to any contact requests.</p> <p>If true, the user will automatically subscribe back to any contact requests.</p>
</div> </div>
<div class="section" id="bosh-service-url"> <div class="section" id="bosh-service-url">
<h3><a class="toc-backref" href="#id33">bosh_service_url</a><a class="headerlink" href="#bosh-service-url" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id36">bosh_service_url</a><a class="headerlink" href="#bosh-service-url" title="Permalink to this headline"></a></h3>
<p>Connections to an XMPP server depend on a BOSH connection manager which acts as <p>Connections to an XMPP server depend on a BOSH connection manager which acts as
a middle man between HTTP and XMPP.</p> a middle man between HTTP and XMPP.</p>
<p>See <a class="reference external" href="http://metajack.im/2008/09/08/which-bosh-server-do-you-need">here</a> for more information.</p> <p>See <a class="reference external" href="http://metajack.im/2008/09/08/which-bosh-server-do-you-need">here</a> for more information.</p>
</div> </div>
<div class="section" id="debug"> <div class="section" id="debug">
<h3><a class="toc-backref" href="#id34">debug</a><a class="headerlink" href="#debug" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id37">debug</a><a class="headerlink" href="#debug" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>If set to true, debugging output will be logged to the browser console.</p> <p>If set to true, debugging output will be logged to the browser console.</p>
</div> </div>
<div class="section" id="fullname"> <div class="section" id="fullname">
<h3><a class="toc-backref" href="#id35">fullname</a><a class="headerlink" href="#fullname" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id38">fullname</a><a class="headerlink" href="#fullname" title="Permalink to this headline"></a></h3>
<p>If you are using prebinding, can specify the fullname of the currently <p>If you are using prebinding, can specify the fullname of the currently
logged in user, otherwise the user&#8217;s vCard will be fetched.</p> logged in user, otherwise the user&#8217;s vCard will be fetched.</p>
</div> </div>
<div class="section" id="hide-muc-server"> <div class="section" id="hide-muc-server">
<h3><a class="toc-backref" href="#id36">hide_muc_server</a><a class="headerlink" href="#hide-muc-server" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id39">hide_muc_server</a><a class="headerlink" href="#hide-muc-server" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>Hide the <tt class="docutils literal"><span class="pre">server</span></tt> input field of the form inside the <tt class="docutils literal"><span class="pre">Room</span></tt> panel of the <p>Hide the <tt class="docutils literal"><span class="pre">server</span></tt> input field of the form inside the <tt class="docutils literal"><span class="pre">Room</span></tt> panel of the
controlbox. Useful if you want to restrict users to a specific XMPP server of controlbox. Useful if you want to restrict users to a specific XMPP server of
your choosing.</p> your choosing.</p>
</div> </div>
<div class="section" id="i18n"> <div class="section" id="i18n">
<h3><a class="toc-backref" href="#id37">i18n</a><a class="headerlink" href="#i18n" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id40">i18n</a><a class="headerlink" href="#i18n" title="Permalink to this headline"></a></h3>
<p>Specify the locale/language. The language must be in the <tt class="docutils literal"><span class="pre">locales</span></tt> object. Refer to <p>Specify the locale/language. The language must be in the <tt class="docutils literal"><span class="pre">locales</span></tt> object. Refer to
<tt class="docutils literal"><span class="pre">./locale/locales.js</span></tt> to see which locales are supported.</p> <tt class="docutils literal"><span class="pre">./locale/locales.js</span></tt> to see which locales are supported.</p>
</div> </div>
<div class="section" id="prebind"> <div class="section" id="prebind">
<h3><a class="toc-backref" href="#id38">prebind</a><a class="headerlink" href="#prebind" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id41">prebind</a><a class="headerlink" href="#prebind" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>Use this option when you want to attach to an existing XMPP connection that was <p>Use this option when you want to attach to an existing XMPP connection that was
already authenticated (usually on the backend before page load).</p> already authenticated (usually on the backend before page load).</p>
...@@ -618,7 +738,7 @@ values as <tt class="docutils literal"><span class="pre">jid</span></tt>, <tt cl ...@@ -618,7 +738,7 @@ values as <tt class="docutils literal"><span class="pre">jid</span></tt>, <tt cl
<p>Additionally, you have to specify <tt class="docutils literal"><span class="pre">bosh_service_url</span></tt>.</p> <p>Additionally, you have to specify <tt class="docutils literal"><span class="pre">bosh_service_url</span></tt>.</p>
</div> </div>
<div class="section" id="show-controlbox-by-default"> <div class="section" id="show-controlbox-by-default">
<h3><a class="toc-backref" href="#id39">show_controlbox_by_default</a><a class="headerlink" href="#show-controlbox-by-default" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id42">show_controlbox_by_default</a><a class="headerlink" href="#show-controlbox-by-default" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>The &#8220;controlbox&#8221; refers to the special chatbox containing your contacts roster, <p>The &#8220;controlbox&#8221; refers to the special chatbox containing your contacts roster,
status widget, chatrooms and other controls.</p> status widget, chatrooms and other controls.</p>
...@@ -628,13 +748,13 @@ the page with class <em>toggle-online-users</em>.</p> ...@@ -628,13 +748,13 @@ the page with class <em>toggle-online-users</em>.</p>
page load.</p> page load.</p>
</div> </div>
<div class="section" id="show-only-online-users"> <div class="section" id="show-only-online-users">
<h3><a class="toc-backref" href="#id40">show_only_online_users</a><a class="headerlink" href="#show-only-online-users" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id43">show_only_online_users</a><a class="headerlink" href="#show-only-online-users" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<p>If set to <tt class="docutils literal"><span class="pre">true</span></tt>, only online users will be shown in the contacts roster. <p>If set to <tt class="docutils literal"><span class="pre">true</span></tt>, only online users will be shown in the contacts roster.
Users with any other status (e.g. away, busy etc.) will not be shown.</p> Users with any other status (e.g. away, busy etc.) will not be shown.</p>
</div> </div>
<div class="section" id="xhr-custom-status"> <div class="section" id="xhr-custom-status">
<h3><a class="toc-backref" href="#id41">xhr_custom_status</a><a class="headerlink" href="#xhr-custom-status" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id44">xhr_custom_status</a><a class="headerlink" href="#xhr-custom-status" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
...@@ -644,7 +764,7 @@ Users with any other status (e.g. away, busy etc.) will not be shown.</p> ...@@ -644,7 +764,7 @@ Users with any other status (e.g. away, busy etc.) will not be shown.</p>
remote server.</p> remote server.</p>
</div> </div>
<div class="section" id="xhr-custom-status-url"> <div class="section" id="xhr-custom-status-url">
<h3><a class="toc-backref" href="#id42">xhr_custom_status_url</a><a class="headerlink" href="#xhr-custom-status-url" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id45">xhr_custom_status_url</a><a class="headerlink" href="#xhr-custom-status-url" title="Permalink to this headline"></a></h3>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
<p class="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p> <p class="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...@@ -656,7 +776,7 @@ message will be made.</p> ...@@ -656,7 +776,7 @@ message will be made.</p>
<p>The message itself is sent in the request under the key <tt class="docutils literal"><span class="pre">msg</span></tt>.</p> <p>The message itself is sent in the request under the key <tt class="docutils literal"><span class="pre">msg</span></tt>.</p>
</div> </div>
<div class="section" id="xhr-user-search"> <div class="section" id="xhr-user-search">
<h3><a class="toc-backref" href="#id43">xhr_user_search</a><a class="headerlink" href="#xhr-user-search" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id46">xhr_user_search</a><a class="headerlink" href="#xhr-user-search" title="Permalink to this headline"></a></h3>
<p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p> <p>Default = <tt class="docutils literal"><span class="pre">false</span></tt></p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
...@@ -673,7 +793,7 @@ message will be made.</p> ...@@ -673,7 +793,7 @@ message will be made.</p>
corresponds to a matched user and needs the keys <tt class="docutils literal"><span class="pre">id</span></tt> and <tt class="docutils literal"><span class="pre">fullname</span></tt>.</p> corresponds to a matched user and needs the keys <tt class="docutils literal"><span class="pre">id</span></tt> and <tt class="docutils literal"><span class="pre">fullname</span></tt>.</p>
</div> </div>
<div class="section" id="xhr-user-search-url"> <div class="section" id="xhr-user-search-url">
<h3><a class="toc-backref" href="#id44">xhr_user_search_url</a><a class="headerlink" href="#xhr-user-search-url" title="Permalink to this headline"></a></h3> <h3><a class="toc-backref" href="#id47">xhr_user_search_url</a><a class="headerlink" href="#xhr-user-search-url" title="Permalink to this headline"></a></h3>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
<p class="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p> <p class="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...@@ -686,9 +806,9 @@ The query string will be included in the request with <tt class="docutils litera ...@@ -686,9 +806,9 @@ The query string will be included in the request with <tt class="docutils litera
</div> </div>
</div> </div>
<div class="section" id="minification"> <div class="section" id="minification">
<h1><a class="toc-backref" href="#id45">Minification</a><a class="headerlink" href="#minification" title="Permalink to this headline"></a></h1> <h1><a class="toc-backref" href="#id48">Minification</a><a class="headerlink" href="#minification" title="Permalink to this headline"></a></h1>
<div class="section" id="minifying-javascript-and-css"> <div class="section" id="minifying-javascript-and-css">
<h2><a class="toc-backref" href="#id46">Minifying Javascript and CSS</a><a class="headerlink" href="#minifying-javascript-and-css" title="Permalink to this headline"></a></h2> <h2><a class="toc-backref" href="#id49">Minifying Javascript and CSS</a><a class="headerlink" href="#minifying-javascript-and-css" title="Permalink to this headline"></a></h2>
<p>Please make sure to read the section <a class="reference internal" href="#development">Development</a> and that you have installed <p>Please make sure to read the section <a class="reference internal" href="#development">Development</a> and that you have installed
all development dependencies (long story short, you can run <tt class="docutils literal"><span class="pre">npm</span> <span class="pre">install</span></tt> all development dependencies (long story short, you can run <tt class="docutils literal"><span class="pre">npm</span> <span class="pre">install</span></tt>
and then <tt class="docutils literal"><span class="pre">grunt</span> <span class="pre">fetch</span></tt>).</p> and then <tt class="docutils literal"><span class="pre">grunt</span> <span class="pre">fetch</span></tt>).</p>
...@@ -705,7 +825,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm ...@@ -705,7 +825,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm
</div> </div>
</div> </div>
<div class="section" id="translations"> <div class="section" id="translations">
<h1><a class="toc-backref" href="#id47">Translations</a><a class="headerlink" href="#translations" title="Permalink to this headline"></a></h1> <h1><a class="toc-backref" href="#id50">Translations</a><a class="headerlink" href="#translations" title="Permalink to this headline"></a></h1>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
<p class="last">Translations take up a lot of space and will bloat your minified file. <p class="last">Translations take up a lot of space and will bloat your minified file.
......
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,global:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,punjab:0,those:0,under:0,sens:0,spec:0,sent:0,everi:0,string:0,fals:0,account:0,facebook:0,jack:0,veri:0,tri:0,chatpanel:[],list:0,factori:0,sane:0,div:0,pleas:0,prevent:0,xhr_user_search_url:0,almond:0,jump:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,appear:0,section:0,access:0,version:0,"new":0,net:0,"public":0,widget:0,themselv:0,gener:0,here:0,bodi:0,typeerror:0,let:0,path:0,strong:[],modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,reason:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,although:0,extra:0,apach:0,prefer:0,ask:0,href:0,succesfulli:0,auto_list_room:0,instal:0,getsess:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,call:0,recommend:0,msg:0,type:0,until:0,toggl:0,more:0,peopl:0,notic:0,particular:0,vcard:0,must:0,none:[],word:0,room:0,past:0,work:0,uniqu:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,give:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,unfortun:0,occup:0,end:0,goal:0,turn:0,anoth:0,snippet:0,how:0,bosh_serv:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,haven:0,after:0,usabl:0,befor:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,opkod:0,github:0,practic:0,bind:0,credenti:0,correspond:0,django:0,caus:0,inform:0,show_only_online_us:0,allow:0,media:0,mechan:0,order:0,feedback:0,chatbox:0,xmpp:0,over:0,becaus:0,through:0,streamlin:0,write:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,directli:0,fit:0,fix:0,pend:0,persist:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,rewriterul:0,front:0,now:0,introduct:0,edit:0,troubleshoot:0,revers:0,authent:0,separ:0,token:0,ejabberd:0,each:0,debug:0,side:0,mean:0,domain:0,"short":0,individu:0,realli:0,"static":0,connect:0,our:0,happen:0,patch:0,extract:0,special:0,out:0,variabl:0,shown:0,"3rd":0,space:0,miss:0,proxy_pass:0,content:0,rel:0,internet:0,plural:0,correct:0,po2json:0,proxi:0,insid:0,state:0,standard:0,standalon:0,ajax:0,put:0,org:0,afterward:0,xhr_custom_status_url:0,could:0,keep:0,thing:0,perhap:0,xhr_custom_statu:0,outsid:[],first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,"long":0,owner:0,happi:0,jabber:0,differ:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,master:0,jed:0,jcbrand:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,pars:0,grunt:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,someothersit:0,browser:0,pre:0,analysi:0,show_controlbox_by_default:0,saa:0,modern:0,ani:0,packag:0,style:[],have:0,tabl:0,need:0,moffitt:0,element:0,bosh_service_url:0,prebind:0,min:0,latter:0,thorough:0,port:0,note:0,also:0,exampl:0,take:0,which:0,singl:0,sure:0,deploy:0,unsur:0,who:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,doe:0,runtim:0,bower:0,latest:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,server_nam:0,session:0,protocol:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,exactli:0,locat:0,firstnam:0,configur:0,solut:0,stanza:0,should:0,busi:0,folder:0,local:0,meant:0,info:0,get:0,soon:0,repo:0,nativ:0,cannot:0,requir:0,enabl:0,emb:0,mainspec:0,multi:0,achiev:0,method:0,reload:0,bad:0,integr:0,though:0,contain:0,where:0,wiki:0,set:0,habit:0,stroph:0,see:0,result:0,close:0,best:0,jqueri:0,statu:0,said:0,kei:0,someth:0,written:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,appreci:0,extend:0,screen:0,javascript:0,conjunct:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,both:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,node_modul:0,simpli:0,pot:0,solv:0,non:0,assum:0,backend:0,quit:0,sucessfulli:0,addition:0,rebuild:0,empti:0,compon:0,json:0,much:0,subscrib:0,non_amd:0,session_kei:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,els:0,i18n:0,present:0,"case":0,myself:0,main:0,look:0,servic:0,plugin:0,defin:0,match:0,abov:0,error:0,hightlight:0,increment:0,helper:0,demo:0,auto_subscrib:0,site:0,itself:0,incom:0,rid:0,conn:[],develop:0,open:0,receiv:0,parti:0,make:0,minif:0,cross:0,same:0,webpag:0,onconnectfacebook:0,html:0,chatroom:0,document:0,medit:0,conflict:0,complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:0,hand:0,remot:0,"50kb":0,user:0,uncaught:0,php:0,xhr_user_search:0,cssmin:0,recent:0,stateless:0,firstli:0,markup:0,well:0,without:0,command:0,wherebi:0,thi:0,choos:0,everyth:0,usual:0,plural_form:0,identifi:0,just:0,tip:0,jshint:0,file:0,languag:0,web:0,xmlhttprequest:0,field:0,had:0,add:0,valid:0,blob:0,versa:0,appli:0,input:0,hide_muc_serv:0,build:0,bin:0,applic:0,format:0,read:0,amd:0,nginx:0,traffic:0,know:0,background:0,backbon:0,xss:0,like:0,specif:0,manual:0,server:0,collect:[],benefit:0,either:0,output:0,page:0,facebookconnect:0,right:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,roster:0,rewriteengin:0,track:0,contact:0,overcom:0,localhost:0,refer:0,plu:0,object:0,run:0,host:0,repositori:0,post:0,panel:0,src:0,about:0,controlbox:0,manag:0,issu:0,act:0,client:0,own:0,curiou:0,inlin:0,within:0,encod:0,automat:0,been:0,wrap:0,chang:0,your:0,merg:0,log:0,wai:0,aren:0,transfer:0,support:0,submit:0,custom:0,avail:0,includ:0,lot:0,suit:0,"function":0,head:0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,line:0,stand:0,"true":0,bug:0,congratul:0,requirej:0,count:[],pull:0,made:0,dirti:0,tab:0,possibl:0,whether:0,bugfix:0,displai:[],asynchron:0,below:0,tightli:0,legwork:0,problem:0,expect:0,featur:0,constant:0,creat:0,movim:0,doesn:0,msgmerg:0,exist:0,chat:0,face:0,check:0,probabl:0,want:0,when:0,detail:0,gettext:0,"default":0,other:0,rememb:0,varieti:0,test:0,you:0,servernam:0,nice:0,node:0,intend:0,releas:0,stai:0,lang:0,longer:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,locale_data:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]}) Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,global:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,punjab:0,buddi:0,under:0,sens:0,spec:0,sent:0,everi:0,string:0,fals:0,account:0,facebook:0,jack:0,veri:0,tri:0,chatpanel:[],list:0,correct:0,item:0,sane:0,div:0,pleas:0,prevent:0,xhr_user_search_url:0,almond:0,focu:0,jump:0,second:0,pass:0,download:0,further:0,fullnam:0,port:0,even:0,index:0,what:0,hide:0,appear:0,section:0,access:0,"public":0,version:0,"new":0,net:0,method:0,widget:0,themselv:0,gener:0,here:0,bodi:0,typeerror:0,let:0,path:0,strong:[],modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,ajax:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,repositori:0,extra:0,solut:0,prefer:0,put:0,href:0,org:0,auto_list_room:0,instal:0,should:0,getsess:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,call:0,recommend:0,msg:0,type:0,until:0,toggl:0,more:0,peopl:0,notic:0,site:0,conjunct:0,particular:0,vcard:0,must:0,none:[],word:0,room:0,past:0,work:0,uniqu:0,xhr:0,legwork:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,give:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,thing:0,anoth:0,write:0,how:0,bosh_serv:0,sid:0,roster:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,repo:0,"short":0,practic:0,bind:0,show_controlbox_by_default:0,correspond:0,element:0,caus:0,inform:0,show_only_online_us:0,allow:0,parti:0,mechan:0,order:0,feedback:0,chatbox:0,xmpp:0,over:0,move:0,becaus:0,through:0,paramet:0,streamlin:0,snippet:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,pend:0,persist:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,onmessag:0,automat:0,front:0,now:0,introduct:0,name:0,edit:0,troubleshoot:0,revers:0,authent:0,separ:0,token:0,ejabberd:0,each:0,debug:0,side:0,mean:0,domain:0,individu:0,realli:0,"static":0,connect:0,our:0,happen:0,extract:0,event:0,special:0,out:0,variabl:0,shown:0,"3rd":0,space:0,miss:0,proxy_pass:0,content:0,rel:0,internet:0,merg:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,written:0,standard:0,standalon:0,reason:0,ask:0,succesfulli:0,afterward:0,xhr_custom_status_url:0,rewriteengin:0,could:0,keep:0,turn:0,perhap:0,outsid:[],first:0,origin:0,softwar:0,directli:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,submit:0,onchatboxclos:0,owner:0,custom:0,jabber:0,differ:0,php:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,master:0,jed:0,jcbrand:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,pars:0,grunt:0,haven:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,someothersit:0,browser:0,pre:0,"function":0,credenti:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,min:0,latter:0,thorough:0,click:0,note:0,also:0,without:0,take:0,which:0,singl:0,wherebi:0,sure:0,deploy:0,unsur:0,who:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,doe:0,runtim:0,bower:0,usual:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,server_nam:0,session:0,identifi:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,exactli:0,locat:0,just:0,configur:0,apach:0,stanza:0,than:0,busi:0,folder:0,local:0,meant:0,count:[],get:0,stop:0,soon:0,opkod:0,nativ:0,cannot:0,chat:0,requir:0,enabl:0,emb:0,mainspec:0,patch:0,reload:0,bad:0,integr:0,contain:0,where:0,wiki:0,set:0,habit:0,stroph:0,see:0,result:0,close:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,extend:0,someth:0,state:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,appreci:0,kei:0,screen:0,javascript:0,style:[],job:0,entir:0,bosh:0,"5e64a30272af065bd72258c565a03f2f":0,both:0,cor:0,instant:0,shortliv:0,conversej:0,myself:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,node_modul:0,simpli:0,pot:0,solv:0,assum:0,backend:0,quit:0,sucessfulli:0,addition:0,rebuild:0,empti:0,github:0,compon:0,json:0,much:0,subscrib:0,blob:0,session_kei:0,fire:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,input:0,i18n:0,present:0,"case":0,multi:0,main:0,look:0,servic:0,plugin:0,defin:0,abov:0,error:0,hightlight:0,increment:0,helper:0,demo:0,auto_subscrib:0,non:0,itself:0,incom:0,rid:0,conn:[],develop:0,open:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,read:0,onconnectfacebook:0,html:0,chatroom:0,document:0,medit:0,conflict:0,complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:0,hand:0,remot:0,"50kb":0,user:0,uncaught:0,rewriterul:0,xhr_user_search:0,cssmin:0,recent:0,stateless:0,off:0,choos:0,firstli:0,markup:0,well:0,exampl:0,command:0,achiev:0,thi:0,onmessagesend:0,everyth:0,latest:0,plural_form:0,protocol:0,execut:0,when:0,onstatuschang:0,jshint:0,languag:0,web:0,xmlhttprequest:0,field:0,had:0,onchatboxopen:0,add:0,other:0,non_amd:0,versa:0,appli:0,els:0,match:0,build:0,bin:0,applic:0,format:0,webpag:0,amd:0,nginx:0,traffic:0,know:0,background:0,like:0,xss:0,backbon:0,specif:0,manual:0,server:0,collect:[],benefit:0,either:0,output:0,page:0,facebookconnect:0,right:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,though:0,xhr_custom_statu:0,track:0,contact:0,overcom:0,localhost:0,refer:0,plu:0,object:0,run:0,host:0,although:0,post:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,issu:0,act:0,client:0,own:0,curiou:0,inlin:0,within:0,encod:0,onbuddystatusmessagechang:0,been:0,wrap:0,chang:0,your:0,manag:0,log:0,wai:0,aren:0,transfer:0,support:0,"long":0,happi:0,avail:0,trigger:0,includ:0,lot:0,suit:0,analysi:0,head:0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,line:0,stand:0,"true":0,bug:0,congratul:0,longer:0,info:0,pull:0,made:0,dirti:0,tab:0,possibl:0,whether:0,bugfix:0,displai:[],asynchron:0,below:0,those:0,tightli:0,otherwis:0,problem:0,emit:0,expect:0,featur:0,constant:0,creat:0,movim:0,doesn:0,msgmerg:0,exist:0,file:0,face:0,check:0,probabl:0,want:0,onrost:0,tip:0,detail:0,gettext:0,"default":0,valid:0,onchatboxfocus:0,rememb:0,varieti:0,test:0,you:0,servernam:0,nice:0,node:0,intend:0,onbuddystatuschang:0,onstatusmessagechang:0,releas:0,hide_muc_serv:0,stai:0,lang:0,requirej:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,locale_data:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]})
\ No newline at end of file \ No newline at end of file
...@@ -537,6 +537,123 @@ It shows in which order the libraries must be loaded via ``<script>`` tags. Add ...@@ -537,6 +537,123 @@ It shows in which order the libraries must be loaded via ``<script>`` tags. Add
your own libraries, making sure that they are loaded in the correct order (e.g. your own libraries, making sure that they are loaded in the correct order (e.g.
jQuery plugins must load after jQuery). jQuery plugins must load after jQuery).
======
Events
======
Converse.js emits events to which you can subscribe from your own Javascript.
Concerning events, the following methods are available:
Event Methods
=============
* **on(eventName, callback)**:
Calling the ``on`` method allows you to subscribe to an event.
Every time the event fires, the callback method specified by ``callback`` will be
called.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` is the callback method to be called when the event is emitted.
For example::
converse.on('onMessage', function (message) { ... });
* **once(eventName, callback)**:
Calling the ``once`` method allows you to listen to an event
exactly once.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` is the callback method to be called when the event is emitted.
For example::
converse.once('onMessage', function (message) { ... });
* **off(eventName, callback)**
To stop listening to an event, you can use the ``off`` method.
Parameters:
* ``eventName`` is the event name as a string.
* ``callback`` refers to the function that is to be no longer executed.
Event Types
===========
Here are the different events that are emitted:
* **onMessage**
``converse.on('onMessage', function (message) { ... });``
Triggered when a message is received.
* **onMessageSend**
``converse.on('onMessageSend', function (message) { ... });``
Triggered when a message will be sent out.
* **onRoster**
``converse.on('onRoster', function (items) { ... });``
Triggered when the roster is updated.
* **onChatBoxFocused**
``converse.on('onChatBoxFocused', function (chatbox) { ... });``
Triggered when the focus has been moved to a chat box.
* **onChatBoxOpened**
``converse.on('onChatBoxOpened', function (chatbox) { ... });``
Triggered when a chat box has been opened.
* **onChatBoxClosed**
``converse.on('onChatBoxClosed', function (chatbox) { ... });``
Triggered when a chat box has been closed.
* **onStatusChanged**
``converse.on('onStatusChanged', function (status) { ... });``
Triggered when own chat status has changed.
* **onStatusMessageChanged**
``converse.on('onStatusMessageChanged', function (message) { ... });``
Triggered when own custom status message has changed.
* **onBuddyStatusChanged**
``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });``
Triggered when a chat buddy's chat status has changed.
* **onBuddyStatusMessageChanged**
``converse.on('onBuddyStatusMessageChanged', function (buddy, message) { ... });``
Triggered when a chat buddy's custom status message has changed.
============= =============
Configuration Configuration
============= =============
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment