Allow the URL to the sounds to be configurable.

Made some modifications to the code contributed by @thierrytiti and documented
the change.

Fixes #344
This commit is contained in:
JC Brand 2015-04-25 22:40:55 +02:00
parent 310d2b77f3
commit d6038c7c7b
3 changed files with 22 additions and 13 deletions

View File

@ -262,7 +262,7 @@
message_carbons: false, message_carbons: false,
no_trimming: false, // Set to true for phantomjs tests (where browser apparently has no width) no_trimming: false, // Set to true for phantomjs tests (where browser apparently has no width)
play_sounds: false, play_sounds: false,
play_sounds_path: '/sounds/', sounds_path: '/sounds/',
password: undefined, password: undefined,
authentication: 'login', // Available values are "login", "prebind", "anonymous". authentication: 'login', // Available values are "login", "prebind", "anonymous".
prebind: false, // XXX: Deprecated, use "authentication" instead. prebind: false, // XXX: Deprecated, use "authentication" instead.
@ -368,11 +368,11 @@
this.playNotification = function () { this.playNotification = function () {
var audio; var audio;
if (converse.play_sounds && typeof Audio !== "undefined"){ if (converse.play_sounds && typeof Audio !== "undefined"){
audio = new Audio(converse.play_sounds_path+"msg_received.ogg"); audio = new Audio(converse.sounds_path+"msg_received.ogg");
if (audio.canPlayType('/audio/ogg')) { if (audio.canPlayType('/audio/ogg')) {
audio.play(); audio.play();
} else { } else {
audio = new Audio(converse.play_sounds_path+"msg_received.mp3"); audio = new Audio(converse.sounds_path+"msg_received.mp3");
audio.play(); audio.play();
} }
} }

View File

@ -6,10 +6,12 @@ Changelog
* Add the ability to log in anonymously. [jcbrand] * Add the ability to log in anonymously. [jcbrand]
* Add the ability to log in automatically. [jcbrand] * Add the ability to log in automatically. [jcbrand]
* #344 Enable the path to the sound files to be configured [thierrytiti and jcbrand]
* #370 Unable to register a new user to ejabberd 2.1.11. [gbonvehi] * #370 Unable to register a new user to ejabberd 2.1.11. [gbonvehi]
* #372 Some offline users have a visible empty <dd> in the roster. [floriancargoet] * #372 Some offline users have a visible empty <dd> in the roster. [floriancargoet]
* #374 Fix collapsed group visibility on page load. [floriancargoet] * #374 Fix collapsed group visibility on page load. [floriancargoet]
* #378 Expect full JIDs to be returned via XHR user search [thierrytiti] * #378 Expect full JIDs to be returned via XHR user search [thierrytiti]
* #379 Fix for bower not finding crypto-js-evanvosberg#3.1.2-5 any more. [jcbrand]
0.9.2 (2015-04-09) 0.9.2 (2015-04-09)
------------------ ------------------

View File

@ -70,7 +70,7 @@ A JID (jabber ID), SID (session ID) and RID (Request ID).
Converse.js needs these tokens in order to attach to that same session. Converse.js needs these tokens in order to attach to that same session.
There are two complementary configuration settings to ``prebind``. There are two complementary configuration settings to ``prebind``.
They are :ref:`keepalive` and :ref:`prebind_url`. They are :ref:`keepalive` and `prebind_url`_.
``keepalive`` can be used keep the session alive without having to pass in ``keepalive`` can be used keep the session alive without having to pass in
new RID and SID tokens to ``converse.initialize`` every time you reload the page. new RID and SID tokens to ``converse.initialize`` every time you reload the page.
@ -78,7 +78,7 @@ This removes the need to set up a new BOSH session every time a page loads.
You do however still need to supply the user's JID so that converse.js can be You do however still need to supply the user's JID so that converse.js can be
sure that the session it's resuming is for the right user. sure that the session it's resuming is for the right user.
``prebind_url`` lets you specify a URL which converse.js will call whenever a `prebind_url`_ lets you specify a URL which converse.js will call whenever a
new BOSH session needs to be set up. new BOSH session needs to be set up.
Here's an example of converse.js being initialized with these three options: Here's an example of converse.js being initialized with these three options:
@ -370,17 +370,12 @@ play_sounds
Plays a notification sound when you receive a personal message or when your Plays a notification sound when you receive a personal message or when your
nickname is mentioned in a chat room. nickname is mentioned in a chat room.
Inside the ``./sounds`` directory of the Converse.js repo, you'll see MP3 and Ogg Inside the ``./sounds`` directory of the Converse.js repo you'll see MP3 and Ogg
formatted sound files. We need both, because neither format is supported by all browsers. formatted sound files. We need both, because neither format is supported by all browsers.
Sound files are looked up by convention, not configuration. So to have You can set the URL where the sound files are hosted with the `sounds_path`_
a sound play when a message is received, make sure that your webserver serves option.
it in both formats as ``http://yoursite.com/sounds/msg_received.mp3`` and
``http://yoursite.com/sounds/msg_received.ogg``.
``http://yoursite.com`` should of course be your site's URL.
.. _`prebind_url`:
prebind_url prebind_url
----------- -----------
@ -449,6 +444,18 @@ show_only_online_users
If set to ``true``, only online users will be shown in the contacts roster. If set to ``true``, only online users will be shown in the contacts roster.
Users with any other status (e.g. away, busy etc.) will not be shown. Users with any other status (e.g. away, busy etc.) will not be shown.
sounds_path
-----------
* Default: ``/sounds/``
This option only makes sense in conjunction with the `play_sounds`_ option and
specifies the URL of the sound files to be played (exluding the file names
themselves).
In order to support all browsers we need both an MP3 and an Ogg file. Make sure
to name your files ``msg_received.ogg`` and ``msg_received.mp3``.
storage storage
------- -------