Candy Plugins
This is the official plugin repository for Candy, a JavaScript based multi-user chat client.
List of available plugins
- Auto-Join Invites - Automatically joins any and all incoming MUC invites.
- available-rooms - A plugin to show & join public rooms.
- Chat Recall - Saves the last {x} messages to scroll through with up and down arrows, similar to terminal/cmd.
- Clearchat - Clears chat window on click or if typing
/clear
- Colors - Send and receive colored messages.
- Colors XHTML - Send and receive colored messages formatted with XHTML.
- Create Room - Creates a clickable UI for creating and joining rooms.
- Emphasis - basic text formatting via textile, BBcode, or xhtml
- Fullscreen Display - Shows incoming messages to specified users starting with @ + username + : as large as the browser's content area, overlaying everything else.
- jingle one-to-one video/audio calls between users, based on WebRTC and XEP-0166: Jingle.
- Inline Images - If a user posts a URL to an image, that image gets rendered directly inside of Candy.
- Inline Videos - If a user posts a URL to youtube video, it embeds the youtube video iframe into Candy.
- join A plugin that allows to type
/join room [password]
to join a room. - jQuery-Ui - jQuery UI lightness theme
- Left Tabs - Moves the tabs to the left side and uses a bit of Bootstrap3-friendly theme elements.
- Modify Role - Adds add moderator and remove moderator context menu links.
- Me Does - special formatting for /me messages
- Namecomplete - Autocompletes names of users within room
- Nickchange - Enable your users to change the nick using a toolbar icon
- Notifications - OS Notifications in webkit
- Notifyme - Notifies yourself in case one does use your nickname in a message
- Refocus - This plugin puts the focus on the entry box if the user clicks somewhere in the message list.
- Remove Ignore - Removes the option to ignore/unignore a user from the roster.
- Replies - Highlight any message that contains "@my_username"
- MUC Room Bar - Adds a bar to the top of the message pane that displays the room topic and allows moderators to click-to-edit.
- Room Panel - Provides a list of rooms available to join.
- Static Lobby - Creates a static lobby UI and pulls in a global roster. Allows you to invite people from global roster to other MUCs you are participating in.
- Sticky Subject - Retains the subject of the room underneath the tab itself.
- Timeago - Replaces the exact time/date with fuzzy timestamps like "2 minutes ago".
- Typing Notifications - Displays a user's typing notification status above the text entry form.
Contributing
Please submit a pull request with your plugin or your changes to a plugin. We'll gladly merge it.
After a successful merge of a pull request, we will give you push access to this repository. You can then update your plugin on your own. If you update other plugins, please consider creating a pull request in order to inform the original plugin owner.
When contributing, please make sure that your code is of high quality and similar to other code in this repository. Also please submit a screenshot and a README.md.
- Setup the Vagrant environment from Candy core
- Install Node.js
- Install Grunt (
npm install -g grunt-cli
) - Install Bower (
npm install -g bower
) - Install npm dependencies (
npm install
in candy-plugins root directory) - Install bower dependencies (
bower install
in candy-plugins root directory) - Run
grunt watch
to automatically run jshint (syntax checker) and the tests while developing.
Running tests
- Tests are run using Intern.
grunt
andgrunt watch
will each run unit tests in Chrome on Linux (for fast feedback).grunt test
will run both unit and integration tests in a variety of environments. Tests are run using Selenium Standalone and Phantom.JS while developing, and on Sauce Labs in CI or usinggrunt test
.- If you don't want to use the Vagrant box to run Selenium/PhantomJS, set
CANDY_VAGRANT='false'
to run tests.
Support & Community
Take a look at our FAQ. If it doesn't solve your questions, you're welcome to join our Mailinglist on Google Groups. You don't need to have a Gmail account for it.