JavaScript-based multi-user chat client for XMPP.
Changelog: v2.1.0...v2.2.0
Changelog: v2.0.0...v2.1.0
Thanks to @benlangfeld, we're pleased to announce a new version of Candy, featuring the following improvements:
XEP-0048 specifies a pubsub methodology for setting & getting bookmarks. This allows non-Openfire Candy users to specify autojoin: true
in order to join rooms automatically. Also users can bookmark their own rooms using the new bookmark plugin.
Invite support is now complete with mediated & direct invites.
This new major release brings various bugfixes and new features which are outlined below. Special thanks go to @melissanoelle, @benlangfeld & @joshuah for their contributions. Also thanks go to people for opening bug reports & helping with testing.
Behind the view flag enableXHTML
is a feature which allows Candy to parse & send XHTML annotated messages. There's a new Colors plugin which makes use of this and explains how to enable this feature. (#204)
before
and after
event triggered use now the same evtData object in order to be able to modify it from begin to the end of a certain event flow (#215)candy:view.room.before-add
, candy:view.private-room.before-open
, candy:view.message.before-send
and candy:view.message.before-show
can now be cancelled within a plugin. Just return false
. (#214)candy:core:chat:message:other
for events received without a type attribute (#236, by @joshuah)candy:core.message.chatstate
for chat state notifications (typing notifications) (#252 by @melissanoelle)candy:core:chat:invite
for room invites (#260 by @melissanoelle)resources
has been deprecated. Instead you should use now assets
for the path to the CSS etc. files. This has been done to avoid confusion with the core.resource
setting which allows you to specify the client's resource name. (#216)In addition to these changes, many contributors created awesome plugins for Candy. Check them out!
This new major release brings various bugfixes and new features, tested with 3 betas in the last 2 weeks. It's a combined effort of a lot of Candy users and contributors. Thank you all.
Please note that are some new translation strings. English and German are always up to date but there are untranslated strings in other languages. Please submit pull requests in order to add them. In the future, we think about improving this process (as part of #207).
When upgrading please make sure that you upgrade all the plugins as well.
ws://
or wss://
URL as the first parameter of Candy.init()
Throughout Candy it should be now possible to use rooms and nicknames with non-ASCII chars.
candy:view.connection.status-<STROPHE-STATUS>
is triggered when strophe status changes happen. This enables users to e.g. reload the page when a disconnection happens (#202, thanks @lkraav)autojoin
config param is emptycandy.bundle.js
Candy.Core.log
to be able to display the original line number instead of the line number of the log functionWe replaced the existing build tool with Grunt. This should make contributing much easier (especially also for windows users). In order to contribute to Candy, please read CONTRIBUTING.md. If you're already familiar with grunt, these are the commands available:
grunt watch
watches the filesystem for changes, runs jshint on the changed files and if no errors are there, runs concat
and uglify
to build candy.bundle.js
and candy.min.js
.grunt jshint
runs jshint with our defined rulesgrunt concat
concats source files and library files to candy.bundle.js
and libs.bundle.js
grunt uglify
minifies bundles to candy.min.js
and libs.min.js
grunt docs
regenerates documentationAll grunt tasks should notify you (if supported by the OS you're on) if the task is finished.
As usual, if you discover bugs, open an issue and if you have questions, ask in our mailinglist (no gmail address required to subscribe).
Beta 3 fixes:
Beta 2 fixes:
Due to the amount of changes we decided to create a beta first. Please help us test.
Using nicknames and rooms with non-ASCII characters has not been possible until now due to some wrong implementations on our side. With this beta release, various fixes have landed to address these issues.
Candy.Core.Action.Jabber.SetNickname(nickname)
to change a user's nickname (e.g. by plugins).ws://
or wss://
URL as the first parameter of Candy.init()
.We replaced the existing build tool with Grunt. This should make contributing much easier (especially also for windows users). In order to contribute to Candy, please read CONTRIBUTING.md. If you're already familiar with grunt, these are the commands available:
grunt watch
watches the filesystem for changes, runs jshint on the changed files and if no errors are there, runs concat
and uglify
to build candy.bundle.js
and candy.min.js
.grunt jshint
runs jshint with our defined rulesgrunt concat
concats source files and library files to candy.bundle.js
and libs.bundle.js
grunt uglify
minifies bundles to candy.min.js
and libs.min.js
grunt docs
regenerates documentationAll grunt tasks should notify you (if supported by the OS you're on) if the task is finished.
Other fixes and new features include:
autojoin
config param is emptyThanks a lot to all the contributors, we appreciate this!
As usual, if you discover bugs, open an issue and if you have questions, ask in our mailinglist (no gmail address required to subscribe).
We now use jQuery events
instead of our own observer functionality for building plugins. This enables plugin developers to build more awesome plugins and also removes the issue that one plugin could overwrite the hooks of another plugin.
We built a new default theme for Candy. The new design brings some eye-candy and looks more polished.
We fixed a lot of bugs and improved the core to be more robust.