Giter Club home page Giter Club logo

candy-plugins's Introduction

Candy Plugins

Build Status Coverage Status

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.

  1. Setup the Vagrant environment from Candy core
  2. Install Node.js
  3. Install Grunt (npm install -g grunt-cli)
  4. Install Bower (npm install -g bower)
  5. Install npm dependencies (npm install in candy-plugins root directory)
  6. Install bower dependencies (bower install in candy-plugins root directory)
  7. Run grunt watch to automatically run jshint (syntax checker) and the tests while developing.

Running tests

  • Tests are run using Intern.
  • grunt and grunt 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 using grunt 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.

candy-plugins's People

Contributors

benlangfeld avatar bklang avatar davidvandertuijn avatar ddevlin avatar diriver63 avatar drewww avatar eluzgin avatar eren avatar gibus avatar ij-watson avatar indeyets avatar joudinet avatar kousu avatar kripton avatar lkraav avatar maennchen avatar malakada avatar mozgiii avatar mweibel avatar patforg avatar paulsd avatar pstadler avatar sudrien avatar terem42 avatar troymccabe avatar warcode avatar zh99998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

candy-plugins's Issues

Problem with color plugin

I'm testing Candy's plugins. I'm trying Color and Chatrecall.
When I first set the color, write something, then hit "up arrow", there's a code added to the line:

|c:5|test

I assume it's the color code...

Example of how to place the code

Thanks for this plugin!

I tried inserting the code inside my html file but for some reason i must be doing something wrong because it won't load. Can you give me an example of a html file with the code inserted?

My path is openchat/login/index.html

Does that mean i have to edit this: src="candyshop/roomPanel/roomPanel.js"

