babble.client

by JC Brand last modified Apr 10, 2012 04:22 PM

Babble: Instant messaging client for Plone

Project Description

babble.client

Introduction

Babble: Instant Messaging for Plone

Babble is an instant messaging service for Plone. It consists of babble.client as the Plone front-end client and babble.server, a Zope2-based messaging service, as the backend chat service.

Communication between the client and server is achieved with JSON packets sent via XML-RPC.

The client consists of an Online contacts portlet with which you can initiate new chats.

Instead of using the provided portlet, you can also consider using Babble together with actionbar.babble .

Chat sessions occur in modal dialog chatboxes and make use of JQuery Ajax polling to provide seamless, real-time messaging.

During inactive periods, the polling interval gradually becomes longer until it reaches a specific (configurable) maximum polling interval.

Please note: even thought the polling values are configurable, it's not advised to make the minimum polling interval less than 5000 milliseconds.

Features:

  • Two-way user communication or chat-rooms for multi-user communication.
  • Remembers open chat windows on page reload
  • Chat windows can be minimized
  • New messages automatically opens chat window
  • An 'online users' portlet provides a list of currently online users
  • Configurable polling intervals
  • Clickable URLs recieved via chat messages
  • Requests to the messaging service are password authenticated
  • Can be integrated with the ActionBar of actionbar.panel
  • Can run on a different server than the messaging service

New feature, Chat Rooms:

A Chat Room can be created just like any other item in Plone, by clicking on the "Add new" link on the edit bar.

On the Chat Room’s add page, you are asked to provide a Title and an optional description.

Any person who has permission to view the chat room, will be able to send and receive instant messages to and from the chat room. This however only applies to logged in users.

If an anonymous user has the necessary permissions to view a chat room, he or she will be able to see the history of the conversation, but not send or receive messages.

A "Chat Rooms" portlet is available to show the user which chat rooms are currently available and to open and participate in them.

Note: Chatting in a chat room happens the same was as the two-way chatboxes. The view of the chat room object only serves as a static record of the conversation.

Compatibility:

Tested to work with Plone 4

Dependencies:

Requires babble.server 1.0b5 or higher!

Documentation:

Full documentation for the Babble project can be found at http://babblechat.org

Changelog

2.0 (2012-04-10)

  • Log an error when the deleted chatroom is not found on the server. [jcbrand]

2.0b1 (2012-03-23)

  • Keep track of the timestamp of the last received message in the client (javascript). [jcbrand]
  • Various improvements to minimize write conflicts. [jcbrand]

2.0a4 (2011-11-20)

  • New content type chatroom. This enables chatboxes where multiple users can chat with one another. [jcbrand]
  • Minimized chatboxes turn red when they receive messages. [jcbrand]
  • Chatbox headers are now clickable. [jcbrand]
  • New portlet to show chatrooms. [jcbrand]

2.0a3 (2011-10-18)

  • Compatibility changes with babble.server 1.0b3. [jcbrand]
  • Non-ascii usernames now supported. [jcbrand]

2.0a2 (2011-10-06)

  • Use getUnClearedMessages when polling. Send timestamps to getUnClearedMessages. [jcbrand]

2.0a1 (2011-10-05)

  • Add more finegrained message timestamps. This fixes the problem where only the chatbox in the currently active browser tab was updated. [jcbrand]

1.5 (2011-09-16)

  • Include permissions.zcml from Products.CMFCore and changed setup.py dependencies for Plone 4.1 compatibility [jcbrand]
  • Add GenericSetup xml file, babblechat_tool.xml, to enable configuration of the portal_babblechat tool. [jcbrand]
  • Use Zope3 resource registries. [jcbrand]
  • Escape html before sending. [jcbrand]
  • Urlize messages and on the sender's side. [jcbrand]

1.4 (2011-03-18)

  • Full release.
  • Removed superfluous logging [jcbrand]

1.4b3 (2011-02-04)

  • Javascript fix in chat.js.dtml [jcbrand]

