|
@@ -1,4 +1,3 @@
|
|
-
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
|
@@ -14,7 +13,7 @@
|
|
|
|
|
|
<script type="text/javascript">
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
var DOCUMENTATION_OPTIONS = {
|
|
- URL_ROOT: '',
|
|
|
|
|
|
+ URL_ROOT: './',
|
|
VERSION: '0.8.0',
|
|
VERSION: '0.8.0',
|
|
COLLAPSE_INDEX: false,
|
|
COLLAPSE_INDEX: false,
|
|
FILE_SUFFIX: '.html',
|
|
FILE_SUFFIX: '.html',
|
|
@@ -128,23 +127,24 @@
|
|
<li><a class="reference internal" href="#bosh-service-url" id="id45">bosh_service_url</a></li>
|
|
<li><a class="reference internal" href="#bosh-service-url" id="id45">bosh_service_url</a></li>
|
|
<li><a class="reference internal" href="#cache-otr-key" id="id46">cache_otr_key</a></li>
|
|
<li><a class="reference internal" href="#cache-otr-key" id="id46">cache_otr_key</a></li>
|
|
<li><a class="reference internal" href="#debug" id="id47">debug</a></li>
|
|
<li><a class="reference internal" href="#debug" id="id47">debug</a></li>
|
|
-<li><a class="reference internal" href="#enable-message-carbons" id="id48">message_carbons</a></li>
|
|
|
|
|
|
+<li><a class="reference internal" href="#message-carbons" id="id48">message_carbons</a></li>
|
|
<li><a class="reference internal" href="#expose-rid-and-sid" id="id49">expose_rid_and_sid</a></li>
|
|
<li><a class="reference internal" href="#expose-rid-and-sid" id="id49">expose_rid_and_sid</a></li>
|
|
<li><a class="reference internal" href="#forward-messages" id="id50">forward_messages</a></li>
|
|
<li><a class="reference internal" href="#forward-messages" id="id50">forward_messages</a></li>
|
|
<li><a class="reference internal" href="#fullname" id="id51">fullname</a></li>
|
|
<li><a class="reference internal" href="#fullname" id="id51">fullname</a></li>
|
|
<li><a class="reference internal" href="#hide-muc-server" id="id52">hide_muc_server</a></li>
|
|
<li><a class="reference internal" href="#hide-muc-server" id="id52">hide_muc_server</a></li>
|
|
<li><a class="reference internal" href="#i18n" id="id53">i18n</a></li>
|
|
<li><a class="reference internal" href="#i18n" id="id53">i18n</a></li>
|
|
<li><a class="reference internal" href="#prebind" id="id54">prebind</a></li>
|
|
<li><a class="reference internal" href="#prebind" id="id54">prebind</a></li>
|
|
-<li><a class="reference internal" href="#show-controlbox-by-default" id="id55">show_controlbox_by_default</a></li>
|
|
|
|
-<li><a class="reference internal" href="#show-only-online-users" id="id56">show_only_online_users</a></li>
|
|
|
|
-<li><a class="reference internal" href="#storage" id="id57">storage</a></li>
|
|
|
|
-<li><a class="reference internal" href="#use-otr-by-default" id="id58">use_otr_by_default</a></li>
|
|
|
|
-<li><a class="reference internal" href="#use-vcards" id="id59">use_vcards</a></li>
|
|
|
|
-<li><a class="reference internal" href="#visible-toolbar-buttons" id="id60">visible_toolbar_buttons</a></li>
|
|
|
|
-<li><a class="reference internal" href="#xhr-custom-status" id="id61">xhr_custom_status</a></li>
|
|
|
|
-<li><a class="reference internal" href="#xhr-custom-status-url" id="id62">xhr_custom_status_url</a></li>
|
|
|
|
-<li><a class="reference internal" href="#xhr-user-search" id="id63">xhr_user_search</a></li>
|
|
|
|
-<li><a class="reference internal" href="#xhr-user-search-url" id="id64">xhr_user_search_url</a></li>
|
|
|
|
|
|
+<li><a class="reference internal" href="#roster-groups" id="id55">roster_groups</a></li>
|
|
|
|
+<li><a class="reference internal" href="#show-controlbox-by-default" id="id56">show_controlbox_by_default</a></li>
|
|
|
|
+<li><a class="reference internal" href="#show-only-online-users" id="id57">show_only_online_users</a></li>
|
|
|
|
+<li><a class="reference internal" href="#storage" id="id58">storage</a></li>
|
|
|
|
+<li><a class="reference internal" href="#use-otr-by-default" id="id59">use_otr_by_default</a></li>
|
|
|
|
+<li><a class="reference internal" href="#use-vcards" id="id60">use_vcards</a></li>
|
|
|
|
+<li><a class="reference internal" href="#visible-toolbar-buttons" id="id61">visible_toolbar_buttons</a></li>
|
|
|
|
+<li><a class="reference internal" href="#xhr-custom-status" id="id62">xhr_custom_status</a></li>
|
|
|
|
+<li><a class="reference internal" href="#xhr-custom-status-url" id="id63">xhr_custom_status_url</a></li>
|
|
|
|
+<li><a class="reference internal" href="#xhr-user-search" id="id64">xhr_user_search</a></li>
|
|
|
|
+<li><a class="reference internal" href="#xhr-user-search-url" id="id65">xhr_user_search_url</a></li>
|
|
</ul>
|
|
</ul>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
@@ -160,8 +160,9 @@
|
|
</ul>
|
|
</ul>
|
|
<p>You can include these two files inside the <em><head></em> element of your website via the <em>script</em> and <em>link</em>
|
|
<p>You can include these two files inside the <em><head></em> element of your website via the <em>script</em> and <em>link</em>
|
|
tags:</p>
|
|
tags:</p>
|
|
-<div class="highlight-python"><pre><link rel="stylesheet" type="text/css" media="screen" href="converse.min.css">
|
|
|
|
-<script src="converse.min.js"></script></pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre><link rel="stylesheet" type="text/css" media="screen" href="converse.min.css">
|
|
|
|
+<script src="converse.min.js"></script>
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>You need to initialize Converse.js with configuration settings particular to
|
|
<p>You need to initialize Converse.js with configuration settings particular to
|
|
your requirements.</p>
|
|
your requirements.</p>
|
|
@@ -169,18 +170,19 @@ your requirements.</p>
|
|
all the available configuration settings.</p>
|
|
all the available configuration settings.</p>
|
|
<p>To do this, put the following inline Javascript code at the
|
|
<p>To do this, put the following inline Javascript code at the
|
|
bottom of your page (after the closing <em></body></em> element).</p>
|
|
bottom of your page (after the closing <em></body></em> element).</p>
|
|
-<div class="highlight-python"><pre>require(['converse'], function (converse) {
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>require(['converse'], function (converse) {
|
|
converse.initialize({
|
|
converse.initialize({
|
|
auto_list_rooms: false,
|
|
auto_list_rooms: false,
|
|
auto_subscribe: false,
|
|
auto_subscribe: false,
|
|
- bosh_service_url: 'https://bind.conversejs.org', // Please use this connection manager only for testing purposes
|
|
|
|
|
|
+ bosh_service_url: 'https://bind.conversejs.org', // Please use this connection manager only for testing purposes
|
|
hide_muc_server: false,
|
|
hide_muc_server: false,
|
|
i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
|
|
i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
|
|
prebind: false,
|
|
prebind: false,
|
|
show_controlbox_by_default: true,
|
|
show_controlbox_by_default: true,
|
|
xhr_user_search: false
|
|
xhr_user_search: false
|
|
});
|
|
});
|
|
-});</pre>
|
|
|
|
|
|
+});
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>The <a class="reference external" href="https://github.com/jcbrand/converse.js/blob/master/index.html">index.html</a> file inside the
|
|
<p>The <a class="reference external" href="https://github.com/jcbrand/converse.js/blob/master/index.html">index.html</a> file inside the
|
|
Converse.js repository serves as a nice usable example of this.</p>
|
|
Converse.js repository serves as a nice usable example of this.</p>
|
|
@@ -267,7 +269,7 @@ the cross-domain restriction is <tt class="docutils literal"><span class="pre">m
|
|
</div>
|
|
</div>
|
|
<div class="section" id="nginx">
|
|
<div class="section" id="nginx">
|
|
<h4>Nginx<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h4>
|
|
<h4>Nginx<a class="headerlink" href="#nginx" title="Permalink to this headline">¶</a></h4>
|
|
-<div class="highlight-python"><pre>http {
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>http {
|
|
server {
|
|
server {
|
|
listen 80
|
|
listen 80
|
|
server_name mysite.com;
|
|
server_name mysite.com;
|
|
@@ -275,16 +277,18 @@ the cross-domain restriction is <tt class="docutils literal"><span class="pre">m
|
|
proxy_pass http://someothersite.com;
|
|
proxy_pass http://someothersite.com;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-}</pre>
|
|
|
|
|
|
+}
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="apache">
|
|
<div class="section" id="apache">
|
|
<h4>Apache<a class="headerlink" href="#apache" title="Permalink to this headline">¶</a></h4>
|
|
<h4>Apache<a class="headerlink" href="#apache" title="Permalink to this headline">¶</a></h4>
|
|
-<div class="highlight-python"><pre><VirtualHost *:80>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre><VirtualHost *:80>
|
|
ServerName mysite.com
|
|
ServerName mysite.com
|
|
RewriteEngine On
|
|
RewriteEngine On
|
|
RewriteRule ^/http-bind(.*) http://someothersite.com/http-bind$1 [P,L]
|
|
RewriteRule ^/http-bind(.*) http://someothersite.com/http-bind$1 [P,L]
|
|
-</VirtualHost></pre>
|
|
|
|
|
|
+</VirtualHost>
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -326,7 +330,7 @@ created.</p>
|
|
XMLHttpRequest call to your server and ask it to return them for you.</p>
|
|
XMLHttpRequest call to your server and ask it to return them for you.</p>
|
|
<p>Below is one example of how this could work. An Ajax call is made to the
|
|
<p>Below is one example of how this could work. An Ajax call is made to the
|
|
relative URL <strong>/prebind</strong> and it expects to receive JSON data back.</p>
|
|
relative URL <strong>/prebind</strong> and it expects to receive JSON data back.</p>
|
|
-<div class="highlight-python"><pre>$.getJSON('/prebind', function (data) {
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>$.getJSON('/prebind', function (data) {
|
|
converse.initialize({
|
|
converse.initialize({
|
|
prebind: true,
|
|
prebind: true,
|
|
bosh_service_url: data.bosh_service_url,
|
|
bosh_service_url: data.bosh_service_url,
|
|
@@ -334,7 +338,8 @@ relative URL <strong>/prebind</strong> and it expects to receive JSON data back.
|
|
sid: data.sid,
|
|
sid: data.sid,
|
|
rid: data.rid
|
|
rid: data.rid
|
|
});
|
|
});
|
|
-);</pre>
|
|
|
|
|
|
+);
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p><strong>Here’s what’s happening:</strong></p>
|
|
<p><strong>Here’s what’s happening:</strong></p>
|
|
<p>The JSON data returned from the Ajax call to example.com/prebind contains the user’s JID (jabber ID), RID, SID and the URL to the
|
|
<p>The JSON data returned from the Ajax call to example.com/prebind contains the user’s JID (jabber ID), RID, SID and the URL to the
|
|
@@ -399,16 +404,17 @@ although there are quite a few other options available as well.</p>
|
|
get your hands dirty and modify Converse.js’s code, so that it calls the
|
|
get your hands dirty and modify Converse.js’s code, so that it calls the
|
|
<tt class="docutils literal"><span class="pre">facebookConnect</span></tt> method of the plugin above.</p>
|
|
<tt class="docutils literal"><span class="pre">facebookConnect</span></tt> method of the plugin above.</p>
|
|
<p>The plugin above gives the following code example for you to meditate upon:</p>
|
|
<p>The plugin above gives the following code example for you to meditate upon:</p>
|
|
-<div class="highlight-python"><pre>connection = new Strophe.Connection("http://localhost:5280/bosh");
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>connection = new Strophe.Connection("http://localhost:5280/bosh");
|
|
connection.facebookConnect(
|
|
connection.facebookConnect(
|
|
- "12345@chat.facebook.com",
|
|
|
|
|
|
+ "12345@chat.facebook.com",
|
|
onConnectFacebook,
|
|
onConnectFacebook,
|
|
300,
|
|
300,
|
|
1,
|
|
1,
|
|
- '5e64a30272af065bd72258c565a03f2f',
|
|
|
|
- '8147a27e4a7f9b55ffc85c2683f9529a',
|
|
|
|
|
|
+ '5e64a30272af065bd72258c565a03f2f',
|
|
|
|
+ '8147a27e4a7f9b55ffc85c2683f9529a',
|
|
FB.getSession().session_key
|
|
FB.getSession().session_key
|
|
-);</pre>
|
|
|
|
|
|
+);
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>The connection is already created inside Converse.js, so the
|
|
<p>The connection is already created inside Converse.js, so the
|
|
<tt class="docutils literal"><span class="pre">facebookConnect</span></tt> method needs to also be called from there.</p>
|
|
<tt class="docutils literal"><span class="pre">facebookConnect</span></tt> method needs to also be called from there.</p>
|
|
@@ -456,12 +462,18 @@ version <a class="reference external" href="https://nodejs.org/download">here</a
|
|
<p>Also make sure you have <tt class="docutils literal"><span class="pre">git</span></tt> installed. <a class="reference external" href="http://git-scm.com/book/en/Getting-Started-Installing-Git">Details</a>.</p>
|
|
<p>Also make sure you have <tt class="docutils literal"><span class="pre">git</span></tt> installed. <a class="reference external" href="http://git-scm.com/book/en/Getting-Started-Installing-Git">Details</a>.</p>
|
|
<p>Once you have <em>Node.js</em> and <em>git</em> installed, run the following command inside the Converse.js
|
|
<p>Once you have <em>Node.js</em> and <em>git</em> installed, run the following command inside the Converse.js
|
|
directory:</p>
|
|
directory:</p>
|
|
-<div class="highlight-python"><pre>make dev</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>make dev
|
|
|
|
+</pre></div>
|
|
|
|
+</div>
|
|
|
|
+<p>Or alternatively, if you don’t have GNU Make:</p>
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>npm install
|
|
|
|
+bower update
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>This will first install the Node.js development tools (like Grunt and Bower)
|
|
<p>This will first install the Node.js development tools (like Grunt and Bower)
|
|
and then use Bower to install all of Converse.js’s front-end dependencies.</p>
|
|
and then use Bower to install all of Converse.js’s front-end dependencies.</p>
|
|
<p>The front-end dependencies are those javascript files on which
|
|
<p>The front-end dependencies are those javascript files on which
|
|
-Converse.js directly depends and which will therefore be loaded in the browser.</p>
|
|
|
|
|
|
+Converse.js directly depends and which will be loaded in the browser.</p>
|
|
<p>If you are curious to know what the different dependencies are:</p>
|
|
<p>If you are curious to know what the different dependencies are:</p>
|
|
<ul>
|
|
<ul>
|
|
<li><dl class="first docutils">
|
|
<li><dl class="first docutils">
|
|
@@ -486,8 +498,9 @@ Converse.js directly depends and which will therefore be loaded in the browser.<
|
|
<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>
|
|
<p>Add the following two lines to the <em><head></em> section of your webpage:</p>
|
|
<p>Add the following two lines to the <em><head></em> section of your webpage:</p>
|
|
-<div class="highlight-python"><pre><link rel="stylesheet" type="text/css" media="screen" href="converse.css">
|
|
|
|
-<script data-main="main" src="components/requirejs/require.js"></script></pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre><link rel="stylesheet" type="text/css" media="screen" href="converse.css">
|
|
|
|
+<script data-main="main" src="components/requirejs/require.js"></script>
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>require.js will then let the main.js file be parsed (because of the <em>data-main</em>
|
|
<p>require.js will then let the main.js file be parsed (because of the <em>data-main</em>
|
|
attribute on the <em>script</em> tag), which will in turn cause converse.js to be
|
|
attribute on the <em>script</em> tag), which will in turn cause converse.js to be
|
|
@@ -518,17 +531,20 @@ the tests are implemented.</p>
|
|
<a class="reference external" href="https://github.com/jcbrand/converse.js/blob/master/tests.html">tests.html</a>
|
|
<a class="reference external" href="https://github.com/jcbrand/converse.js/blob/master/tests.html">tests.html</a>
|
|
in your browser, and the tests will run automatically.</p>
|
|
in your browser, and the tests will run automatically.</p>
|
|
<p>On the command line you can run:</p>
|
|
<p>On the command line you can run:</p>
|
|
-<div class="highlight-python"><pre>grunt test</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>grunt test
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="check-your-code-for-errors-or-bad-habits-by-running-jshint">
|
|
<div class="section" id="check-your-code-for-errors-or-bad-habits-by-running-jshint">
|
|
<h3><a class="toc-backref" href="#id25">Check your code for errors or bad habits by running JSHint</a><a class="headerlink" href="#check-your-code-for-errors-or-bad-habits-by-running-jshint" title="Permalink to this headline">¶</a></h3>
|
|
<h3><a class="toc-backref" href="#id25">Check your code for errors or bad habits by running JSHint</a><a class="headerlink" href="#check-your-code-for-errors-or-bad-habits-by-running-jshint" title="Permalink to this headline">¶</a></h3>
|
|
<p><a class="reference external" href="http://jshint.com">JSHint</a> will do a static analysis of your code and hightlight potential errors
|
|
<p><a class="reference external" href="http://jshint.com">JSHint</a> will do a static analysis of your code and hightlight potential errors
|
|
and/or bad habits.</p>
|
|
and/or bad habits.</p>
|
|
-<div class="highlight-python"><pre>grunt jshint</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>grunt jshint
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>You can run both the tests and jshint in one go by calling:</p>
|
|
<p>You can run both the tests and jshint in one go by calling:</p>
|
|
-<div class="highlight-python"><pre>grunt check</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>grunt check
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -543,7 +559,8 @@ and then <tt class="docutils literal"><span class="pre">grunt</span> <span class
|
|
to bundle them together in a single minified file fit for deployment to a
|
|
to bundle them together in a single minified file fit for deployment to a
|
|
production site.</p>
|
|
production site.</p>
|
|
<p>To minify the Javascript and CSS, run the following command:</p>
|
|
<p>To minify the Javascript and CSS, run the following command:</p>
|
|
-<div class="highlight-python"><pre>grunt minify</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>grunt minify
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>Javascript will be bundled and minified with <a class="reference external" href="http://requirejs.org">require.js</a>‘s optimization tool,
|
|
<p>Javascript will be bundled and minified with <a class="reference external" href="http://requirejs.org">require.js</a>‘s optimization tool,
|
|
using <a class="reference external" href="https://github.com/jrburke/almond">almond</a>.</p>
|
|
using <a class="reference external" href="https://github.com/jrburke/almond">almond</a>.</p>
|
|
@@ -572,13 +589,16 @@ function like so:</p>
|
|
</pre></div>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>After adding the string, you’ll need to regenerate the POT file, like so:</p>
|
|
<p>After adding the string, you’ll need to regenerate the POT file, like so:</p>
|
|
-<div class="highlight-python"><pre>make pot</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>make pot
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>You can then create or update the PO file for a specific language by doing the following:</p>
|
|
<p>You can then create or update the PO file for a specific language by doing the following:</p>
|
|
-<div class="highlight-python"><pre>msgmerge ./locale/de/LC_MESSAGES/converse.po ./locale/converse.pot -U</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>msgmerge ./locale/de/LC_MESSAGES/converse.po ./locale/converse.pot -U
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>To do this for ALL languages, run:</p>
|
|
<p>To do this for ALL languages, run:</p>
|
|
-<div class="highlight-python"><pre>make po</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>make po
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>The resulting PO file is then what gets translated.</p>
|
|
<p>The resulting PO file is then what gets translated.</p>
|
|
<p>If you’ve created a new PO file, please make sure to add the following
|
|
<p>If you’ve created a new PO file, please make sure to add the following
|
|
@@ -595,27 +615,30 @@ a file in JSON format and then put that in a .js file for the specific
|
|
language.</p>
|
|
language.</p>
|
|
<p>To generate JSON from a PO file, you’ll need po2json for node.js. Run the
|
|
<p>To generate JSON from a PO file, you’ll need po2json for node.js. Run the
|
|
following command to install it (npm being the node.js package manager):</p>
|
|
following command to install it (npm being the node.js package manager):</p>
|
|
-<div class="highlight-python"><pre>npm install po2json</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>npm install po2json
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>You can then convert the translations into JSON format:</p>
|
|
<p>You can then convert the translations into JSON format:</p>
|
|
-<div class="highlight-python"><pre>po2json locale/de/LC_MESSAGES/converse.po locale/de/LC_MESSAGES/converse.json</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>po2json locale/de/LC_MESSAGES/converse.po locale/de/LC_MESSAGES/converse.json
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>Now from converse.json paste the data as a value for the “locale_data” key in the
|
|
<p>Now from converse.json paste the data as a value for the “locale_data” key in the
|
|
object in the language’s .js file.</p>
|
|
object in the language’s .js file.</p>
|
|
<p>So, if you are for example translating into German (language code ‘de’), you’ll
|
|
<p>So, if you are for example translating into German (language code ‘de’), you’ll
|
|
create or update the file ./locale/LC_MESSAGES/de.js with the following code:</p>
|
|
create or update the file ./locale/LC_MESSAGES/de.js with the following code:</p>
|
|
-<div class="highlight-python"><pre>(function (root, factory) {
|
|
|
|
- define("de", ['jed'], function () {
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>(function (root, factory) {
|
|
|
|
+ define("de", ['jed'], function () {
|
|
return factory(new Jed({
|
|
return factory(new Jed({
|
|
- "domain": "converse",
|
|
|
|
- "locale_data": {
|
|
|
|
|
|
+ "domain": "converse",
|
|
|
|
+ "locale_data": {
|
|
// Paste the JSON data from converse.json here
|
|
// Paste the JSON data from converse.json here
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}(this, function (i18n) {
|
|
}(this, function (i18n) {
|
|
return i18n;
|
|
return i18n;
|
|
-}));</pre>
|
|
|
|
|
|
+}));
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
<p>making sure to also paste the JSON data as value to the “locale_data” key.</p>
|
|
<p>making sure to also paste the JSON data as value to the “locale_data” key.</p>
|
|
<div class="admonition note">
|
|
<div class="admonition note">
|
|
@@ -636,7 +659,8 @@ those hoops you had to jump through.</p>
|
|
<h3><a class="toc-backref" href="#id31">Problem:</a><a class="headerlink" href="#problem" title="Permalink to this headline">¶</a></h3>
|
|
<h3><a class="toc-backref" href="#id31">Problem:</a><a class="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>
|
|
-<div class="highlight-python"><pre>Uncaught TypeError: Object [object Object] has no method 'xxx' from example.js</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>Uncaught TypeError: Object [object Object] has no method 'xxx' from example.js
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="solution">
|
|
<div class="section" id="solution">
|
|
@@ -699,7 +723,8 @@ called.</p>
|
|
<li><tt class="docutils literal"><span class="pre">callback</span></tt> is the callback method to be called when the event is emitted.</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>
|
|
</ul>
|
|
<p>For example:</p>
|
|
<p>For example:</p>
|
|
-<div class="highlight-python"><pre>converse.on('message', function (messageXML) { ... });</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>converse.on('message', function (messageXML) { ... });
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div></blockquote>
|
|
</div></blockquote>
|
|
</li>
|
|
</li>
|
|
@@ -713,7 +738,8 @@ exactly once.</p>
|
|
<li><tt class="docutils literal"><span class="pre">callback</span></tt> is the callback method to be called when the event is emitted.</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>
|
|
</ul>
|
|
<p>For example:</p>
|
|
<p>For example:</p>
|
|
-<div class="highlight-python"><pre>converse.once('message', function (messageXML) { ... });</pre>
|
|
|
|
|
|
+<div class="highlight-python"><div class="highlight"><pre>converse.once('message', function (messageXML) { ... });
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</div></blockquote>
|
|
</div></blockquote>
|
|
</li>
|
|
</li>
|
|
@@ -769,18 +795,18 @@ exactly once.</p>
|
|
<td>When the roster is updated.</td>
|
|
<td>When the roster is updated.</td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('roster',</span> <span class="pre">function</span> <span class="pre">(items)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('roster',</span> <span class="pre">function</span> <span class="pre">(items)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
</tr>
|
|
</tr>
|
|
-<tr class="row-even"><td><strong>rosterViewUpdated</strong></td>
|
|
|
|
-<td>Whenever the roster view (i.e. the rendered HTML) has changed.</td>
|
|
|
|
-<td><tt class="docutils literal"><span class="pre">converse.on('rosterViewUpdated',</span> <span class="pre">function</span> <span class="pre">(items)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
|
|
-</tr>
|
|
|
|
-<tr class="row-odd"><td><strong>callButtonClicked</strong></td>
|
|
|
|
|
|
+<tr class="row-even"><td><strong>callButtonClicked</strong></td>
|
|
<td>When a call button (i.e. with class .toggle-call) on a chat box has been clicked.</td>
|
|
<td>When a call button (i.e. with class .toggle-call) on a chat box has been clicked.</td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('callButtonClicked',</span> <span class="pre">function</span> <span class="pre">(connection,</span> <span class="pre">model)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('callButtonClicked',</span> <span class="pre">function</span> <span class="pre">(connection,</span> <span class="pre">model)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
</tr>
|
|
</tr>
|
|
-<tr class="row-even"><td><strong>chatBoxOpened</strong></td>
|
|
|
|
|
|
+<tr class="row-odd"><td><strong>chatBoxOpened</strong></td>
|
|
<td>When a chat box has been opened.</td>
|
|
<td>When a chat box has been opened.</td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('chatBoxOpened',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('chatBoxOpened',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
</tr>
|
|
</tr>
|
|
|
|
+<tr class="row-even"><td><strong>chatRoomOpened</strong></td>
|
|
|
|
+<td>When a chat room has been opened.</td>
|
|
|
|
+<td><tt class="docutils literal"><span class="pre">converse.on('chatRoomOpened',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
|
|
+</tr>
|
|
<tr class="row-odd"><td><strong>chatBoxClosed</strong></td>
|
|
<tr class="row-odd"><td><strong>chatBoxClosed</strong></td>
|
|
<td>When a chat box has been closed.</td>
|
|
<td>When a chat box has been closed.</td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('chatBoxClosed',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
<td><tt class="docutils literal"><span class="pre">converse.on('chatBoxClosed',</span> <span class="pre">function</span> <span class="pre">(chatbox)</span> <span class="pre">{</span> <span class="pre">...</span> <span class="pre">});</span></tt></td>
|
|
@@ -904,8 +930,8 @@ current session. Previous sessions however cannot be decrypted.</p>
|
|
<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="enable-message-carbons">
|
|
|
|
-<h3><a class="toc-backref" href="#id48">message_carbons</a><a class="headerlink" href="#enable-message-carbons" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<div class="section" id="message-carbons">
|
|
|
|
+<h3><a class="toc-backref" href="#id48">message_carbons</a><a class="headerlink" href="#message-carbons" 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>Support for <a class="reference external" href="https://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a></p>
|
|
<p>Support for <a class="reference external" href="https://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a></p>
|
|
</div>
|
|
</div>
|
|
@@ -957,8 +983,20 @@ then return a JID (jabber ID), SID (session ID) and RID (Request ID).</p>
|
|
values as <tt class="docutils literal"><span class="pre">jid</span></tt>, <tt class="docutils literal"><span class="pre">sid</span></tt>, <tt class="docutils literal"><span class="pre">rid</span></tt>.</p>
|
|
values as <tt class="docutils literal"><span class="pre">jid</span></tt>, <tt class="docutils literal"><span class="pre">sid</span></tt>, <tt class="docutils literal"><span class="pre">rid</span></tt>.</p>
|
|
<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="roster-groups">
|
|
|
|
+<h3><a class="toc-backref" href="#id55">roster_groups</a><a class="headerlink" href="#roster-groups" title="Permalink to this headline">¶</a></h3>
|
|
|
|
+<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>, converse.js will show any roster groups you might have
|
|
|
|
+configured.</p>
|
|
|
|
+<div class="admonition note">
|
|
|
|
+<p class="first admonition-title">Note</p>
|
|
|
|
+<p class="last">It’s currently not possible to use converse.js to assign contacts to groups.
|
|
|
|
+Converse.js can only show users and groups that were previously configured
|
|
|
|
+elsewhere.</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="#id55">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="#id56">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 “controlbox” refers to the special chatbox containing your contacts roster,
|
|
<p>The “controlbox” refers to the special chatbox containing your contacts roster,
|
|
status widget, chatrooms and other controls.</p>
|
|
status widget, chatrooms and other controls.</p>
|
|
@@ -968,13 +1006,13 @@ the page with class <em>toggle-controlbox</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="#id56">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="#id57">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="storage">
|
|
<div class="section" id="storage">
|
|
-<h3><a class="toc-backref" href="#id57">storage</a><a class="headerlink" href="#storage" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id58">storage</a><a class="headerlink" href="#storage" title="Permalink to this headline">¶</a></h3>
|
|
<p>Default: <tt class="docutils literal"><span class="pre">session</span></tt></p>
|
|
<p>Default: <tt class="docutils literal"><span class="pre">session</span></tt></p>
|
|
<p>Valid options: <tt class="docutils literal"><span class="pre">session</span></tt>, <tt class="docutils literal"><span class="pre">local</span></tt>.</p>
|
|
<p>Valid options: <tt class="docutils literal"><span class="pre">session</span></tt>, <tt class="docutils literal"><span class="pre">local</span></tt>.</p>
|
|
<p>This option determines the type of <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage">storage</a>
|
|
<p>This option determines the type of <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage">storage</a>
|
|
@@ -987,20 +1025,20 @@ it’s closed, the data is cleared.</p>
|
|
<p>Data in localStorage on the other hand is kept indefinitely.</p>
|
|
<p>Data in localStorage on the other hand is kept indefinitely.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="use-otr-by-default">
|
|
<div class="section" id="use-otr-by-default">
|
|
-<h3><a class="toc-backref" href="#id58">use_otr_by_default</a><a class="headerlink" href="#use-otr-by-default" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id59">use_otr_by_default</a><a class="headerlink" href="#use-otr-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>If set to <tt class="docutils literal"><span class="pre">true</span></tt>, Converse.js will automatically try to initiate an OTR (off-the-record)
|
|
<p>If set to <tt class="docutils literal"><span class="pre">true</span></tt>, Converse.js will automatically try to initiate an OTR (off-the-record)
|
|
encrypted chat session every time you open a chat box.</p>
|
|
encrypted chat session every time you open a chat box.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="use-vcards">
|
|
<div class="section" id="use-vcards">
|
|
-<h3><a class="toc-backref" href="#id59">use_vcards</a><a class="headerlink" href="#use-vcards" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id60">use_vcards</a><a class="headerlink" href="#use-vcards" 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>Determines whether the XMPP server will be queried for roster contacts’ VCards
|
|
<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
|
|
or not. VCards contain extra personal information such as your fullname and
|
|
avatar image.</p>
|
|
avatar image.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="visible-toolbar-buttons">
|
|
<div class="section" id="visible-toolbar-buttons">
|
|
-<h3><a class="toc-backref" href="#id60">visible_toolbar_buttons</a><a class="headerlink" href="#visible-toolbar-buttons" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id61">visible_toolbar_buttons</a><a class="headerlink" href="#visible-toolbar-buttons" title="Permalink to this headline">¶</a></h3>
|
|
<p>Default:</p>
|
|
<p>Default:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span>
|
|
<span class="s">'emoticons'</span><span class="p">:</span> <span class="n">true</span><span class="p">,</span>
|
|
<span class="s">'emoticons'</span><span class="p">:</span> <span class="n">true</span><span class="p">,</span>
|
|
@@ -1021,11 +1059,12 @@ avatar image.</p>
|
|
<dt><em>call</em>:</dt>
|
|
<dt><em>call</em>:</dt>
|
|
<dd><p class="first">Provides a button with a picture of a telephone on it.
|
|
<dd><p class="first">Provides a button with a picture of a telephone on it.
|
|
When the call button is pressed, it will emit an event that can be used by a third-party library to initiate a call.</p>
|
|
When the call button is pressed, it will emit an event that can be used by a third-party library to initiate a call.</p>
|
|
-<div class="last highlight-python"><pre>converse.on('callButtonClicked', function(event, data) {
|
|
|
|
- console.log('Strophe connection is', data.connection);
|
|
|
|
- console.log('Bare buddy JID is', data.model.get('jid'));
|
|
|
|
|
|
+<div class="last highlight-python"><div class="highlight"><pre>converse.on('callButtonClicked', function(event, data) {
|
|
|
|
+ console.log('Strophe connection is', data.connection);
|
|
|
|
+ console.log('Bare buddy JID is', data.model.get('jid'));
|
|
// ... Third-party library code ...
|
|
// ... Third-party library code ...
|
|
-});</pre>
|
|
|
|
|
|
+});
|
|
|
|
+</pre></div>
|
|
</div>
|
|
</div>
|
|
</dd>
|
|
</dd>
|
|
</dl>
|
|
</dl>
|
|
@@ -1039,7 +1078,7 @@ When the call button is pressed, it will emit an event that can be used by a thi
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="xhr-custom-status">
|
|
<div class="section" id="xhr-custom-status">
|
|
-<h3><a class="toc-backref" href="#id61">xhr_custom_status</a><a class="headerlink" href="#xhr-custom-status" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id62">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>
|
|
@@ -1049,7 +1088,7 @@ When the call button is pressed, it will emit an event that can be used by a thi
|
|
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="#id62">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="#id63">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>
|
|
@@ -1061,7 +1100,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="#id63">xhr_user_search</a><a class="headerlink" href="#xhr-user-search" title="Permalink to this headline">¶</a></h3>
|
|
|
|
|
|
+<h3><a class="toc-backref" href="#id64">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>
|
|
@@ -1078,7 +1117,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="#id64">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="#id65">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>
|