And how about this: CandyShop.RoomPanel.init({

How the heck do use these?

Where is the installation documentation? How do you install a plugin? I tried following the instructions. THERE IS NO plugin directory. Where should I create one?

Why didn't you document any of this? Obviously I install the css/javascript links, but then how are these plugins if I have to manually do all the work?

I don't get how to make a single one of these work and I tried…

stickysubject: faulty url parsing

Stick a URL into subject line and see what happens

Subject: http://conversionxl.com/blog/" target="_blank">http://conversionxl.com/blog/

Plugins colors & roompanel: problem with translation object

Opera:
Uncaught exception: TypeError: Cannot convert 'Candy.View.Translation.ru' to object

Firefox:
[23:26:54.002] TypeError: Candy.View.Translation.ru is undefined @ [...]/plugins/colors/candy.js:71
resp.
[23:30:53.660] TypeError: Candy.View.Translation.ru is undefined @ [...]/plugins/roomPanel/roomPanel.js:134

Maybe it's an encoding error? I wgot the master.zip directly from github.

Last message in chat

How can I do that when you enter the chat to be seen more than 25 recent posts.?

User information plugin

plugin for displaying user information. [Avatar, name surname , birthdate, etc]. Click on user in the right menu > User info.

If it is possible with edit mode, so user can change its own information to.

Audio & Video conferencing, 1 on 1, 1 on many or multiple on X

Not sure about the logistics of this but support for audio and video conferencing would be cool. Especially if you could limit it to specific groups/individuals.

It would open up the possibility to use the chat for one on one tutorials, or one on many online lectures, demonstrations, live web TV even having multiple cams broadcast to many (all room participants). Could even use used for enhanced social network or smutty dating websites. The possibilities and uses for this sort of plugin would be huge.

Perhaps it would need some assistance from Red5, Wowzer or similar. (Preferably open source :-)

I know its possible from the Inspired work on the OpenFire extension: http://code.google.com/p/inspired-social/ This is what they claim to use within their tool bar chat:

XMPP Webclient (competitor to Candy)
SIP Webphone (http://www.phono.com)
SIP Audio Conference Bridge (red5-voicebridge)
RTMFP Video/Audio Conferencing (redfire)
RTMP Screen Share (red5-screenshare)
Embedded RTMP Server (Milenia Grafter 64K RTMP Server)

Of course there are other options.

This would be an amazing addition! :-)

RoomList prevents login

The chat is working great, I added all the plugins but find when the RoomList plugin is added that I can no longer log into chat. The login box does not show.

I've tried with anon and account required.

Using OpenFire.

If I remove the CandyShop.RoomPanel.init totally then the chat functions again.

Perhaps I'm missing something or is this a bug?

Plugin for Changing Password

It would be useful to have a Candy plugin that allows a user to change their XMPP password via a web interface.

Currently I'm creating accounts for them with a default password, but would like to provide the ability to change their password.

inline-images and color don't work together

Both colors and inline-images redefine Candy.View.Event.Message.beforeShow. If they're both loaded, only the last one will work.

candy-plugins/color/candy.js:
...
Candy.View.Event.Message.beforeShow = function(args) {

candy-plugins/inline-images/candy.js:
...
Candy.View.Event.Message.beforeShow = handleBeforeShow;

Support for /me and /nick

Can you guys do that? Add /me and /nick so they work, and so I can properly view /me's sent by other people?

Please reply either way....I don't like the dead look of the other requests...

Hashtag feeds

Hi,

A nice feature would be to have pseudo rooms, where messages are listed in chronological order what include a certain hashtag. To such a hashtag feed rooms could be added in order to aggregate information.

The use case I got the idea from is a ~100 head organization where information channeling is really a problem and we are using email as a fallback as chatrooms are not giving enough structure. Email is inefficient, chat is cool.

Cheers,
David

split plugins repos up

principle question:
Why do we put all of the plugins into a single repository?
We could move them into their own repository and make them available via bower. This'd be much more comfortable to use and also to maintain.

me-does is broken on Candy 2.0

From Firefox's console, when entering a /me action on our test site:

function () " - error - " TypeError: elem is undefined
Stack trace:
Candy.Util</self.createHtml@https://gotr.us/candy/candy.bundle.js:1247:1
Candy.Util</self.parseAndCropXhtml@https://gotr.us/candy/candy.bundle.js:808:35
Candy.View.Pane</self.Chat.onInfoMessage@https://gotr.us/candy/candy.bundle.js:3914:1
Candy.View.Pane</self.Chat.infoMessage@https://gotr.us/candy/candy.bundle.js:3897:13
self.init/<@https://gotr.us/candy/candyshop/me-does/candy.js:9:1
x.event.dispatch@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:14077
x.event.add/v.handle@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:10849
x.event.trigger@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:13253
.triggerHandler@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:20849
Candy.View.Pane</self.Message.show@https://gotr.us/candy/candy.bundle.js:4729:17
Candy.View.Observer</self.Message@https://gotr.us/candy/candy.bundle.js:3611:13
x.event.dispatch@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:14077
x.event.add/v.handle@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:10849
x.event.trigger@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:13253
.triggerHandler@https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:5:20849
Candy.Core.Event</self.Jabber.Room.Message@https://gotr.us/candy/candy.bundle.js:3278:1
Candy.Core.Event</self.Jabber.Message@https://gotr.us/candy/candy.bundle.js:2839:17
Strophe.Handler.prototype.run@https://gotr.us/candy/libs.bundle.js:1700:30
Strophe.Connection.prototype._dataRecv/<@https://gotr.us/candy/libs.bundle.js:2578:37
Strophe.forEachChild@https://gotr.us/candy/libs.bundle.js:828:25
Strophe.Connection.prototype._dataRecv@https://gotr.us/candy/libs.bundle.js:2567:17
Strophe.Bosh.prototype._onRequestStateChange@https://gotr.us/candy/libs.bundle.js:3901:25
 "elem is undefined"

inline-images breaks URL parsing

Moved from candy-chat/candy#190

If you paste this address in candy dev branch

http://arileht.delfi.ee/news/uudised/anna-teada-millal-sinu-palk-viimati-tousis.d?id=66678817

link provided will be

http://arileht.delfhttp://i.ee/news/uudised/anna-teada-millal-sinu-palk-viimati-tousis.d?id=66678817

Disabling plugins shows "inline-images" is the cause.

subdomain is not working

I have the latest js, and I see you have the subdomain set as conference, but the plugin continues to put the new chatrooms in the chat subdomain, instead of the conference subdomain.

Ad-hoc MUCs / Chatrooms

It would be useful to be able to create new ad-hoc MUCs using RoomPanel / any other plugin.

Avatar Plugin

A plugin that displays user Avatars in the message list.

This can be done by using the image data found in the XMPP user's VCard.

Static Lobby - unable to send messages

Are users supposed to be able to send messages in the Static Lobby plugin, or is that designed just to provide a roster, with the ability to invite users to other MUC's?

I have the Static Lobby running, but when we try and send a message, we type it in, his Send (or return), the input field is cleared as if the message is being sent to the room, but nothing appears in the message pane.

[join] Can join password-protected room with incorrect passwords

I'm not 100% sure it's a bug of the join plugin and not of my ejabberd configuration, but I'm able to join a password-protected room without the correct password.
I attach the log of the following session:

  • anonymous user alice logs in to ap XMPP server (and autojoin the greencom room)
  • alice types /join room1 passw0rd (which shows her in a new room called room1)
  • bob logs in to the same server (ap), also as an anonymous user
  • bob types /join room1 wrongpassword and, surprisingly, gets connected to room1!

Alice's Javascript console: http://pastebin.com/cYmvdDXk

Bob's Javascript console: http://pastebin.com/ChpZf03z

Create new account plugin

It will be fine to have new user registration plugin in chat. Something like "Register" button on login form.

Candy Chat Bar

A cut down candy chat bar for the bottom, top, left or right of the site would be pretty cool. Allowing one on one and MUC (Example would be the classic FB chat bar). :-)

I know I'm dreaming with the requests I've made so far. :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.