<li><aclass="reference internal"href="#install-node-js-and-development-dependencies"id="id14">Install Node.js and development dependencies</a></li>
<li><aclass="reference internal"href="#install-node-js-and-development-dependencies"id="id15">Install Node.js and development dependencies</a></li>
<li><aclass="reference internal"href="#install-3rd-party-dependencies"id="id15">Install 3rd party dependencies</a></li>
<li><aclass="reference internal"href="#install-3rd-party-dependencies"id="id16">Install 3rd party dependencies</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id16">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id17">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id17">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id18">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id18">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id19">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id19">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id20">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id20">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id21">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id21">Check your code for errors or bad habits by running JSHint</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id22">Check your code for errors or bad habits by running JSHint</a></li>
<p>You’ll most likely want to implement some kind of single-signon solution for
<p>You’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: <ahref="#id52"><spanclass="problematic"id="id53">`Pre-binding and Single Session Support`_</span></a>.</p>
<p>For more info on this, read: <ahref="#id54"><spanclass="problematic"id="id55">`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 <aclass="reference internal"href="#configuration">Configuration</a> and <aclass="reference internal"href="#minification">Minification</a> for more info on how to do
the minified Javascript file. Read <aclass="reference internal"href="#configuration">Configuration</a> and <aclass="reference internal"href="#minification">Minification</a> for more info on how to do
that.</p>
that.</p>
...
@@ -338,15 +340,33 @@ Additionally you need to pass in valid <strong>jid</strong>, <strong>sid</strong
...
@@ -338,15 +340,33 @@ 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>
<ul>
<li><dlclass="first docutils">
<dt>PHP:</dt>
<dd><pclass="first last">See <aclass="reference external"href="https://github.com/candy-chat/xmpp-prebind-php">xmpp-prebind-php</a> by
Michael Weibel and the folks from Candy chat.</p>
</dd>
</dl>
</li>
<li><dlclass="first docutils">
<dt>Python:</dt>
<dd><pclass="first last">See this <aclass="reference external"href="https://github.com/metajack/strophejs/tree/master/examples/attach">example Django application</a> by Jack Moffitt.</p>
</dd>
</dl>
</li>
</ul>
</div>
<divclass="section"id="setting-up-a-bosh-server">
<divclass="section"id="setting-up-a-bosh-server">
<h3><aclass="toc-backref"href="#id11">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="#id12">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
<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="#id12">Facebook integration</a><aclass="headerlink"href="#facebook-integration"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id13">Facebook integration</a><aclass="headerlink"href="#facebook-integration"title="Permalink to this headline">¶</a></h2>
<divclass="admonition note">
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="first admonition-title">Note</p>
<pclass="last">It should be possible to integrate Converse.js with Facebook chat, and
<pclass="last">It should be possible to integrate Converse.js with Facebook chat, and
...
@@ -389,13 +409,13 @@ Until then, people will have to do this themselves.</p>
...
@@ -389,13 +409,13 @@ Until then, people will have to do this themselves.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="development">
<divclass="section"id="development">
<h1><aclass="toc-backref"href="#id13">Development</a><aclass="headerlink"href="#development"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id14">Development</a><aclass="headerlink"href="#development"title="Permalink to this headline">¶</a></h1>
<p>If you want to work with the non-minified Javascript and CSS files you’ll soon
<p>If you want to work with the non-minified Javascript and CSS files you’ll soon
notice that there are references to a missing <em>components</em> folder. Please
notice that there are references to a missing <em>components</em> folder. Please
follow the instructions below to create this folder and fetch Converse’s
follow the instructions below to create this folder and fetch Converse’s
<h2><aclass="toc-backref"href="#id14">Install Node.js and development dependencies</a><aclass="headerlink"href="#install-node-js-and-development-dependencies"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id15">Install Node.js and development dependencies</a><aclass="headerlink"href="#install-node-js-and-development-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>)
<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>
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
<p>If you don’t have Node.js installed, you can download and install the latest
...
@@ -409,7 +429,7 @@ curious to know what these are, take a look at whats under the <em>devDependenci
...
@@ -409,7 +429,7 @@ curious to know what these are, take a look at whats under the <em>devDependenci
<h2><aclass="toc-backref"href="#id15">Install 3rd party dependencies</a><aclass="headerlink"href="#install-3rd-party-dependencies"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id16">Install 3rd party dependencies</a><aclass="headerlink"href="#install-3rd-party-dependencies"title="Permalink to this headline">¶</a></h2>
<p>After running <ttclass="docutils literal"><spanclass="pre">npm</span><spanclass="pre">install</span></tt>, you will now have Grunt and Bower installed.</p>
<p>After running <ttclass="docutils literal"><spanclass="pre">npm</span><spanclass="pre">install</span></tt>, you will now have Grunt and Bower installed.</p>
<p>We use Bower to manage Converse’s front-end dependencies (e.g. Javascript that
<p>We use Bower to manage Converse’s front-end dependencies (e.g. Javascript that
should get loaded in the browser).</p>
should get loaded in the browser).</p>
...
@@ -418,16 +438,14 @@ should get loaded in the browser).</p>
...
@@ -418,16 +438,14 @@ should get loaded in the browser).</p>
</div>
</div>
<p>If you don’t have grunt installed globally, you need to specify the relative
<p>If you don’t have grunt installed globally, you need to specify the relative
<h2><aclass="toc-backref"href="#id16">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="#id17">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>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
<p>If you want to develop or customize converse.js, you’ll want to load the
non-minified javascript files.</p>
non-minified javascript files.</p>
...
@@ -440,7 +458,7 @@ attribute on the <em>script</em> tag), which will in turn cause converse.js to b
...
@@ -440,7 +458,7 @@ attribute on the <em>script</em> tag), which will in turn cause converse.js to b
<h2><aclass="toc-backref"href="#id17">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="#id18">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
<p>Converse.js can also be used without require.js. If you for some reason prefer
<h2><aclass="toc-backref"href="#id18">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="#id19">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="#id19">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="#id20">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
<p>Add a test for any bug fixed or feature added. We use Jasmine
for testing.</p>
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
<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
...
@@ -459,7 +477,7 @@ the tests are implemented.</p>
...
@@ -459,7 +477,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>
<aclass="reference external"href="http://opkode.com/contact">contact me</a> and I’ll be happy to help.</p>
<h3><aclass="toc-backref"href="#id20">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="#id21">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
<p>Check that the Jasmine tests complete sucessfully. Open
<h3><aclass="toc-backref"href="#id21">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="#id22">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
<p><aclass="reference external"href="http://jshint.com">JSHint</a> will do a static analysis of your code and hightlight potential errors
<h2><aclass="toc-backref"href="#id23">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="#id24">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">
<divclass="section"id="problem">
<h3><aclass="toc-backref"href="#id24">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id25">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<p>You are using other Javascript libraries (like JQuery plugins), and
<p>You are using other Javascript libraries (like JQuery plugins), and
get errors like these in your browser console:</p>
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>
<divclass="highlight-python"><pre>Uncaught TypeError: Object [object Object] has no method 'xxx' from example.js</pre>
</div>
</div>
</div>
</div>
<divclass="section"id="solution">
<divclass="section"id="solution">
<h3><aclass="toc-backref"href="#id25">Solution:</a><aclass="headerlink"href="#solution"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id26">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>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>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
<p>For the purpose of demonstration, I’m going to assume its <ttclass="docutils literal"><spanclass="pre">$</span></tt>, but the same
...
@@ -533,11 +551,11 @@ jQuery plugins must load after jQuery).</p>
...
@@ -533,11 +551,11 @@ jQuery plugins must load after jQuery).</p>
</div>
</div>
</div>
</div>
<divclass="section"id="events">
<divclass="section"id="events">
<h1><aclass="toc-backref"href="#id26">Events</a><aclass="headerlink"href="#events"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id27">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>Converse.js emits events to which you can subscribe from your own Javascript.</p>
<p>Concerning events, the following methods are available:</p>
<p>Concerning events, the following methods are available:</p>
<divclass="section"id="event-methods">
<divclass="section"id="event-methods">
<h2><aclass="toc-backref"href="#id27">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id28">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
@@ -667,7 +685,7 @@ got all its ducks in a row.</p>
...
@@ -667,7 +685,7 @@ got all its ducks in a row.</p>
</div>
</div>
</div>
</div>
<divclass="section"id="configuration">
<divclass="section"id="configuration">
<h1><aclass="toc-backref"href="#id29">Configuration</a><aclass="headerlink"href="#configuration"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id30">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
<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
you’ll want to configure <em>Converse.js</em> to suit your needs before you deploy it
on your website.</p>
on your website.</p>
...
@@ -681,9 +699,9 @@ all the available configuration settings.</p>
...
@@ -681,9 +699,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
<aclass="reference internal"href="#minification">Minification</a> section for more info on how to do this.</p>
<aclass="reference internal"href="#minification">Minification</a> section for more info on how to do this.</p>
<divclass="section"id="configuration-variables">
<divclass="section"id="configuration-variables">
<h2><aclass="toc-backref"href="#id30">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id31">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="allow-contact-requests">
<divclass="section"id="allow-contact-requests">
<h3><aclass="toc-backref"href="#id31">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id32">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"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
<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
controlbox. Useful if you want to restrict users to a specific XMPP server of
your choosing.</p>
your choosing.</p>
</div>
</div>
<divclass="section"id="i18n">
<divclass="section"id="i18n">
<h3><aclass="toc-backref"href="#id40">i18n</a><aclass="headerlink"href="#i18n"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id41">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
<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>
<ttclass="docutils literal"><spanclass="pre">./locale/locales.js</span></tt> to see which locales are supported.</p>
</div>
</div>
<divclass="section"id="prebind">
<divclass="section"id="prebind">
<h3><aclass="toc-backref"href="#id41">prebind</a><aclass="headerlink"href="#prebind"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id42">prebind</a><aclass="headerlink"href="#prebind"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id42">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id43">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id43">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id45">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id46">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id48">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<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>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...
@@ -803,7 +835,7 @@ message will be made.</p>
...
@@ -803,7 +835,7 @@ 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>
<p>The message itself is sent in the request under the key <ttclass="docutils literal"><spanclass="pre">msg</span></tt>.</p>
</div>
</div>
<divclass="section"id="xhr-user-search">
<divclass="section"id="xhr-user-search">
<h3><aclass="toc-backref"href="#id47">xhr_user_search</a><aclass="headerlink"href="#xhr-user-search"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id49">xhr_user_search</a><aclass="headerlink"href="#xhr-user-search"title="Permalink to this headline">¶</a></h3>
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>
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>
</div>
<divclass="section"id="xhr-user-search-url">
<divclass="section"id="xhr-user-search-url">
<h3><aclass="toc-backref"href="#id48">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id50">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<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>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...
@@ -833,9 +865,9 @@ The query string will be included in the request with <tt class="docutils litera
...
@@ -833,9 +865,9 @@ The query string will be included in the request with <tt class="docutils litera
</div>
</div>
</div>
</div>
<divclass="section"id="minification">
<divclass="section"id="minification">
<h1><aclass="toc-backref"href="#id49">Minification</a><aclass="headerlink"href="#minification"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id51">Minification</a><aclass="headerlink"href="#minification"title="Permalink to this headline">¶</a></h1>
<h2><aclass="toc-backref"href="#id50">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id52">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h2>
<p>Please make sure to read the section <aclass="reference internal"href="#development">Development</a> and that you have installed
<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>
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>
and then <ttclass="docutils literal"><spanclass="pre">grunt</span><spanclass="pre">fetch</span></tt>).</p>
...
@@ -852,7 +884,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm
...
@@ -852,7 +884,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm
</div>
</div>
</div>
</div>
<divclass="section"id="translations">
<divclass="section"id="translations">
<h1><aclass="toc-backref"href="#id51">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id53">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h1>
<divclass="admonition note">
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="first admonition-title">Note</p>
<pclass="last">Translations take up a lot of space and will bloat your minified file.
<pclass="last">Translations take up a lot of space and will bloat your minified file.
...
@@ -941,7 +973,7 @@ those hoops you had to jump through.</p>
...
@@ -941,7 +973,7 @@ those hoops you had to jump through.</p>
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,global:0,webchat:0,follow:0,row: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,jid:0,facebook:0,jack:0,veri:0,tri:0,chatpanel:[],messagetext:0,list:0,correct:0,item:0,sane:0,div:0,refer: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,manag:0,widget:0,themselv:0,messagexml: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,duck: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,toggl:0,more:0,peopl:0,notic:0,site: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,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,conjunct:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,"static":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,legwork: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,got:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,written:0,standard:0,standalon:0,reason:0,ask:0,org: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,than: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,use_vcard:0,url:0,request:0,doe:0,runtim:0,determin:0,bower:0,usual:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,succesfulli: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,haven: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,whenev:0,patch:0,reload:0,bad:0,integr:0,contain:0,where:0,view: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,imag: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,person: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,avatar: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,oniniti:0,localhost:0,either: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,onreadi:0,wrap:0,chang:0,your:0,merg: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,onrosterviewupd: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"]})
Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,global:0,webchat:0,follow:0,row:0,middl:0,depend:0,onmessagesend:0,sensit:0,punjab:0,buddi:0,under:0,sens:0,spec:0,sent:0,everi:0,string:0,fals:0,than:0,account:0,facebook:0,jack:0,veri:0,tri:0,chatpanel:[],button:0,messagetext:0,list:0,factori: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,click:0,folk:0,even:0,index:0,what:0,hide:0,appear:0,section:0,access:0,version:0,"new":0,net:0,method:0,widget:0,themselv:0,messagexml: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,duck: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,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,thing: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,after:0,usabl:0,befor:0,callback:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,opkod:0,"short":0,practic:0,third: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,move:0,becaus:0,through:0,paramet:0,streamlin:0,write:0,conjunct: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,onbuddystatusmessagechang: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,everyth:0,domain:0,michael:0,individu:0,realli:0,legwork: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,jabber:0,proxy_pass:0,content:0,rel:0,internet:0,got: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,turn:0,perhap:0,xhr_custom_statu: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,"long":0,onchatboxclos:0,owner:0,happi:0,miss: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,haven: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,rewriterul:0,homepag:0,"class":0,don:0,use_vcard:0,url:0,request:0,doe:0,runtim:0,determin:0,bower:0,latest:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,succesfulli:0,server_nam:0,session:0,protocol:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,exactli:0,locat:0,execut:0,configur:0,solut:0,stanza:0,should:0,busi:0,folder:0,local:0,meant:0,info:0,get:0,stop:0,soon:0,repo:0,nativ:0,cannot:0,requir:0,show_call_button:0,enabl:0,emb:0,mainspec:0,whenev:0,multi:0,achiev:0,"public":0,reload:0,bad:0,integr:0,though:0,contain:0,where:0,view:0,wiki:0,set:0,habit:0,stroph:0,see:0,bare:0,result:0,close:0,eventnam:0,best:0,concern: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,jid:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":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,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,github:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,non_amd:0,session_kei:0,fire:0,imag: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,abov:0,error:0,hightlight:0,increment:0,helper:0,demo:0,auto_subscrib:0,site:0,oncallbuttonclick: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,weibel:0,stateless:0,off:0,firstli:0,markup:0,well:0,person:0,without:0,command:0,wherebi:0,thi:0,choos:0,model:0,usual:0,plural_form:0,identifi:0,just:0,tip:0,onstatuschang:0,jshint:0,file:0,languag:0,web:0,xmlhttprequest:0,field:0,had:0,onchatboxopen:0,add:0,valid:0,blob:0,versa:0,appli:0,input:0,match:0,build:0,bin:0,applic:0,format:0,read:0,amd:0,nginx:0,traffic:0,know:0,background:0,press:0,backbon:0,xss:0,like:0,specif:0,manual:0,server:0,collect:[],benefit:0,either:0,output:0,page:0,candi: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,oniniti:0,localhost:0,refer:0,plu:0,object:0,run:0,host:0,repositori:0,post:0,panel:0,src:0,about:0,firstnam: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,onreadi: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,trigger: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:0,asynchron:0,below:0,those:0,tightli:0,"static":0,problem:0,emit:0,expect:0,onrosterviewupd: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,onrost: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,releas: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,locale_data:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]})