Collaborative editing with Manticore

In past few months we’ve been working on implementing document editing in Kolab webclient. By document editing here I mean a possibility to edit Open Document Format documents which includes collaborative work of many users on the same document. This is possible thanks to WebODF editor, Manticore service, Kolab’s Chwala and Roundcube.


WebODF is a JavaScript library that makes it easy to add Open Document Format (ODF) support to web applications. It provides a standalone text documents editor, which we already use for read-only documents preview.


Manticore is a Node.js project that implements handling of (realtime) collaboration in WebODF editor. Using websocket technology is responsible for handling of document changes merging and saving and collaborators management. It can be used standalone (with its own user interface) or as an API.


Kolab users should already know Chwala. It is the service used in Kolab for files storage operations. So, when you access a file in Roundcube it will use Chwala API.

Recent development in Chwala added access rights support and handling of document editing sessions and collaborator invitations.

… and the user interface

So, we’ve integrated all of these components in Roundcube via kolab_files plugin. Files interface have been extended to provide a way to create and edit documents with invitations to editing sessions.

In the main interface you can observe a few new elements. In the toolbar I added Edit, Create and Rename buttons. On the files list you can notice a new icon which indicates editing session status. It gives info about existence of an editing session and its creator.


When you click Create button you’ll be asked for a document type, name and location.


View gives document preview in read-only mode. When you decide to edit a document which is already being edited (not terminated editing session exist), you’ll be asked to join the session or create a new one.


The editing session is opened in a new window. On right you’ll see a list of session collaborators.


As a session creator you can invite other users to the session. When you add a participant he will be informed with a notification message in Roundcube. Invited user can join the session or decline the invitation.


This is not all and this is not yet finished. We plan to add a better way to view ongoing sessions and invitations. There are some issues to be fixed. There’s still no Kolab skin support. Manticore installation is not simple.

But it’s quite nice prototype of the functionality we want.