1.4b2 (2011-02-03)

  • Layed some groundwork for QUnit javascript unit testing [jcbrand]
  • Javascript fix for an IE7 quirk [jcbrand]
  • Only show the portlet search bar when it's overflowing [jcbrand]
  • Fixed the portlet search bar' rendering in IE7 [jcbrand]

1.4b1 (2011-01-18)

  • Fixed to work with email addresses as usernames. [jcbrand]
  • Show users' fullnames in the chatboxes and the portlet. [jcbrand]
  • Simplified the polling system and provide better polling defaults. [jcbrand]
  • Send anonymous users to a login_form when they click on contacts in the portlet. [jcbrand]

1.3.4 (2010-10-18)

  • Fixed display of single number seconds if in 0-9 [pilz]
  • Converted message dates from server back to local time [pilz]

1.3.3 (2010-10-01)

  • Added 5 second timeout to xmlrpclib requests [do3cc]

1.3.2 (2010-05-21)

  • Removed the dependency on collective.js.blackbird being installed [jcbrand]
  • Fixed a bug whereby LDAP users are not visible [jcbrand]

1.3.1 (2010-05-07)

  • Unicode fix in utils.py [thomas_w]

1.3 (2010-05-06)

  • Full release [jcbrand]

1.3b3 (2010-04-28)

  • Fixed repeating page section rendering problem [jcbrand]
  • Added URL recognition [jcbrand]

1.3b2 (2010-04-17)

  • New polling solution via the doTimeout plugin instead of setTimeout [jcbrand]
  • Fixed ajax calls when in portal_factory as context [jcbrand]
  • Made the 'Who's online?' portlet's heading editable [jcbrand]

1.3b1 (2010-04-12)

  • Updated the README [jcbrand]

1.2 (2010-04-09)

  • Removed the option from portal_chat to bypass XML-RPC [jcbrand]
  • Bugfixes in tests and fixed getConnection AttributeError for utils.py [jcbrand]

1.1 (2010-04-08)

  • Tweaked jsregistry.xml to gain Plone3 compatibility [jcbrand]

1.0 (2010-04-08)

  • Initial release [jcbrand]

Contributors

Self-Certification

[ ] Internationalized

[X] Unit tests

[X] End-user documentation

[X] Internal documentation (documentation, interfaces, etc.)

[ ] Existed and maintained for at least 6 months

[X] Installs and uninstalls cleanly

[X] Code structure follows best practice

Current Release
babble.client 2.0

Released Apr 10, 2012

Download file Get babble.client for all platforms
babble.client-2.0.zip
If you are using Plone 3.2 or higher, you probably want to install this product with buildout. See our tutorial on installing add-on products with buildout for more information.

All Releases

Version Released Description Compatibility Licenses Status
2.0b1 More about this release… GPL beta
2.0a4 More about this release… GPL alpha
2.0a3 More about this release… GPL alpha
2.0a2 More about this release… GPL alpha
2.0a1dev More about this release… GPL alpha
2.0a1 More about this release… GPL alpha
2.0 Apr 10, 2012 More about this release… GPL final
1.5b1 More about this release… GPL beta
1.5 Sep 16, 2011 More about this release… GPL final
1.4b3 More about this release… GPL beta
1.4b2 More about this release… GPL beta
1.4b1 More about this release… GPL beta
1.4 Mar 18, 2011 More about this release… GPL final
1.3b3 Added URL detection support. Various bugfixes More about this release…
Plone 4
Plone 3
GPL beta
1.3b2 Beta 2 release More about this release…
Plone 4
Plone 3
GPL beta
1.3b1 More about this release… beta
1.3.2 May 21, 2010 More about this release… GPL final
1.3.1 May 07, 2010 More about this release… GPL final
1.3 May 06, 2010 More about this release… GPL final
1.2 Apr 09, 2010 More about this release…
Plone 4
Plone 3
GPL final
1.1 Apr 08, 2010 More about this release… final
1.0 Apr 08, 2010 More about this release… GPL final