<li><aclass="reference internal"href="#install-the-development-and-front-end-dependencies"id="id17">Install the development and front-end dependencies</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id18">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id19">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id20">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id21">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id22">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id23">Check your code for errors or bad habits by running JSHint</a></li>
<li><aclass="reference internal"href="#install-the-development-and-front-end-dependencies"id="id18">Install the development and front-end dependencies</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id19">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id20">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id21">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id22">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id23">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id24">Check your code for errors or bad habits by running JSHint</a></li>
<h1><aclass="toc-backref"href="#id3">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id4">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<p>When you download a specific release of <em>Converse.js</em> there will be two minified files inside the zip file.</p>
<h1><aclass="toc-backref"href="#id4">Introduction</a><aclass="headerlink"href="#introduction"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id5">Introduction</a><aclass="headerlink"href="#introduction"title="Permalink to this headline">¶</a></h1>
<p>Even though you can connect to public XMPP servers on the <aclass="reference external"href="http://conversejs.org">conversejs.org</a>
website, <em>Converse.js</em> is not really meant to be a “Software-as-a-service” (SaaS)
webchat.</p>
...
...
@@ -216,9 +217,9 @@ code.</p>
requirements.</p>
</div>
<divclass="section"id="what-you-will-need">
<h1><aclass="toc-backref"href="#id5">What you will need</a><aclass="headerlink"href="#what-you-will-need"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id6">What you will need</a><aclass="headerlink"href="#what-you-will-need"title="Permalink to this headline">¶</a></h1>
<divclass="section"id="an-xmpp-jabber-server">
<h2><aclass="toc-backref"href="#id6">An XMPP/Jabber server</a><aclass="headerlink"href="#an-xmpp-jabber-server"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id7">An XMPP/Jabber server</a><aclass="headerlink"href="#an-xmpp-jabber-server"title="Permalink to this headline">¶</a></h2>
<p><em>Converse.js</em> implements <aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> as its messaging protocol, and therefore needs
to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).</p>
<p>You can connect to public XMPP servers like <ttclass="docutils literal"><spanclass="pre">jabber.org</span></tt> but if you want to
...
...
@@ -227,7 +228,7 @@ have <a class="reference internal" href="#session-support">Session Support</a> y
servers that you can set up yourself on <aclass="reference external"href="http://xmpp.org/xmpp-software/servers/">xmpp.org</a>.</p>
</div>
<divclass="section"id="connection-manager">
<h2><aclass="toc-backref"href="#id7">Connection Manager</a><aclass="headerlink"href="#connection-manager"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id8">Connection Manager</a><aclass="headerlink"href="#connection-manager"title="Permalink to this headline">¶</a></h2>
<p>Your website and <em>Converse.js</em> use <aclass="reference external"href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> as protocol to communicate with
the webserver. HTTP connections are stateless and usually shortlived.</p>
<p><aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> on the other hand, is the protocol that enables instant messaging, and
...
...
@@ -242,7 +243,7 @@ includes a connection manager (but you have to enable it).</p>
This connection manager is for testing purposes only, please don’t use it in
<h3><aclass="toc-backref"href="#id8">Overcoming cross-domain request restrictions</a><aclass="headerlink"href="#overcoming-cross-domain-request-restrictions"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id9">Overcoming cross-domain request restrictions</a><aclass="headerlink"href="#overcoming-cross-domain-request-restrictions"title="Permalink to this headline">¶</a></h3>
<p>The domain of the <em>Converse.js</em> demo is <em>conversejs.org</em>, but the domain of the connection manager is <em>opkode.im</em>.
HTTP requests are made by <em>Converse.js</em> to the connection manager via XmlHttpRequests (XHR).
Until recently, it was not possible to make such requests to a different domain
...
...
@@ -291,9 +292,9 @@ the cross-domain restriction is <tt class="docutils literal"><span class="pre">m
<h2><aclass="toc-backref"href="#id9">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id10">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<spanid="session-support"></span><h3><aclass="toc-backref"href="#id10">Prebinding and Single Session Support</a><aclass="headerlink"href="#prebinding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<spanid="session-support"></span><h3><aclass="toc-backref"href="#id11">Prebinding and Single Session Support</a><aclass="headerlink"href="#prebinding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<p>It’s possible to enable single-site login, whereby users already
authenticated in your website will also automatically be logged in on the chat server,</p>
<p>This session should also persist across page loads. In other words, we don’t
...
...
@@ -350,7 +351,7 @@ Additionally you need to pass in valid <strong>jid</strong>, <strong>sid</strong
<h3><aclass="toc-backref"href="#id11">Example code for server-side prebinding</a><aclass="headerlink"href="#example-code-for-server-side-prebinding"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id12">Example code for server-side prebinding</a><aclass="headerlink"href="#example-code-for-server-side-prebinding"title="Permalink to this headline">¶</a></h3>
<ul>
<li><dlclass="first docutils">
<dt>PHP:</dt>
...
...
@@ -368,14 +369,14 @@ Michael Weibel and the folks from Candy chat.</p>
</ul>
</div>
<divclass="section"id="setting-up-a-bosh-server">
<h3><aclass="toc-backref"href="#id12">Setting up a BOSH server</a><aclass="headerlink"href="#setting-up-a-bosh-server"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id13">Setting up a BOSH server</a><aclass="headerlink"href="#setting-up-a-bosh-server"title="Permalink to this headline">¶</a></h3>
<p>The <aclass="reference external"href="http://movim.eu/">Movim</a> project wiki has a very thorough page on setting up a BOSH server for
<h2><aclass="toc-backref"href="#id13">Facebook integration</a><aclass="headerlink"href="#facebook-integration"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id14">Facebook integration</a><aclass="headerlink"href="#facebook-integration"title="Permalink to this headline">¶</a></h2>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">It should be possible to integrate Converse.js with Facebook chat, and
...
...
@@ -418,9 +419,9 @@ Until then, people will have to do this themselves.</p>
</div>
</div>
<divclass="section"id="features">
<h1><aclass="toc-backref"href="#id14">Features</a><aclass="headerlink"href="#features"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id15">Features</a><aclass="headerlink"href="#features"title="Permalink to this headline">¶</a></h1>
<h2><aclass="toc-backref"href="#id15">Off-the-record encryption</a><aclass="headerlink"href="#off-the-record-encryption"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id16">Off-the-record encryption</a><aclass="headerlink"href="#off-the-record-encryption"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id17">Install the development and front-end dependencies</a><aclass="headerlink"href="#install-the-development-and-front-end-dependencies"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id18">Install the development and front-end dependencies</a><aclass="headerlink"href="#install-the-development-and-front-end-dependencies"title="Permalink to this headline">¶</a></h2>
<p>We use development tools (<aclass="reference external"href="http://gruntjs.com">Grunt</a> and <aclass="reference external"href="http://bower.io">Bower</a>)
which depend on Node.js and npm (the Node package manager).</p>
<p>If you don’t have Node.js installed, you can download and install the latest
...
...
@@ -482,7 +483,7 @@ Converse.js directly depends and which will therefore be loaded in the browser.<
<h2><aclass="toc-backref"href="#id18">With AMD and require.js (recommended)</a><aclass="headerlink"href="#with-amd-and-require-js-recommended"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id19">With AMD and require.js (recommended)</a><aclass="headerlink"href="#with-amd-and-require-js-recommended"title="Permalink to this headline">¶</a></h2>
<p>Converse.js uses <aclass="reference external"href="http://requirejs.org">require.js</a> to asynchronously load dependencies.</p>
<p>If you want to develop or customize converse.js, you’ll want to load the
non-minified javascript files.</p>
...
...
@@ -495,7 +496,7 @@ attribute on the <em>script</em> tag), which will in turn cause converse.js to b
<h2><aclass="toc-backref"href="#id19">Without AMD and require.js</a><aclass="headerlink"href="#without-amd-and-require-js"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id20">Without AMD and require.js</a><aclass="headerlink"href="#without-amd-and-require-js"title="Permalink to this headline">¶</a></h2>
<p>Converse.js can also be used without require.js. If you for some reason prefer
<h2><aclass="toc-backref"href="#id20">Before submitting a pull request</a><aclass="headerlink"href="#before-submitting-a-pull-request"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id21">Before submitting a pull request</a><aclass="headerlink"href="#before-submitting-a-pull-request"title="Permalink to this headline">¶</a></h2>
<h3><aclass="toc-backref"href="#id21">Add tests for your bugfix or feature</a><aclass="headerlink"href="#add-tests-for-your-bugfix-or-feature"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id22">Add tests for your bugfix or feature</a><aclass="headerlink"href="#add-tests-for-your-bugfix-or-feature"title="Permalink to this headline">¶</a></h3>
<p>Add a test for any bug fixed or feature added. We use Jasmine
for testing.</p>
<p>Take a look at <ttclass="docutils literal"><spanclass="pre">tests.html</span></tt> and <ttclass="docutils literal"><spanclass="pre">spec/MainSpec.js</span></tt> to see how
...
...
@@ -514,7 +515,7 @@ the tests are implemented.</p>
<aclass="reference external"href="http://opkode.com/contact">contact me</a> and I’ll be happy to help.</p>
<h3><aclass="toc-backref"href="#id22">Check that the tests pass</a><aclass="headerlink"href="#check-that-the-tests-pass"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id23">Check that the tests pass</a><aclass="headerlink"href="#check-that-the-tests-pass"title="Permalink to this headline">¶</a></h3>
<p>Check that the Jasmine tests complete sucessfully. Open
<h3><aclass="toc-backref"href="#id23">Check your code for errors or bad habits by running JSHint</a><aclass="headerlink"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id24">Check your code for errors or bad habits by running JSHint</a><aclass="headerlink"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"title="Permalink to this headline">¶</a></h3>
<p><aclass="reference external"href="http://jshint.com">JSHint</a> will do a static analysis of your code and hightlight potential errors
<h3><aclass="toc-backref"href="#id25">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id26">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h3>
<p>Please make sure to read the section <aclass="reference internal"href="#development">Development</a> and that you have installed
all development dependencies (long story short, you can run <ttclass="docutils literal"><spanclass="pre">npm</span><spanclass="pre">install</span></tt>
and then <ttclass="docutils literal"><spanclass="pre">grunt</span><spanclass="pre">fetch</span></tt>).</p>
...
...
@@ -553,7 +554,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm
</div>
</div>
<divclass="section"id="translations">
<h2><aclass="toc-backref"href="#id26">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id27">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h2>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">Translations take up a lot of space and will bloat your minified file.
...
...
@@ -630,18 +631,18 @@ those hoops you had to jump through.</p>
</div>
</div>
<divclass="section"id="troubleshooting">
<h1><aclass="toc-backref"href="#id27">Troubleshooting</a><aclass="headerlink"href="#troubleshooting"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id28">Troubleshooting</a><aclass="headerlink"href="#troubleshooting"title="Permalink to this headline">¶</a></h1>
<h2><aclass="toc-backref"href="#id28">Conflicts with other Javascript libraries</a><aclass="headerlink"href="#conflicts-with-other-javascript-libraries"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id29">Conflicts with other Javascript libraries</a><aclass="headerlink"href="#conflicts-with-other-javascript-libraries"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="problem">
<h3><aclass="toc-backref"href="#id29">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id30">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<p>You are using other Javascript libraries (like JQuery plugins), and
get errors like these in your browser console:</p>
<divclass="highlight-python"><pre>Uncaught TypeError: Object [object Object] has no method 'xxx' from example.js</pre>
</div>
</div>
<divclass="section"id="solution">
<h3><aclass="toc-backref"href="#id30">Solution:</a><aclass="headerlink"href="#solution"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id31">Solution:</a><aclass="headerlink"href="#solution"title="Permalink to this headline">¶</a></h3>
<p>First, find out which object is referred to by <ttclass="docutils literal"><spanclass="pre">Object</span><spanclass="pre">[object</span><spanclass="pre">Object]</span></tt>.</p>
<p>It will probably be the jQuery object <ttclass="docutils literal"><spanclass="pre">$</span></tt> or perhaps the underscore.js object <ttclass="docutils literal"><spanclass="pre">_</span></tt>.</p>
<p>For the purpose of demonstration, I’m going to assume its <ttclass="docutils literal"><spanclass="pre">$</span></tt>, but the same
...
...
@@ -683,11 +684,11 @@ jQuery plugins must load after jQuery).</p>
</div>
</div>
<divclass="section"id="events">
<h1><aclass="toc-backref"href="#id31">Events</a><aclass="headerlink"href="#events"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id32">Events</a><aclass="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>
<divclass="section"id="event-methods">
<h2><aclass="toc-backref"href="#id32">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id33">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id33">Event Types</a><aclass="headerlink"href="#event-types"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id34">Event Types</a><aclass="headerlink"href="#event-types"title="Permalink to this headline">¶</a></h2>
<p>Here are the different events that are emitted:</p>
<tableborder="1"class="docutils">
<colgroup>
...
...
@@ -811,7 +812,7 @@ exactly once.</p>
</div>
</div>
<divclass="section"id="configuration">
<h1><aclass="toc-backref"href="#id34">Configuration</a><aclass="headerlink"href="#configuration"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id35">Configuration</a><aclass="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
you’ll want to configure <em>Converse.js</em> to suit your needs before you deploy it
on your website.</p>
...
...
@@ -825,29 +826,34 @@ all the available configuration settings.</p>
JS file so that it will include the new settings. Please refer to the
<aclass="reference internal"href="#minification">Minification</a> section for more info on how to do this.</p>
<divclass="section"id="configuration-variables">
<h2><aclass="toc-backref"href="#id35">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id36">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="allow-contact-requests">
<h3><aclass="toc-backref"href="#id36">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id37">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"title="Permalink to this headline">¶</a></h3>
<p>If set to true, debugging output will be logged to the browser console.</p>
</div>
<divclass="section"id="enable-message-carbons">
<h3><aclass="toc-backref"href="#id45">enable_message_carbons</a><aclass="headerlink"href="#enable-message-carbons"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id47">enable_message_carbons</a><aclass="headerlink"href="#enable-message-carbons"title="Permalink to this headline">¶</a></h3>
<p>Support for <aclass="reference external"href="https://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a></p>
</div>
<divclass="section"id="expose-rid-and-sid">
<h3><aclass="toc-backref"href="#id46">expose_rid_and_sid</a><aclass="headerlink"href="#expose-rid-and-sid"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id48">expose_rid_and_sid</a><aclass="headerlink"href="#expose-rid-and-sid"title="Permalink to this headline">¶</a></h3>
<p>Hide the <ttclass="docutils literal"><spanclass="pre">server</span></tt> input field of the form inside the <ttclass="docutils literal"><spanclass="pre">Room</span></tt> panel of the
controlbox. Useful if you want to restrict users to a specific XMPP server of
your choosing.</p>
</div>
<divclass="section"id="i18n">
<h3><aclass="toc-backref"href="#id50">i18n</a><aclass="headerlink"href="#i18n"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id52">i18n</a><aclass="headerlink"href="#i18n"title="Permalink to this headline">¶</a></h3>
<p>Specify the locale/language. The language must be in the <ttclass="docutils literal"><spanclass="pre">locales</span></tt> object. Refer to
<ttclass="docutils literal"><spanclass="pre">./locale/locales.js</span></tt> to see which locales are supported.</p>
</div>
<divclass="section"id="prebind">
<h3><aclass="toc-backref"href="#id51">prebind</a><aclass="headerlink"href="#prebind"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id52">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id54">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id54">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id55">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<p>If set to <ttclass="docutils literal"><spanclass="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>
</div>
<divclass="section"id="use-otr-by-default">
<h3><aclass="toc-backref"href="#id55">use_otr_by_default</a><aclass="headerlink"href="#use-otr-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id56">use_otr_by_default</a><aclass="headerlink"href="#use-otr-by-default"title="Permalink to this headline">¶</a></h3>
<p>Determines whether the XMPP server will be queried for roster contacts’ VCards
or not. VCards contain extra personal information such as your fullname and
avatar image.</p>
</div>
<divclass="section"id="visible-toolbar-buttons">
<h3><aclass="toc-backref"href="#id58">visible_toolbar_buttons</a><aclass="headerlink"href="#visible-toolbar-buttons"title="Permalink to this headline">¶</a></h3>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...
...
@@ -1003,20 +1034,20 @@ avatar image.</p>
remote server.</p>
</div>
<divclass="section"id="xhr-custom-status-url">
<h3><aclass="toc-backref"href="#id58">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id60">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
</div>
<p>Default = Empty string</p>
<p>Default: Empty string</p>
<p>Used only in conjunction with <ttclass="docutils literal"><spanclass="pre">xhr_custom_status</span></tt>.</p>
<p>This is the URL to which the AJAX POST request to set the user’s custom status
message will be made.</p>
<p>The message itself is sent in the request under the key <ttclass="docutils literal"><spanclass="pre">msg</span></tt>.</p>
</div>
<divclass="section"id="xhr-user-search">
<h3><aclass="toc-backref"href="#id59">xhr_user_search</a><aclass="headerlink"href="#xhr-user-search"title="Permalink to this headline">¶</a></h3>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...
...
@@ -1032,12 +1063,12 @@ message will be made.</p>
corresponds to a matched user and needs the keys <ttclass="docutils literal"><spanclass="pre">id</span></tt> and <ttclass="docutils literal"><spanclass="pre">fullname</span></tt>.</p>
</div>
<divclass="section"id="xhr-user-search-url">
<h3><aclass="toc-backref"href="#id60">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id62">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
</div>
<p>Default = Empty string</p>
<p>Default: Empty string</p>
<p>Used only in conjunction with <ttclass="docutils literal"><spanclass="pre">xhr_user_search</span></tt>.</p>
<p>This is the URL to which an AJAX GET request will be made to fetch user data from your remote server.
The query string will be included in the request with <ttclass="docutils literal"><spanclass="pre">q</span></tt> as its key.</p>
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,lack:0,webchat:0,follow:0,row:0,privat:0,typeerror:0,depend:0,sensit:0,punjab:0,cach:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,multi:0,facebook:0,jack:0,veri:0,retriev:0,tri:0,button:0,messagetext:0,list:0,factori:0,"try":0,item:0,sane:0,div:0,pleas:0,prevent:0,xhr_user_search_url:0,almond:0,focu:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,folk:0,even:0,index:0,what:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,use_otr_by_default:0,"new":0,net:0,"public":0,widget:0,themselv:0,messagexml:0,gener:0,here:0,bodi:0,middl:0,let:0,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,danger:0,apach:0,prefer:0,put:0,href:0,fake:0,auto_list_room:0,instal:0,establish:0,getsess:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,busi:0,call:0,recommend:0,msg:0,type:0,until:0,tightli:0,more:0,peopl:0,line:0,notic:0,particular:0,vcard:0,must:0,account:0,word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,legwork:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,give:0,challeng:0,share:0,templat:0,critic:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,thing:0,anoth:0,deniabl: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,repo:0,"short":0,attempt:0,practic:0,third:0,seriou:0,secur: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,talk:0,feedback:0,chatbox:0,xmpp:0,over:0,move:0,becaus:0,through:0,reconnect:0,paramet:0,streamlin:0,write:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,onmessag:0,onbuddystatusmessagechang:0,expose_rid_and_sid:0,front:0,now:0,introduct:0,jump:0,name:0,edit:0,troubleshoot:0,revers:0,crypto:0,authent:0,separ:0,xhr_custom_statu:0,ejabberd:0,each:0,debug:0,side:0,mean:0,domain:0,michael:0,individu:0,idea:0,realli:0,"static":0,connect:0,our:0,happen:0,patch: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,got:0,merg:0,plural:0,correct:0,po2json:0,model:0,proxi:0,insid:0,state:0,standard:0,standalon:0,ajax:0,ask:0,succesfulli:0,afterward:0,xhr_custom_status_url:0,could:0,keep:0,turn:0,perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,"long":0,onchatboxclos:0,owner:0,custom:0,jabber:0,suffic:0,differ:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,bower:0,exactli:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,bind:0,someothersit:0,browser:0,pre:0,analysi:0,sai:0,forward_messag:0,credenti:0,saa:0,modern:0,ani:0,packag:0,increment:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,callback:0,latter:0,thorough:0,port:0,note:0,also:0,exampl:0,take:0,which:0,singl:0,therefor:0,sure:0,roster:0,unsur:0,previou:0,reach:0,most:0,eavesdropp:0,rewriterul:0,homepag:0,onchatboxtoggl:0,don:0,use_vcard:0,url:0,request:0,doe:0,runtim:0,determin:0,pars:0,latest: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,grunt:0,locat:0,execut:0,configur:0,solut:0,stanza:0,should:0,version:0,folder:0,local:0,meant:0,get:0,stop:0,soon:0,opkod:0,nativ:0,cannot:0,cryptographi:0,requir:0,show_call_button:0,enabl:0,emb:0,mainspec:0,whenev:0,achiev:0,method:0,remot:0,bad:0,integr:0,though:0,contain:0,xep:0,where:0,view:0,wiki:0,set:0,habit:0,stroph:0,see:0,bare:0,result:0,close:0,calendar:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,kei:0,inconveni:0,someth:0,written:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,verifi:0,appreci:0,extend:0,screen:0,javascript:0,conjunct:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,carbon:0,cache_otr_kei:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,avatar:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,pot:0,onreconnect:0,solv:0,non:0,deploi:0,assum:0,malleabl:0,backend:0,quit:0,enable_message_carbon:0,sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,session_kei:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,input:0,i18n:0,otr:0,plausibl:0,present:0,"case":0,myself:0,ident:0,look:0,servic:0,plugin:0,defin:0,"while":0,abov:0,error:0,howev:0,hightlight:0,have:0,helper:0,demo:0,auto_subscrib:0,site:0,oncallbuttonclick:0,itself:0,incom:0,rid:0,develop:0,harsh:0,open:0,minim:0,receiv:0,media:0,make:0,format:0,minif:0,cross:0,same:0,webpag:0,onconnectfacebook:0,html:0,unexpectedli: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,fairli:0,"50kb":0,user:0,uncaught:0,php:0,xhr_user_search:0,cssmin:0,recent:0,weibel:0,stateless:0,off:0,bewar:0,choos:0,firstli:0,markup:0,min:0,well:0,without:0,thought:0,person:0,contact:0,command:0,wherebi:0,thi:0,onmessagesend:0,everyth:0,usual:0,plural_form:0,protocol:0,just:0,tip:0,onstatuschang:0,jshint:0,file:0,languag:0,web:0,fraught:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,onchatboxopen:0,desktop:0,add:0,valid:0,non_amd:0,versa:0,primit:0,els:0,match:0,build:0,applic:0,nplural:0,secreci:0,read:0,amd:0,nginx:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,reload:0,manual:0,server:0,benefit:0,api:0,either:0,output:0,perfect:0,page:0,candi:0,facebookconnect:0,right:0,who:0,deal:0,duck:0,some:0,back:0,drop:0,librari:0,bottom:0,avoid:0,deploy:0,rewriteengin:0,track:0,allow_otr:0,inject:0,overcom:0,oniniti:0,localhost:0,refer:0,somehow:0,plu:0,object:0,run:0,host:0,repositori:0,post:0,appli:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,issu:0,stand:0,act:0,client:0,own:0,curiou:0,within:0,encod:0,harm:0,automat:0,empti:0,onreadi:0,wrap:0,chang:0,storag:0,your:0,manag:0,git:0,log:0,wai:0,aren:0,transfer:0,support:0,submit:0,happi:0,avail:0,trigger:0,includ:0,lot:0,suit:0,forward:0,"function":0,head:0,properli:0,form:0,bundl:0,maxim:0,link:0,translat:0,synonym:0,cryptograph:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,pull:0,made:0,dirti:0,locale_data:0,possibl:0,whether:0,bugfix:0,displai:0,asynchron:0,record:0,below:0,those:0,toggl:0,auto_reconnect:0,problem:0,emit:0,expect:0,onrosterviewupd:0,featur:0,constant:0,creat:0,movim:0,decrypt:0,doesn:0,mode:0,msgmerg:0,exist:0,chat:0,face:0,check:0,probabl:0,tab:0,encrypt:0,want:0,onrost:0,pat:0,when:0,detail:0,gettext:0,"default":0,other:0,onchatboxfocus:0,rememb:0,varieti:0,test:0,you:0,servernam:0,nice:0,node:0,intend:0,onbuddystatuschang:0,onstatusmessagechang:0,org:0,"class":0,releas:0,consid:0,hide_muc_serv:0,stai:0,lang:0,longer:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]})
\ No newline at end of file
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,use_otr_by_default:0,queri:0,lack:0,webchat:0,follow:0,row:0,privat:0,typeerror:0,depend:0,onmessagesend:0,sensit:0,punjab:0,cach:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,myself:0,ident:0,facebook:0,jack:0,veri:0,retriev:0,tri:0,button:0,messagetext:0,list:0,correct:0,"try":0,item:0,sane:0,div:0,refer:0,pleas:0,prevent:0,xhr_user_search_url:0,almond:0,focu:0,past:0,second:0,possibl:0,pass:0,download:0,further:0,fullnam:0,click:0,folk:0,even:0,index:0,what:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,version:0,"new":0,net:0,"public":0,widget:0,themselv:0,messagexml:0,gener:0,cal:[],here:0,bodi:0,middl:0,let:0,modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,ajax:0,onbuddystatuschang:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,repositori:0,danger:0,solut:0,prefer:0,ask:0,href:0,fake:0,auto_list_room:0,instal:0,should:0,establish: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,tightli:0,more:0,emoticon:0,peopl:0,notic:0,site:0,particular:0,vcard:0,must:0,account:0,word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,give:0,challeng:0,share:0,templat:0,critic:0,tag:0,proprietari:0,explor:0,onlin:0,unfortun:0,occup:0,end:0,goal:0,thing:0,anoth:0,deniabl:0,write:0,how:0,bosh_serv:0,sid:0,expose_rid_and_sid:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,opkod:0,"short":0,attempt:0,practic:0,third:0,seriou:0,secur:0,credenti:0,correspond:0,element:0,caus:0,inform:0,show_only_online_us:0,allow:0,media:0,mechan:0,order:0,talk:0,feedback:0,chatbox:0,xmpp:0,over:0,move:0,becaus:0,telephon:0,through:0,reconnect:0,paramet:0,streamlin:0,snippet:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,onmessag:0,automat:0,instead:0,front:0,now:0,introduct:0,jump:0,name:0,edit:0,troubleshoot:0,revers:0,crypto:0,authent:0,separ:0,xhr_custom_statu:0,ejabberd:0,each:0,debug:0,side:0,mean:0,everyth:0,domain:0,michael:0,individu:0,idea: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,jabber:0,proxy_pass:0,auto_reconnect:0,content:0,method:0,rel:0,internet:0,got:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,written:0,standard:0,standalon:0,reason:0,put:0,succesfulli:0,afterward:0,xhr_custom_status_url:0,rewriteengin:0,could:0,keep:0,turn:0,perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,cryptograph:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,submit:0,onchatboxclos:0,owner:0,happi:0,miss:0,suffic:0,differ:0,php:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,bower:0,exactli:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,bind:0,someothersit:0,browser:0,pre:0,"function":0,sai:0,forward_messag:0,show_controlbox_by_default:0,saa:0,modern:0,ani:0,packag:0,increment:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,callback:0,latter:0,thorough:0,port:0,note:0,also:0,exampl:0,take:0,which:0,singl:0,sure:0,roster:0,unsur:0,previou:0,reach:0,most:0,eavesdropp:0,homepag:0,onchatboxtoggl:0,don:0,use_vcard:0,url:0,clear:0,request:0,doe:0,runtim:0,determin:0,pars:0,usual:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,server_nam:0,session:0,protocol:0,longer:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,grunt:0,locat:0,just:0,configur:0,apach:0,stanza:0,haven:0,busi:0,folder:0,local:0,meant:0,get:0,stop:0,soon:0,repo:0,nativ:0,cannot:0,cryptographi:0,deploy:0,requir:0,show_call_button:[],enabl:0,emb:0,mainspec:0,whenev:0,patch:0,remot:0,bad:0,integr:0,contain:0,jshint:0,where:0,view:0,wiki:0,set:0,habit:0,stroph:0,see:0,bare:0,result:0,close:0,calendar:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,extend:0,inconveni:0,someth:0,state:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,verifi:0,appreci:0,kei:0,screen:0,javascript:0,conjunct:0,visible_toolbar_button:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,carbon:0,cache_otr_kei:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,within:0,pot:0,onreconnect:0,solv:0,assum:0,malleabl:0,backend:0,quit:0,enable_message_carbon:0,sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,session_kei:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,els:0,i18n:0,otr:0,plausibl:0,present:0,"case":0,multi:0,therefor:0,look:0,servic:0,plugin:0,defin:0,"while":0,abov:0,error:0,howev:0,hightlight:0,have:0,helper:0,demo:0,auto_subscrib:0,non:0,oncallbuttonclick:0,itself:0,incom:0,rid:0,develop:0,harsh:0,open:0,minim:0,receiv:0,parti:0,make:0,secreci:0,minif:0,cross:0,same:0,read:0,onconnectfacebook:0,html:0,unexpectedli: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,fairli:0,"50kb":0,user:0,uncaught:0,rewriterul:0,xhr_user_search:0,cssmin:0,recent:0,weibel:0,stateless:0,off:0,bewar:0,firstli:0,markup:0,min:0,well:0,object:0,without:0,thought:0,person:0,contact:0,command:0,wherebi:0,thi:0,choos:0,model:0,latest:0,plural_form:0,identifi:0,execut:0,when:0,onstatuschang:0,xep:0,languag:0,web:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,onchatboxopen:0,desktop:0,add:0,other:0,chat:0,non_amd:0,versa:0,primit:0,input:0,match:0,build:0,applic:0,format:0,webpag:0,amd:0,nginx:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,manual:0,server:0,benefit:0,api:0,either:0,output:0,perfect:0,manag:0,candi:0,facebookconnect:0,right:0,deal:0,nplural:0,some:0,back:0,drop:0,librari:0,bottom:0,avoid:0,though:0,achiev:0,track:0,allow_otr:0,inject:0,overcom:0,oniniti:0,localhost:0,avatar:0,maxim:0,plu:0,who:0,run:0,host:0,although:0,post:0,appli:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,page:0,issu:0,stand:0,act:0,client:0,own:0,curiou:0,deploi:0,encod:0,harm:0,onbuddystatusmessagechang:0,empti:0,onreadi:0,wrap:0,chang:0,storag:0,your:0,merg:0,git:0,log:0,wai:0,pictur:0,aren:0,transfer:0,support:0,"long":0,custom:0,avail:0,trigger:0,includ:0,lot:0,suit:0,forward:0,analysi:0,head:0,properli:0,form:0,bundl:0,somehow:0,link:0,translat:0,synonym:0,line:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,pull:0,made:0,dirti:0,locale_data:0,reload:0,whether:0,bugfix:0,displai:[],asynchron:0,record:0,below:0,those:0,toggl:0,legwork:0,problem:0,emit:0,expect:0,onrosterviewupd:0,featur:0,constant:0,creat:0,movim:0,decrypt:0,doesn:0,mode:0,msgmerg:0,exist:0,file:0,face:0,check:0,probabl:0,tab:0,encrypt:0,want:0,onrost:0,pat: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,duck:0,onstatusmessagechang:0,org:0,"class":0,releas:0,consid:0,hide_muc_serv:0,stai:0,lang:0,fraught:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]})