Commit a717481b authored by JC Brand's avatar JC Brand

Merge branch 'master' of github.com:jcbrand/converse.js

parents 1f0fa06a 8f88f35e
{
"presets": [
["env", {
"targets": {
"browsers": ["last 2 versions", "safari >= 10", "IE 11"]
}
}]
]
}
{
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"browser": true,
"jasmine": true
......@@ -15,7 +18,7 @@
"lodash/prefer-lodash-method": [2, {
"ignoreMethods": [
"find", "endsWith", "startsWith", "filter", "reduce",
"map", "replace", "toLower", "split", "trim"
"map", "replace", "toLower", "split", "trim", "forEach", "toUpperCase"
]
}],
"lodash/prefer-startswith": "off",
......@@ -56,7 +59,7 @@
"dot-notation": [
"error",
{
"allowKeywords": false
"allowKeywords": true
}
],
"eol-last": "error",
......
......@@ -9,16 +9,24 @@
.svn/
.project
.pydevproject
.idea
.su?
builds/*
analytics.js
inverse-analytics.js
.idea
# python/buildout
eggs
.Python
build
parts
*.pyc
*.egg-info
dev-jc.html
inverse-dev.html
inverse-dev-jc.html
converse-logs/*.html
# Ruby/Sass/Bundler
......@@ -30,7 +38,6 @@ bourbon
Backbone.Overview
tags
stamp-npm
stamp-bower
stamp-bundler
# Sphinx
......@@ -50,8 +57,5 @@ develop-eggs
.DS_Store
# Builds
dist/*
css/*.map
css/*.min.css
.sv?
/vendor/
......@@ -69,7 +69,9 @@ return /******/ (function(modules) { // webpackBootstrap
}
if (typeof _ == 'function' && typeof _.runInContext == 'function') {
_ = browserConvert(_.runInContext());
// XXX: Customization in order to be able to run both _ and fp in the
// non-AMD usecase.
fp = browserConvert(_.runInContext());
}
module.exports = browserConvert;
......@@ -1037,4 +1039,4 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }
/******/ ])
});
;
\ No newline at end of file
;
# Changelog
## 3.1.1 ((2017-07-12))
## 3.2.0 (2017-08-09)
### New Plugins
- New plugin `converse-disco` which replaces the original support for
[XEP-0030](https://xmpp.org/extensions/xep-0030.html) and which has been
refactored to allow features for multiple entities to be stored.
### New features and improvements
- Add support for Emojis (either native, or via <a href="https://www.emojione.com/">Emojione</a>).
- Add JID validation to the contact add form, the occupant invite form and the login form.
- #896 Consistently use `XMPP username` in user-facing text (instead of JID, Jabber ID etc.).
### New configuration settings
* The `visible_toolbar_buttons.emoticons` configuration option is now changed to `visible_toolbar_buttons.emoji`.
* [use_emojione](https://conversejs.org/docs/html/configurations.html#use-emojione)
is used to determine whether Emojione should be used to render emojis,
otherwise rendering falls back to native browser or OS support.
* [emojione_image_path](https://conversejs.org/docs/html/configurations.html#emojione-image-path)
is used to specify from where Emojione will load images for rendering emojis.
### New events
* ['discoInitialized'](https://conversejs.org/docs/html/development.html#discoInitialized)
* ['afterMessagesFetched'](https://conversejs.org/docs/html/development.html#afterMessagesFetched)
### Code changes
- Removed jQuery from `converse-core`, `converse-vcard` and `converse-roomslist`.
- Remove `jquery.easing` from the full build. Was only being used by the
[conversejs.org](https://conversejs.org) website, which has been updated to not rely on it.
- All promises are now native (or polyfilled) ES2015 Promises instead of jQuery's Deferred.
- #866 Add babel in order to support ES2015 syntax
#### Bugfixes:
- The domain was queried for MAM:2 support, instead of the JID.
- Roster filter is not shown when all groups are collapsed.
- When filtering, contacts in closed groups appear.
- Room name wasn't being updated after changing it in the configuration form.
- Server disco features were "forgotten" after logging out and then logging in again.
- Don't show duplicate sent groupchat messages in Slack chat rooms.
- Bookmark icon shown in the open rooms list when `allow_bookmarks` is to `false`.
- It wasn't possible to add or remove bookmarks via the "Open Rooms" list.
- #879 Text in links are converted to smileys leading to non-clickable links.
- #899: Only touch `stamp-npm` if `npm install` was successful
- #902 `make build` dependends on non-existing files
## 3.1.1 (2017-07-12)
- Use a patched version of [awesomplete](https://github.com/LeaVerou/awesomplete)
which doesn't render suggestions as HTML (possible XSS attack vector). [jcbrand]
......
/** Converse.js
*
* An XMPP chat client that runs in the browser.
*
* Version: 3.2.0-rc
*
* Copyright: JC Brand 2012-2017
* Except for 3rd party dependencies.
* Please refer to the unminified version of this file for details.
*
* You can download it at: https://github.com/jcbrand/converse.js/releases
*/
# You can set these variables from the command line.
UGLIFYJS ?= node_modules/.bin/uglifyjs
BABEL ?= node_modules/.bin/babel
BOURBON_TEMPLATES = ./node_modules/bourbon/app/assets/stylesheets/
BUILDDIR = ./docs
......@@ -60,7 +61,7 @@ serve_bg: dev
########################################################################
## Translation machinery
GETTEXT = xgettext --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot src/*.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.1.0 -c
GETTEXT = xgettext --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot src/*.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.2.0-rc -c
.PHONY: pot
pot:
......@@ -79,6 +80,7 @@ po2json:
.PHONY: release
release:
$(SED) -ri s/Version:\ [0-9]\+\.[0-9]\+\.[0-9]\+/Version:\ $(VERSION)/ COPYRIGHT
$(SED) -ri s/Version:\ [0-9]\+\.[0-9]\+\.[0-9]\+/Version:\ $(VERSION)/ src/start.frag
$(SED) -ri s/Project-Id-Version:\ Converse\.js\ [0-9]\+\.[0-9]\+\.[0-9]\+/Project-Id-Version:\ Converse.js\ $(VERSION)/ locale/converse.pot
$(SED) -ri s/\"version\":\ \"[0-9]\+\.[0-9]\+\.[0-9]\+\"/\"version\":\ \"$(VERSION)\"/ bower.json
......@@ -98,8 +100,7 @@ release:
## Install dependencies
stamp-npm: package.json
npm install
touch stamp-npm
npm install && touch stamp-npm
stamp-bundler: Gemfile
mkdir -p .bundle
......@@ -109,7 +110,7 @@ stamp-bundler: Gemfile
.PHONY: clean
clean:
-rm -f stamp-npm stamp-bundler
-rm -f stamp-npm stamp-bundler package-lock.json
-rm -rf node_modules .bundle
.PHONY: dev
......@@ -147,49 +148,66 @@ css/mobile.min.css:: stamp-npm sass/*
.PHONY: watch
watch: stamp-bundler
$(SASS) --watch -I ./node_modules/bourbon/app/assets/stylesheets/ sass/converse.scss:css/converse.css sass/_muc_embedded.scss:css/converse-muc-embedded.css
$(SASS) --watch -I ./node_modules/bourbon/app/assets/stylesheets/ sass/converse/converse.scss:css/converse.css sass/_muc_embedded.scss:css/converse-muc-embedded.css sass/inverse/inverse.scss:css/inverse.css
.PHONY: watchjs
watchjs: stamp-npm
$(BABEL) --source-maps --watch=./src --out-dir=./build
$(BABEL) --source-maps --watch=./src --out-dir=./builds
.PHONY: transpile
transpile: stamp-npm
$(BABEL) --source-maps --out-dir=./builds ./src
BUILDS = dist/converse.js \
dist/converse.min.js \
dist/inverse.js \
dist/converse-esnext.js \
dist/converse-esnext.min.js \
dist/inverse.js \
dist/inverse.min.js \
dist/converse-mobile.js \
dist/converse-mobile.min.js \
dist/converse-muc-embedded.js \
dist/converse-muc-embedded.min.js \
dist/converse-no-jquery.js \
dist/converse-mobile.js \
dist/converse-mobile.min.js \
dist/converse-muc-embedded.js \
dist/converse-muc-embedded.min.js \
dist/converse-no-jquery.js \
dist/converse-no-jquery.min.js \
dist/converse-no-dependencies.min.js \
dist/converse-no-dependencies.js
dist/converse.min.js: src locale node_modules *.js
$(RJS) -o src/build.js include=converse out=dist/converse.min.js
dist/converse.js: src locale node_modules *.js
dist/converse.js: transpile src locale node_modules *.js
$(RJS) -o src/build.js include=converse out=dist/converse.js optimize=none
dist/inverse.js: src locale node_modules *.js
dist/converse.min.js: src locale node_modules *.js
$(UGLIFYJS) --verbose dist/converse.js -o dist/converse.min.js
cat COPYRIGHT > tmpfile && cat dist/converse.min.js >> tmpfile && mv tmpfile dist/converse.min.js
dist/converse-esnext.js: src locale node_modules *.js transpile
$(RJS) -o src/build-esnext.js include=converse out=dist/converse-esnext.js optimize=none
dist/converse-esnext.min.js: src locale node_modules *.js transpile
$(UGLIFYJS) --verbose dist/converse-esnext.js -o dist/converse-esnext.min.js
cat COPYRIGHT > tmpfile && cat dist/converse-esnext.min.js >> tmpfile && mv tmpfile dist/converse-esnext.min.js
dist/inverse.js: transpile src locale node_modules *.js
$(RJS) -o src/build-inverse.js include=inverse out=dist/inverse.js optimize=none
dist/inverse.min.js: src locale node_modules *.js
$(RJS) -o src/build-inverse.js include=inverse out=dist/inverse.min.js
dist/converse-no-jquery.min.js: src locale node_modules *.js
$(RJS) -o src/build.js include=converse wrap.endFile=end-no-jquery.frag exclude=jquery exclude=jquery.noconflict out=dist/converse-no-jquery.min.js
dist/converse-no-jquery.js: src locale node_modules *.js
$(UGLIFYJS) --verbose dist/inverse.js -o dist/inverse.min.js
cat COPYRIGHT > tmpfile && cat dist/inverse.min.js >> tmpfile && mv tmpfile dist/inverse.min.js
dist/converse-no-jquery.js: transpile src locale node_modules *.js
$(RJS) -o src/build.js include=converse wrap.endFile=end-no-jquery.frag exclude=jquery exclude=jquery.noconflict out=dist/converse-no-jquery.js optimize=none
dist/converse-no-dependencies.min.js: src locale node_modules *.js
$(RJS) -o src/build-no-dependencies.js
dist/converse-no-dependencies.js: src locale node_modules *.js
dist/converse-no-jquery.min.js: src locale node_modules *.js transpile
$(UGLIFYJS) --verbose dist/converse-no-jquery.js -o dist/converse-no-jquery.min.js
cat COPYRIGHT > tmpfile && cat dist/converse-no-jquery.min.js >> tmpfile && mv tmpfile dist/converse-no-jquery.min.js
dist/converse-no-dependencies.js: transpile src locale node_modules *.js
$(RJS) -o src/build-no-dependencies.js optimize=none out=dist/converse-no-dependencies.js
dist/converse-mobile.min.js: src locale node_modules *.js
$(RJS) -o src/build.js paths.converse=src/converse-mobile include=converse out=dist/converse-mobile.min.js
dist/converse-mobile.js: src locale node_modules *.js
dist/converse-no-dependencies.min.js: src locale node_modules *.js
$(UGLIFYJS) --verbose dist/converse-no-dependencies.js -o dist/converse-no-dependencies.min.js
cat COPYRIGHT > tmpfile && cat dist/converse-no-dependencies.min.js >> tmpfile && mv tmpfile dist/converse-no-dependencies.min.js
dist/converse-mobile.js: transpile src locale node_modules *.js
$(RJS) -o src/build.js paths.converse=src/converse-mobile include=converse out=dist/converse-mobile.js optimize=none
dist/converse-muc-embedded.min.js: src locale node_modules *.js
$(RJS) -o src/build.js paths.converse=src/converse-embedded include=converse out=dist/converse-muc-embedded.min.js
dist/converse-muc-embedded.js: src locale node_modules *.js
dist/converse-mobile.min.js: src locale node_modules *.js
$(UGLIFYJS) --verbose dist/converse-mobile.js -o dist/converse-mobile.min.js
cat COPYRIGHT > tmpfile && cat dist/converse-mobile.min.js >> tmpfile && mv tmpfile dist/converse-mobile.min.js
dist/converse-muc-embedded.js: transpile src locale node_modules *.js
$(RJS) -o src/build.js paths.converse=src/converse-embedded include=converse out=dist/converse-muc-embedded.js optimize=none
dist/converse-muc-embedded.min.js: src locale node_modules *.js
$(UGLIFYJS) --verbose dist/converse-muc-embedded.js -o dist/converse-muc-embedded.min.js
cat COPYRIGHT > tmpfile && cat dist/converse-muc-embedded.min.js >> tmpfile && mv tmpfile dist/converse-muc-embedded.min.js
.PHONY: jsmin
jsmin: $(BUILDS)
......@@ -198,7 +216,7 @@ jsmin: $(BUILDS)
dist:: build
.PHONY: build
build:: dev css
build:: dev css transpile
$(GRUNT) json
make jsmin
......
{
"name": "converse.js",
"description": "Web-based XMPP/Jabber chat client written in javascript",
"version": "3.1.1",
"license": "MPL-2.0",
"devDependencies": {},
"dependencies": {},
"exportsOverride": {},
"ignore": [
"docs",
"mockup"
]
}
This directory exists as a location for intermediate files generated by the
Babel compiler, before they're bundled into distribution bundles in the
`./dist/` directory.
This diff is collapsed.
This diff is collapsed.
......@@ -344,5 +344,5 @@ ul.features {
.sponsors {
clear: both;
font-size: 1.1em;
padding: 6em 0 7em 0;
padding: 2em 0 7em 0;
}
......@@ -52,9 +52,10 @@
<script type="text/javascript" src="../dist/locales.js"></script>
<!-- END I18N -->
<script type="text/javascript" src="../node_modules/awesomplete/awesomplete.js"></script>
<script type="text/javascript" src="../node_modules/awesomplete-avoid-xss/awesomplete.js"></script>
<script type="text/javascript" src="../node_modules/moment/min/moment-with-locales.js"></script>
<script type="text/javascript" src="../3rdparty/lodash.fp.js"></script>
<script src="../dist/converse-no-dependencies.js"></script>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-custom">
......@@ -80,16 +81,14 @@
</body>
<script>
require(['converse'], function (converse) {
converse.initialize({
bosh_service_url: 'https://conversejs.org/http-bind/', // Please use this connection manager only for testing purposes
i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
prebind: false,
show_controlbox_by_default: true,
debug: true,
roster_groups: true,
keepalive: true
});
converse.initialize({
bosh_service_url: 'https://conversejs.org/http-bind/', // Please use this connection manager only for testing purposes
i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
prebind: false,
show_controlbox_by_default: true,
debug: true,
roster_groups: true,
keepalive: true
});
</script>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,7 +2,7 @@
{% extends "!layout.html" %}
{# Custom CSS overrides #}
{% set bootswatch_css_custom = ['_static/style.css', "../../css/converse.min.css"] %}
{% set css_files = css_files + ['_static/style.css', "../../css/converse.min.css"] %}
{% set script_files = script_files + ["../../dist/converse.min.js", "../../analytics.js"] %}
{# Add some extra stuff before and use existing with 'super()' call. #}
......
......@@ -48,9 +48,9 @@ copyright = u'2014, JC Brand'
# built documents.
#
# The short X.Y version.
version = '3.1.1'
version = '3.2.0-rc'
# The full version, including alpha/beta/rc tags.
release = '3.1.1'
release = '3.2.0-rc'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
......@@ -19,7 +19,7 @@ on your website.
You'll most likely want to call the *initialize* method in your HTML page. For
an example of how this is done, please see the bottom of the *./index.html* page.
Please refer to the `Configuration variables`_ section below for info on
Please refer to the `Configuration settings`_ section below for info on
all the available configuration settings.
After you have configured *Converse.js*, you'll have to regenerate the minified
......@@ -516,6 +516,16 @@ domain_placeholder
The placeholder text shown in the domain input on the registration form.
emojione_image_path
-------------------
* Default: ``'https://cdn.jsdelivr.net/emojione/assets/' + emojioneVersion + '/png/'``
When `use_emojione`_ is set to ``true``, then this is the URL from where PNG image files for
displaying emojis will be fetched.
expose_rid_and_sid
------------------
......@@ -993,6 +1003,17 @@ Notification will be shown in the following cases:
Requires the `src/converse-notification.js` plugin.
use_emojione
------------
* Default: ``true``
Determines whether `Emojione <https://www.emojione.com/>`_ should be used to
render emojis. If set to ``false``, then rendering support will fall back to
the operating system or browser (which might not support emoji).
See also `emojione_image_path`_.
show_only_online_users
----------------------
......@@ -1088,7 +1109,7 @@ loaded), then an error will be raised.
Otherwise a message will simply be logged and the override instruction ignored.
The Converse.js plugins architecture can have an ``optional_dependencies``
The Converse.js plugins architecture can have an :ref:`optional_dependencies`
plugin attribute. This enables you to specify an array of optional, or
"soft", dependencies. Converse.js (more specifically,
`pluggable.js <https://jcbrand.github.io/pluggable.js/>`_) will try to first
......@@ -1154,7 +1175,7 @@ visible_toolbar_buttons
{
call: false,
clear: true,
emoticons: true,
emoji: true,
toggle_occupants: true
}
......@@ -1173,9 +1194,9 @@ Allows you to show or hide buttons on the chat boxes' toolbars.
});
* *clear*:
Provides a button for clearing messages from a chat box.
* *emoticons*:
Enables rendering of emoticons and provides a toolbar button for choosing them.
* toggle_occupants:
* *emoji*:
Enables rendering of emoji and provides a toolbar button for choosing them.
* *toggle_occupants*:
Shows a button for toggling (i.e. showing/hiding) the list of occupants in a chat room.
.. _`websocket-url`:
......
......@@ -188,16 +188,15 @@ two important ways:
Converse.js has the following promises:
* cachedRoster
* chatBoxesFetched
* connected
* pluginsInitialized
* roster
* rosterContactsFetched
* rosterGroupsFetched
* rosterInitialized
* statusInitialized
* roomsPanelRendered (only via the `converse-muc` plugin)
* :ref:`cachedRoster`
* :ref:`chatBoxesFetched`
* :ref:`pluginsInitialized`
* :ref:`roster`
* :ref:`rosterContactsFetched`
* :ref:`rosterGroupsFetched`
* :ref:`rosterInitialized`
* :ref:`statusInitialized`
* :ref:`roomsPanelRendered` (only via the `converse-muc` plugin)
Below is an example from `converse-muc.js <https://github.com/jcbrand/converse.js/blob/master/src/converse-muc.js>`_
where the `rosterContactsFetched` promise is waited on. The method
......@@ -903,22 +902,24 @@ The **promises** grouping
-------------------------
Converse.js and its plugins emit various events which you can listen to via the
:refs:`listen-grouping`.
:ref:`listen-grouping`.
These events can also be turned into promises, and by default some already
are.
Some of these events are also available as `ES2015 Promises <http://es6-features.org/#PromiseUsage>`_,
although not all of them could logically act as promises, since some events
might be fired multpile times whereas promises are to be resolved (or
rejected) only once.
The core events, which are also promises are:
* cachedRoster
* chatBoxesFetched
* connected
* pluginsInitialized
* roster
* rosterContactsFetched
* rosterGroupsFetched
* rosterInitialized
* statusInitialized
* :ref:`cachedRoster`
* :ref:`chatBoxesFetched`
* :ref:`pluginsInitialized`
* :ref:`roster`
* :ref:`rosterContactsFetched`
* :ref:`rosterGroupsFetched`
* :ref:`rosterInitialized`
* :ref:`statusInitialized`
* :ref:`roomsPanelRendered` (only via the `converse-muc` plugin)
The various plugins might also provide promises, and they do this by using the
``promises.add`` api method.
......
......@@ -4,18 +4,41 @@
.. _`events-API`:
Events emitted by converse.js
=============================
Events and promises
===================
.. contents:: Table of Contents
:depth: 2
:local:
Converse.js and its plugins emit various events which you can listen to via the
:ref:`listen-grouping`.
.. note:: see also :ref:`listen-grouping` above.
Some of these events are also available as `ES2015 Promises <http://es6-features.org/#PromiseUsage>`_,
although not all of them could logically act as promises, since some events
might be fired multpile times whereas promises are to be resolved (or
rejected) only once.
Event Types
-----------
The core events, which are also promises are:
* `cachedRoster`_
* `chatBoxesFetched`_
* `pluginsInitialized`_
* `roster`_
* `rosterContactsFetched`_
* `rosterGroupsFetched`_
* `rosterInitialized`_
* `statusInitialized`_
* `roomsPanelRendered`_ (only via the `converse-muc` plugin)
For more info on how to use (or add promises), you can read the
:ref:`promises-grouping` in the API documentation.
Below we will now list all events and also specify whether they are available
as promises.
List of Events (and promises)
-----------------------------
Hooking into events that Converse.js emits is a great way to extend or
customize its functionality.
......@@ -27,6 +50,22 @@ Refer to the :ref:`whitelisted_plugins` setting.
Here follows the different events that are emitted:
afterMessagesFetched
~~~~~~~~~~~~~~~~~~~~
Emitted whenever a chat box has fetched its messages from ``sessionStorage`` and
**NOT** from the server.
This event is listened to by the ``converse-mam`` plugin to know when it can
fetch archived messages from the server.
The event handler is passed the ``Backbone.View`` instance of the relevant chat
box.
``_converse.on('afterMessagesFetched', function (chatboxview) { ... });``
.. _`cachedRoster`:
cachedRoster
~~~~~~~~~~~~
......@@ -34,6 +73,14 @@ The contacts roster has been retrieved from the local cache (`sessionStorage`).
``_converse.on('cachedRoster', function (items) { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('cachedRoster').then(function () {
// Your code here...
});
See also the `roster`_ event further down.
callButtonClicked
......@@ -43,6 +90,26 @@ When a call button (i.e. with class .toggle-call) on a chat box has been clicked
``_converse.on('callButtonClicked', function (connection, model) { ... });``
.. _`chatBoxesFetched`:
chatBoxesFetched
~~~~~~~~~~~~~~~~
Any open chat boxes (from this current session) has been retrieved from the local cache (`sessionStorage`).
You should wait for this event or promise before attempting to do things
related to open chat boxes.
``_converse.on('chatBoxesFetched', function (items) { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('chatBoxesFetched').then(function () {
// Your code here...
});
chatBoxInitialized
~~~~~~~~~~~~~~~~~~
......@@ -121,6 +188,15 @@ When a chat buddy's custom status message has changed.
``_converse.on('contactStatusMessageChanged', function (data) { ... });``
discoInitialized
~~~~~~~~~~~~~~~~
Emitted once the ``converse-disco`` plugin has been initialized and the
``_converse.disco_entities`` collection will be available and populated with at
least the service discovery features of the user's own server.
``_converse.on('discoInitialized', function () { ... });``
disconnected
~~~~~~~~~~~~
......@@ -151,7 +227,7 @@ Once a message has been added to a chat box. The passed in data object contains
a `chatbox` attribute, referring to the chat box receiving the message, as well
as a `message` attribute which refers to the Message model.
.. code-block:: javascript
.. code-block:: javascript
_converse.on('messageAdded', function (data) {
// The message is at `data.message`
......@@ -172,10 +248,12 @@ When keepalive=true but there aren't any stored prebind tokens.
``_converse.on('noResumeableSession', function () { ... });``
.. _`pluginsInitialized`:
pluginsInitialized
~~~~~~~~~~~~~~~~~~
Once all plugins have been initialized. This is a useful event if you want to
Emitted once all plugins have been initialized. This is a useful event if you want to
register event handlers but would like your own handlers to be overridable by
plugins. In that case, you need to first wait until all plugins have been
initialized, so that their overrides are active. One example where this is used
......@@ -183,6 +261,14 @@ is in `converse-notifications.js <https://github.com/jcbrand/converse.js/blob/ma
``_converse.on('pluginsInitialized', function () { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('pluginsInitialized').then(function () {
// Your code here...
});
reconnecting
~~~~~~~~~~~~
......@@ -212,6 +298,8 @@ After the user has sent out a direct invitation, to a roster contact, asking the
``_converse.on('roomInvite', function (data) { ... });``
.. _`roomsPanelRendered`:
roomsPanelRendered
~~~~~~~~~~~~~~~~~~
......@@ -221,6 +309,16 @@ render themselves in that panel.
``_converse.on('roomsPanelRendered', function (data) { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('roomsPanelRendered').then(function () {
// Your code here...
});
.. _`roster`:
roster
~~~~~~
......@@ -228,15 +326,35 @@ When the roster has been received from the XMPP server.
``_converse.on('roster', function (items) { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('roster').then(function () {
// Your code here...
});
See also the `cachedRoster` event further up, which gets called instead of
`roster` if its already in `sessionStorage`.
.. _`rosterContactsFetched`:
rosterContactsFetched
~~~~~~~~~~~~~~~~~~~~~
Triggered once roster contacts have been fetched. Used by the
`converse-rosterview.js` plugin to know when it can start to show the roster.
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('rosterContactsFetched').then(function () {
// Your code here...
});
.. _`rosterGroupsFetched`:
rosterGroupsFetched
~~~~~~~~~~~~~~~~~~~
......@@ -244,6 +362,16 @@ Triggered once roster groups have been fetched. Used by the
`converse-rosterview.js` plugin to know when it can start alphabetically
position roster groups.
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('rosterGroupsFetched').then(function () {
// Your code here...
});
.. _`rosterInitialized`:
rosterInitialized
~~~~~~~~~~~~~~~~~
......@@ -252,6 +380,14 @@ but not yet populated with data.
This event is useful when you want to create views for these collections.
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('rosterInitialized').then(function () {
// Your code here...
});
rosterPush
~~~~~~~~~~
......@@ -266,13 +402,23 @@ Similar to `rosterInitialized`, but instead pertaining to reconnection. This
event indicates that the Backbone collections representing the roster and its
groups are now again available after converse.js has reconnected.
.. _`statusInitialized`:
statusInitialized
~~~~~~~~~~~~~~~~~
When own chat status has been initialized.
When the user's own chat status has been initialized.
``_converse.on('statusInitialized', function (status) { ... });``
Also available as an `ES2015 Promise <http://es6-features.org/#PromiseUsage>`_:
.. code-block:: javascript
_converse.api.waitUntil('statusInitialized').then(function () {
// Your code here...
});
statusChanged
~~~~~~~~~~~~~
......
......@@ -167,6 +167,8 @@ A better approach is to listen to the events emitted by Converse.js, and to add
your code in event handlers. This is however not always possible, in which case
the overrides are a powerful tool.
.. _`optional_dependencies`:
Optional plugin dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......@@ -189,7 +191,7 @@ In this case, you can't specify the plugin as a dependency in the ``define``
statement at the top of the plugin, since it might not always be available,
which would cause ``require.js`` to throw an error.
To resolve this problem we thave the ``optional_dependencies`` Array attribute.
To resolve this problem we have the ``optional_dependencies`` Array attribute.
With this you can specify those dependencies which need to be loaded before
your plugin, if they exist. If they don't exist, they won't be ignored.
......
......@@ -15,7 +15,8 @@
<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.conversejs.org/3.1.0/css/converse.min.css" />
<script type="text/javascript" src="analytics.js"></script>
<noscript><p><img src="//stats.opkode.com/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
<![if gte IE 9]>
<script src="src/website.js"></script>
<![if gte IE 11]>
<script src="https://cdn.conversejs.org/3.1.0/dist/converse.min.js"></script>
<![endif]>
</head>
......@@ -223,37 +224,6 @@
</body>
<script>
(function () {
/* XXX: This function initializes jquery.easing for the https://conversejs.org
* website. This code is only useful in the context of the converse.js
* website and converse.js itself is NOT dependent on it.
*/
var $ = converse.env.jQuery;
$.extend( $.easing, {
easeInOutExpo: function (x, t, b, c, d) {
if (t==0) return b;
if (t==d) return b+c;
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
});
$(window).scroll(function() {
if ($(".navbar").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse");
} else {
$(".navbar-fixed-top").removeClass("top-nav-collapse");
}
});
//jQuery for page scrolling feature - requires jQuery Easing plugin
$('.page-scroll a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 700, 'easeInOutExpo');
event.preventDefault();
});
})();
converse.initialize({
// Please use this connection manager only for testing purposes
bosh_service_url: 'https://conversejs.org/http-bind/',
......
......@@ -8,7 +8,7 @@
<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.conversejs.org/3.1.0/css/inverse.min.css" />
<script type="text/javascript" src="inverse-analytics.js"></script>
<noscript><p><img src="//stats.opkode.com/piwik.php?idsite=5" style="border:0;" alt="" /></p></noscript>
<script src="https://cdn.conversejs.org/3.1.0/dist/inverse.min.js"></script>
<script src="dist/inverse.min.js"></script>
</head>
<body>
<div class="content">
......@@ -20,7 +20,7 @@
converse.initialize({
authentication: 'login',
auto_away: 300,
blacklisted_plugins: ['converse-minimize', 'converse-dragresize', 'converse-otr'],
blacklisted_plugins: ['converse-minimize', 'converse-dragresize'],
whitelisted_plugins: ['converse-inverse', 'converse-singleton'],
auto_reconnect: true,
bosh_service_url: 'https://conversejs.org/http-bind/', // Please use this connection manager only for testing purposes
......
......@@ -31,6 +31,10 @@
null,
"Kanseleer"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Is u seker u wil die boekmerk \"%1$s\" verwyder?"
],
"Sorry, something went wrong while trying to save your bookmark.": [
null,
"Jammer, 'n fout het voorgekom tydens storing van u boekmerk."
......@@ -39,10 +43,6 @@
null,
"Klik om die boekmerklys te skakel"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Is u seker u wil die boekmerk \"%1$s\" verwyder?"
],
"Remove this bookmark": [
null,
"Verwyder hierdie boekmerk"
......@@ -255,54 +255,6 @@
null,
"Geen gebruikers gevind"
],
"Click to add as a chat contact": [
null,
"Klik om as kletskontak by te voeg"
],
"Toggle chat": [
null,
"Klets"
],
"Reconnecting": [
null,
"Herkonnekteer"
],
"The connection has dropped, attempting to reconnect.": [
null,
"Die konneksie is onderbreek, probeer tans tans om te herkonnekteer."
],
"Connection error": [
null,
"Fout tydens verbinding"
],
"An error occurred while connecting to the chat server.": [
null,
"A fout het voorgekom tydens verbinding met die kletsbediener."
],
"Connecting": [
null,
"Verbind tans"
],
"Authenticating": [
null,
"Besig om te bekragtig"
],
"Authentication Failed": [
null,
"Bekragtiging het gefaal"
],
"Connection failed": [
null,
"Verbinding het gefaal"
],
"An error occurred while connecting to the chat server: ": [
null,
"A fout het voorgekom tydens verbinding met die kletsbediener: "
],
"Sorry, there was an error while trying to add ": [
null,
"Jammer, 'n ander fout het voorgekom tydens byvoeging. "
],
"This client does not allow presence subscriptions": [
null,
"Hierdie klient laat nie beskikbaarheidsinskrywings toe nie"
......@@ -431,9 +383,9 @@
null,
"Verskuil die lys van deelnemers"
],
"Error: the \"": [
"${command}": [
null,
"Fout: die \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -535,9 +487,9 @@
null,
"Die gegewe rede is: \"%1$s\"."
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"Die gegewe rede is: \""
""
],
" has left the room. \"": [
null,
......@@ -587,10 +539,6 @@
null,
"Onderwerp deur %1$s bygewerk na: %2$s"
],
"Click to mention ": [
null,
"Klik om te noem "
],
"This user is a moderator.": [
null,
"Hierdie gebruiker is 'n moderator."
......@@ -683,10 +631,6 @@
null,
"Hierdie kletskamer word gemodereer"
],
"All other room occupants can see your Jabber ID": [
null,
"Alle ander deelnemers can u Jabber ID sien"
],
"Anyone can join this room": [
null,
"Enige iemand kan hierdie kletskamer binnekom"
......@@ -703,10 +647,6 @@
null,
"Hierdie kletskamer is publiek opspoorbaar"
],
"Only moderators can see your Jabber ID": [
null,
"Slegs moderators kan u Jabber ID sien"
],
"This room will disappear once the last person leaves": [
null,
"Hierdie kletskamer sal verdwyn sodra die laaste persoon dit verlaat"
......@@ -727,6 +667,10 @@
null,
"U mag na keuse 'n boodskap insluit, om bv. die rede vir die uitnodiging te staaf."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Kamer naam"
......@@ -751,17 +695,13 @@
null,
"Geen kletskamers op %1$s"
],
"Rooms on %1$s": [
null,
"Kletskamers op %1$s"
],
"Description:": [
null,
"Beskrywing:"
],
"Server:": [
"Room Address (JID):": [
null,
"Bediener:"
""
],
"Occupants:": [
null,
......@@ -987,10 +927,6 @@
null,
"Suksesvol geregistreer"
],
"Return": [
null,
"Terug"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
"Die verskaffer het u registrasieversoek verwerp. Kontrolleer asb. jou gegewe waardes vir korrektheid."
......@@ -1079,10 +1015,6 @@
null,
"Is u seker u wil hierdie gespreksmaat verwyder?"
],
"Sorry, there was an error while trying to remove ": [
null,
"Jammer, 'n fout het voorgekom tydens die verwydering van "
],
"Are you sure you want to decline this contact request?": [
null,
"Is u seker dat u hierdie persoon se versoek wil afkeur?"
......
This diff is collapsed.
......@@ -235,34 +235,6 @@
null,
"No s'ha trobat cap usuari"
],
"Click to add as a chat contact": [
null,
"Feu clic per afegir com a contacte del xat"
],
"Toggle chat": [
null,
"Canvia de xat"
],
"The connection has dropped, attempting to reconnect.": [
null,
""
],
"Connecting": [
null,
"S'està establint la connexió"
],
"Authenticating": [
null,
"S'està efectuant l'autenticació"
],
"Authentication Failed": [
null,
"Error d'autenticació"
],
"Sorry, there was an error while trying to add ": [
null,
"S'ha produït un error en intentar afegir "
],
"This client does not allow presence subscriptions": [
null,
"Aquest client no admet les subscripcions de presència"
......@@ -343,9 +315,9 @@
null,
"Amaga la llista d'ocupants"
],
"Error: the \"": [
"${command}": [
null,
"Error: el \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -427,9 +399,9 @@
null,
"Envia"
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"El motiu indicat és: \""
""
],
" has left the room. \"": [
null,
......@@ -495,7 +467,7 @@
null,
""
],
"All other room occupants can see your Jabber ID": [
"All other room occupants can see your XMPP username": [
null,
""
],
......@@ -503,7 +475,7 @@
null,
""
],
"Only moderators can see your Jabber ID": [
"Only moderators can see your XMPP username": [
null,
""
],
......@@ -519,6 +491,10 @@
null,
"Teniu l'opció d'incloure un missatge per explicar el motiu de la invitació."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Nom de la sala"
......@@ -543,14 +519,14 @@
null,
"No hi ha cap sala a %1$s"
],
"Rooms on %1$s": [
null,
"Sales a %1$s"
],
"Description:": [
null,
"Descripció:"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Ocupants:"
......@@ -771,10 +747,6 @@
null,
"Registre correcte"
],
"Return": [
null,
"Torna"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
"El proveïdor ha rebutjat l'intent de registre. Comproveu que els valors que heu introduït siguin correctes."
......@@ -863,10 +835,6 @@
null,
"Segur que voleu eliminar aquest contacte?"
],
"Sorry, there was an error while trying to remove ": [
null,
"S'ha produït un error en intentar eliminar "
],
"Are you sure you want to decline this contact request?": [
null,
"Segur que voleu rebutjar aquesta sol·licitud de contacte?"
......
This diff is collapsed.
This diff is collapsed.
......@@ -31,6 +31,10 @@
null,
"Abbrechen"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Wollen Sie dieses Lesezeichen wirklich entfernen \"%1$s\"?"
],
"Sorry, something went wrong while trying to save your bookmark.": [
null,
"Etwas ging beim Versuch des Abspeicherns des Lesezeichens schief."
......@@ -39,10 +43,6 @@
null,
"Zum Aus-/Einklappen klicken"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Wollen Sie dieses Lesezeichen wirklich entfernen \"%1$s\"?"
],
"Remove this bookmark": [
null,
"Dieses Lesezeichen entfernen"
......@@ -255,54 +255,6 @@
null,
"Keine Benutzer gefunden"
],
"Click to add as a chat contact": [
null,
"Hier klicken um als Kontakt hinzuzufügen"
],
"Toggle chat": [
null,
"Chat ein-/ausblenden"
],
"Reconnecting": [
null,
"Verbindung wiederherstellen"
],
"The connection has dropped, attempting to reconnect.": [
null,
"Die Verbindung wurde unterbrochen. Versuche neu zu verbinden."
],
"Connection error": [
null,
"Verbindungsfehler"
],
"An error occurred while connecting to the chat server.": [
null,
"Beim Speichern des Formulars ist ein Fehler aufgetreten."
],
"Connecting": [
null,
"Verbindungsaufbau"
],
"Authenticating": [
null,
"Authentifizierung"
],
"Authentication Failed": [
null,
"Authentifizierung gescheitert"
],
"Connection failed": [
null,
"Verbindung fehlgeschlagen"
],
"An error occurred while connecting to the chat server: ": [
null,
"Es trat ein Fehler während des Verbindungsvorgangs mit dem Chat-Server auf: "
],
"Sorry, there was an error while trying to add ": [
null,
"Entschuldige, es kam zu einem Fehler bei der Hinzufügung von "
],
"This client does not allow presence subscriptions": [
null,
"Dieser Kontakt erlaubt die Abonnieren des Status nicht"
......@@ -431,9 +383,9 @@
null,
"Teilnehmerliste ausblenden"
],
"Error: the \"": [
"${command}": [
null,
"Fehler: Das \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -535,9 +487,9 @@
null,
"Die angegebene Begründung lautet: \"%1$s\"."
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"Die angegebene Begründung lautet: \""
""
],
" has left the room. \"": [
null,
......@@ -587,10 +539,6 @@
null,
"%1$s hat das Thema zu \"%2$s\" geändert"
],
"Click to mention ": [
null,
"Drücke um zu erwähnen "
],
"This user is a moderator.": [
null,
"Dieser Benutzer ist ein Moderator."
......@@ -683,10 +631,6 @@
null,
"Dieser Raum ist moderiert"
],
"All other room occupants can see your Jabber ID": [
null,
"Jeder in dem Raum kann deine Jabber ID sehen"
],
"Anyone can join this room": [
null,
"Jeder kann diesen Raum betreten"
......@@ -703,10 +647,6 @@
null,
"Dieser Raum ist per Suche auffindbar"
],
"Only moderators can see your Jabber ID": [
null,
"Nur Moderatoren können deine Jabber ID sehen"
],
"This room will disappear once the last person leaves": [
null,
"Dieser Raum verschwindet sobald diesen die letzte Person verlassen hat"
......@@ -727,6 +667,10 @@
null,
"Du kannst optional eine Nachricht mit den Gründen der Einladung mitsenden."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Raumname"
......@@ -751,17 +695,13 @@
null,
"Keine Räume auf %1$s"
],
"Rooms on %1$s": [
null,
"Räume auf %1$s"
],
"Description:": [
null,
"Beschreibung:"
],
"Server:": [
"Room Address (JID):": [
null,
"Server:"
""
],
"Occupants:": [
null,
......@@ -987,10 +927,6 @@
null,
""
],
"Return": [
null,
"Zurück"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
""
......@@ -1079,10 +1015,6 @@
null,
"Wollen Sie diesen Kontakt wirklich entfernen?"
],
"Sorry, there was an error while trying to remove ": [
null,
""
],
"Are you sure you want to decline this contact request?": [
null,
"Wollen Sie diese Kontaktanfrage wirklich ablehnen?"
......
This diff is collapsed.
......@@ -203,38 +203,6 @@
null,
"Sin usuarios encontrados"
],
"Click to add as a chat contact": [
null,
"Haga click para agregar como contacto de chat"
],
"Toggle chat": [
null,
"Chat"
],
"Reconnecting": [
null,
"Reconectando"
],
"The connection has dropped, attempting to reconnect.": [
null,
""
],
"Connecting": [
null,
"Conectando"
],
"Authenticating": [
null,
"Autenticando"
],
"Authentication Failed": [
null,
"La autenticación falló"
],
"Sorry, there was an error while trying to add ": [
null,
""
],
"This client does not allow presence subscriptions": [
null,
""
......@@ -311,7 +279,7 @@
null,
""
],
"Error: the \"": [
"${command}": [
null,
""
],
......@@ -387,7 +355,7 @@
null,
""
],
"The reason given is: \"": [
"${notification.reason}": [
null,
""
],
......@@ -459,7 +427,7 @@
null,
""
],
"All other room occupants can see your Jabber ID": [
"All other room occupants can see your XMPP username": [
null,
""
],
......@@ -467,7 +435,7 @@
null,
""
],
"Only moderators can see your Jabber ID": [
"Only moderators can see your XMPP username": [
null,
""
],
......@@ -483,6 +451,10 @@
null,
""
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Nombre de sala"
......@@ -503,14 +475,14 @@
null,
"Sin salas en %1$s"
],
"Rooms on %1$s": [
null,
"Salas en %1$s"
],
"Description:": [
null,
"Descripción"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Ocupantes:"
......@@ -695,10 +667,6 @@
null,
""
],
"Return": [
null,
""
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
""
......@@ -786,10 +754,6 @@
"Are you sure you want to remove this contact?": [
null,
"¿Esta seguro de querer eliminar este contacto?"
],
"Sorry, there was an error while trying to remove ": [
null,
""
]
}
}
......
This diff is collapsed.
......@@ -251,54 +251,6 @@
null,
"Aucun utilisateur trouvé"
],
"Click to add as a chat contact": [
null,
"Cliquer pour ajouter aux contacts"
],
"Toggle chat": [
null,
"Ouvrir IM"
],
"Reconnecting": [
null,
"Reconnexion"
],
"The connection has dropped, attempting to reconnect.": [
null,
"La connexion a été perdue, tentative de reconnexion en cours."
],
"Connection error": [
null,
"Erreur de connexion"
],
"An error occurred while connecting to the chat server.": [
null,
"Une erreur est survenue lors de la connexion au serveur de discussion."
],
"Connecting": [
null,
"Connexion"
],
"Authenticating": [
null,
"Authentification"
],
"Authentication Failed": [
null,
"L’authentification a échoué"
],
"Connection failed": [
null,
"La connexion a échoué"
],
"An error occurred while connecting to the chat server: ": [
null,
"Une erreur est survenue lors de la connexion au serveur de discussion : "
],
"Sorry, there was an error while trying to add ": [
null,
"Désolé, il y a eu une erreur lors de la tentative d’ajout "
],
"This client does not allow presence subscriptions": [
null,
"Ce client ne permet pas les mises à jour de disponibilité"
......@@ -427,9 +379,9 @@
null,
"Cacher la liste des participants"
],
"Error: the \"": [
"${command}": [
null,
"Erreur : \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -531,9 +483,9 @@
null,
"La raison indiquée est : « %1$s »."
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"La raison indiquée est : \""
""
],
" has left the room. \"": [
null,
......@@ -555,10 +507,6 @@
null,
"Le sujet « %2$s » a été défini par %1$s"
],
"Click to mention ": [
null,
"Cliquer pour citer "
],
"This user is a moderator.": [
null,
"Cet utilisateur est un modérateur."
......@@ -647,10 +595,6 @@
null,
"Ce salon est modéré"
],
"All other room occupants can see your Jabber ID": [
null,
"Tous les autres occupants de ce salon peuvent voir votre ID Jabber"
],
"Anyone can join this room": [
null,
"N’importe qui peut rejoindre ce salon"
......@@ -659,10 +603,6 @@
null,
"Ce salon nécessite un mot de passe pour y accéder"
],
"Only moderators can see your Jabber ID": [
null,
"Seuls les modérateurs peuvent voir votre identifiant Jabber"
],
"This room will disappear once the last person leaves": [
null,
"Ce salon disparaîtra au départ de la dernière personne"
......@@ -683,6 +623,10 @@
null,
"Vous pouvez facultativement ajouter un message, expliquant la raison de cette invitation."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Nom du salon"
......@@ -707,14 +651,14 @@
null,
"Aucun salon dans %1$s"
],
"Rooms on %1$s": [
null,
"Salons dans %1$s"
],
"Description:": [
null,
"Description :"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Participants :"
......@@ -939,10 +883,6 @@
null,
"Enregistré avec succès"
],
"Return": [
null,
"Retourner"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
"Le fournisseur a rejeté votre demande d’enregistrement."
......@@ -1031,10 +971,6 @@
null,
"Voulez-vous vraiment supprimer ce contact ?"
],
"Sorry, there was an error while trying to remove ": [
null,
"Désolé, il y a eu une erreur lors de la tentative de retrait "
],
"Are you sure you want to decline this contact request?": [
null,
"Voulez-vous vraiment refuser cette demande de contact ?"
......
This diff is collapsed.
......@@ -231,38 +231,6 @@
null,
"לא נמצאו משתמשים"
],
"Click to add as a chat contact": [
null,
"לחץ כדי להוסיף בתור איש קשר שיחה"
],
"Toggle chat": [
null,
"הפעל שיח"
],
"Reconnecting": [
null,
"כעת מתחבר"
],
"The connection has dropped, attempting to reconnect.": [
null,
""
],
"Connecting": [
null,
"כעת מתחבר"
],
"Authenticating": [
null,
"כעת מאמת"
],
"Authentication Failed": [
null,
"אימות נכשל"
],
"Sorry, there was an error while trying to add ": [
null,
"מצטערים, היתה שגיאה במהלך ניסיון הוספת "
],
"This client does not allow presence subscriptions": [
null,
"לקוח זה לא מתיר הרשמות נוכחות"
......@@ -339,7 +307,7 @@
null,
"הודעה"
],
"Error: the \"": [
"${command}": [
null,
""
],
......@@ -419,9 +387,9 @@
null,
"שלח"
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"הסיבה שניתנה היא: \""
""
],
" has left the room. \"": [
null,
......@@ -491,7 +459,7 @@
null,
""
],
"All other room occupants can see your Jabber ID": [
"All other room occupants can see your XMPP username": [
null,
""
],
......@@ -499,7 +467,7 @@
null,
""
],
"Only moderators can see your Jabber ID": [
"Only moderators can see your XMPP username": [
null,
""
],
......@@ -515,6 +483,10 @@
null,
"באפשרותך להכליל הודעה, אשר מסבירה את הסיבה להזמנה."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"שם חדר"
......@@ -539,14 +511,14 @@
null,
"אין חדרים על %1$s"
],
"Rooms on %1$s": [
null,
"חדרים על %1$s"
],
"Description:": [
null,
"תיאור:"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"נוכחים:"
......@@ -767,10 +739,6 @@
null,
"נרשם בהצלחה"
],
"Return": [
null,
"חזור"
],
"Retry": [
null,
""
......@@ -855,10 +823,6 @@
null,
"האם אתה בטוח כי ברצונך להסיר את איש קשר זה?"
],
"Sorry, there was an error while trying to remove ": [
null,
"מצטערים, היתה שגיאה במהלך ניסיון להסיר את "
],
"Are you sure you want to decline this contact request?": [
null,
"האם אתה בטוח כי ברצונך לסרב את בקשת איש קשר זה?"
......
This diff is collapsed.
......@@ -234,38 +234,6 @@
null,
"Nincs felhasználó"
],
"Click to add as a chat contact": [
null,
"Felvétel a csevegőpartnerek közé"
],
"Toggle chat": [
null,
"Csevegőablak"
],
"Reconnecting": [
null,
"Kapcsolódás"
],
"The connection has dropped, attempting to reconnect.": [
null,
""
],
"Connecting": [
null,
"Kapcsolódás"
],
"Authenticating": [
null,
"Azonosítás"
],
"Authentication Failed": [
null,
"Azonosítási hiba"
],
"Sorry, there was an error while trying to add ": [
null,
"Sajnáljuk, hiba történt a hozzáadás során"
],
"This client does not allow presence subscriptions": [
null,
"Ez a kliens nem engedélyezi a jelenlét követését"
......@@ -346,9 +314,9 @@
null,
"A résztvevők listájának elrejtése"
],
"Error: the \"": [
"${command}": [
null,
"Hiba: a \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -430,9 +398,9 @@
null,
"Küldés"
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"Az indok: \""
""
],
" has left the room. \"": [
null,
......@@ -502,7 +470,7 @@
null,
""
],
"All other room occupants can see your Jabber ID": [
"All other room occupants can see your XMPP username": [
null,
""
],
......@@ -510,7 +478,7 @@
null,
""
],
"Only moderators can see your Jabber ID": [
"Only moderators can see your XMPP username": [
null,
""
],
......@@ -526,6 +494,10 @@
null,
"Megadhat egy üzenet a meghívás okaként."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Szoba neve"
......@@ -550,14 +522,14 @@
null,
"Nincs csevegőszoba a(z) %1$s szerveren"
],
"Rooms on %1$s": [
null,
"Csevegőszobák a(z) %1$s szerveren:"
],
"Description:": [
null,
"Leírás:"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Jelenlevők:"
......@@ -778,10 +750,6 @@
null,
"Sikeres regisztráció"
],
"Return": [
null,
"Visza"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
"A szolgáltató visszautasította a regisztrációs kérelmet. Kérem ellenőrízze a bevitt adatok pontosságát."
......@@ -870,10 +838,6 @@
null,
"Valóban törölni szeretné a csevegőpartnerét?"
],
"Sorry, there was an error while trying to remove ": [
null,
"Sajnáljuk, hiba történt a törlés során"
],
"Are you sure you want to decline this contact request?": [
null,
"Valóban elutasítja ezt a partnerkérelmet?"
......
This diff is collapsed.
......@@ -202,34 +202,6 @@
null,
"Pengguna tak ditemukan"
],
"Click to add as a chat contact": [
null,
"Klik untuk menambahkan sebagai teman"
],
"Toggle chat": [
null,
""
],
"The connection has dropped, attempting to reconnect.": [
null,
""
],
"Connecting": [
null,
"Menyambung"
],
"Authenticating": [
null,
"Melakukan otentikasi"
],
"Authentication Failed": [
null,
"Otentikasi gagal"
],
"Sorry, there was an error while trying to add ": [
null,
""
],
"This client does not allow presence subscriptions": [
null,
""
......@@ -302,7 +274,7 @@
null,
""
],
"Error: the \"": [
"${command}": [
null,
""
],
......@@ -374,7 +346,7 @@
null,
""
],
"The reason given is: \"": [
"${notification.reason}": [
null,
""
],
......@@ -442,7 +414,7 @@
null,
""
],
"All other room occupants can see your Jabber ID": [
"All other room occupants can see your XMPP username": [
null,
""
],
......@@ -450,7 +422,7 @@
null,
""
],
"Only moderators can see your Jabber ID": [
"Only moderators can see your XMPP username": [
null,
""
],
......@@ -466,6 +438,10 @@
null,
""
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Nama ruangan"
......@@ -486,14 +462,14 @@
null,
"Tak ada ruangan di %1$s"
],
"Rooms on %1$s": [
null,
"Ruangan di %1$s"
],
"Description:": [
null,
"Keterangan:"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Penghuni:"
......@@ -682,10 +658,6 @@
null,
""
],
"Return": [
null,
""
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
""
......@@ -769,10 +741,6 @@
"Name": [
null,
""
],
"Sorry, there was an error while trying to remove ": [
null,
""
]
}
}
......
This diff is collapsed.
......@@ -31,6 +31,10 @@
null,
"Annulla"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Sei sicuro di voler rimuovere il segnalibro \"%1$s\"?"
],
"Sorry, something went wrong while trying to save your bookmark.": [
null,
"Si è verificato un errore nel salvataggio del bookmark."
......@@ -39,10 +43,6 @@
null,
"Clicca per aprire/chiudere la lista bookmarks"
],
"Are you sure you want to remove the bookmark \"%1$s\"?": [
null,
"Sei sicuro di voler rimuovere il segnalibro \"%1$s\"?"
],
"Remove this bookmark": [
null,
"Rimuovi questo bookmark"
......@@ -255,54 +255,6 @@
null,
"Nessun utente trovato"
],
"Click to add as a chat contact": [
null,
"Clicca per aggiungere il contatto alla chat"
],
"Toggle chat": [
null,
"Attiva/disattiva chat"
],
"Reconnecting": [
null,
"Riconnessione"
],
"The connection has dropped, attempting to reconnect.": [
null,
"La connessione è caduta, attendi la riconnessione."
],
"Connection error": [
null,
"Errore di connessione"
],
"An error occurred while connecting to the chat server.": [
null,
"Si è verificato un errore durante la connessione al server."
],
"Connecting": [
null,
"Connessione in corso"
],
"Authenticating": [
null,
"Autenticazione in corso"
],
"Authentication Failed": [
null,
"Autenticazione fallita"
],
"Connection failed": [
null,
"Errore di connessione"
],
"An error occurred while connecting to the chat server: ": [
null,
"Si è verificato un errore durante la connessione al server. "
],
"Sorry, there was an error while trying to add ": [
null,
"Si è verificato un errore durante il tentativo di aggiunta "
],
"This client does not allow presence subscriptions": [
null,
"Questo client non consente sottoscrizioni di presenza"
......@@ -431,9 +383,9 @@
null,
"Nascondi la lista degli occupanti"
],
"Error: the \"": [
"${command}": [
null,
"Errore: il \""
""
],
"Are you sure you want to clear the messages from this room?": [
null,
......@@ -527,9 +479,9 @@
null,
"Invia"
],
"The reason given is: \"": [
"${notification.reason}": [
null,
"La ragione data è: \""
""
],
" has left the room. \"": [
null,
......@@ -551,10 +503,6 @@
null,
"Topic impostato da %1$s a: %2$s"
],
"Click to mention ": [
null,
"Clicca per citare "
],
"This user is a moderator.": [
null,
"Questo utente è un moderatore."
......@@ -643,10 +591,6 @@
null,
"Questa stanza è moderata"
],
"All other room occupants can see your Jabber ID": [
null,
"Tutti gli occupanti della stanza possono vedere il tuo Jabber ID"
],
"Anyone can join this room": [
null,
"Chiunque può collegarsi a questa stanza"
......@@ -659,10 +603,6 @@
null,
""
],
"Only moderators can see your Jabber ID": [
null,
"Solo il moderatore può vedere il tuo Jabber ID"
],
"This room will disappear once the last person leaves": [
null,
""
......@@ -683,6 +623,10 @@
null,
"Puoi includere un messaggio per spiegare le ragioni dell'invito."
],
"Please enter a valid XMPP username": [
null,
""
],
"Room name": [
null,
"Nome stanza"
......@@ -707,14 +651,14 @@
null,
"Nessuna stanza su %1$s"
],
"Rooms on %1$s": [
null,
"Stanze su %1$s"
],
"Description:": [
null,
"Descrizione:"
],
"Room Address (JID):": [
null,
""
],
"Occupants:": [
null,
"Utenti presenti:"
......@@ -939,10 +883,6 @@
null,
"Registrazione riuscita"
],
"Return": [
null,
"Ritorna"
],
"The provider rejected your registration attempt. Please check the values you entered for correctness.": [
null,
"Il provider ha respinto il tentativo di registrazione. Controlla i dati inseriti."
......@@ -1031,10 +971,6 @@
null,
"Sei sicuro di voler rimuovere questo contatto?"
],
"Sorry, there was an error while trying to remove ": [
null,
"Si è verificato un errore durante il tentativo di rimozione "
],
"Are you sure you want to decline this contact request?": [
null,
"Sei sicuro dirifiutare questa richiesta di contatto?"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"name": "converse.js",
"version": "3.1.1",
"version": "3.2.0",
"description": "Browser based XMPP instant messaging client",
"main": "main.js",
"directories": {
......@@ -34,12 +34,16 @@
"devDependencies": {
"almond": "~0.3.3",
"awesomplete-avoid-xss": "^1.1.2",
"babel-cli": "^6.18.0",
"babel-preset-env": "^1.5.2",
"babel-preset-latest": "^6.16.0",
"backbone": "1.3.3",
"backbone.browserStorage": "0.0.3",
"backbone.overview": "0.0.3",
"bootstrap": "^3.3.7",
"bourbon": "^4.3.2",
"clean-css-cli": "^4.0.10",
"emojione": "^3.0.3",
"es6-promise": "^4.1.0",
"eslint": "^3.19.0",
"eslint-plugin-lodash": "^2.3.3",
......@@ -53,7 +57,6 @@
"jasmine-core": "2.6.4",
"jed": "0.5.4",
"jquery": "2.2.3",
"jquery-easing": "0.0.1",
"jquery.browser": ">=0.1.0",
"jshint": "^2.9.4",
"lodash": "4.17.4",
......@@ -74,7 +77,9 @@
"strophejs-plugin-rsm": "0.0.1",
"strophejs-plugin-vcard": "0.0.1",
"text": "requirejs/text#2.0.15",
"wait-until-promise": "^1.0.0"
"uglify-es": "^3.0.24",
"wait-until-promise": "^1.0.0",
"xss": "^0.3.3"
},
"dependencies": {}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -5,9 +5,10 @@
.close-chatbox-button:before {
content: "\e601"; // Leave icon
}
.chatroom-description {
font-size: 66%;
margin-top: 3px;
.chat-title {
.chatroom-description {
font-size: 65%;
}
}
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment