Realtime Collaborative Form Editor (EXPERIMENTAL)

Last modified by Yann Flory on 2016/09/05 17:05

cogCollaboratively edit wiki forms in realtime with friends and colleagues
TypeXAR
CategoryApplication
Developed by

Yann Flory, Aaron MacSween

Rating
Rate!
1 Votes
LicenseGNU Lesser General Public License 2.1
Installable with the Extension Manager

Description

This editor is being worked on currently. The fields using a WYSIWYG editor in the form won't be shared with the realtime engine even if the document is connected to a realtime Form session.

https://raw.githubusercontent.com/xwiki-labs/xwiki-labs-logo/master/projects/xwikilabs/xwikilabsproject.png

RtForm is a Realtime Collaborative Form Editor which extends the XWiki form and XWiki objects editors.

Use Realtime Form

rtform.png

If a document is currently being edited in Realtime, the normal "This document has been locked for editing" screen will appear but will allow you to join the Realtime Collaborative Session if applicable.

locked_join_rtform.png

Since objects in XWiki are shared between all the translations of a page but they can also contain the "content" of the document, RtForm is only available while editing the default language of the page. If a user tries to edit the form of a translated page, he will be infrm that he can access a realtime verson of the form using the default language.

locked_translated_form.png

And of course if you are uncomfortable with realtime editing, you can click on the ALLOW REALTIME COLLABORATION checkbox to return to normal editing at any time and your preferences will be preserved.

allow_realtime_collaboration.png

Reminder for users: even though you are in a realtime session, you will still have to save your document when you are done editing it.

Reminder for admins: the RtWysiwyg editor makes use of WebSocket which requires an open port from the users to the wiki, this port number and the hostname of the wiki can be specified in configuration, for more information see WebSocket.

Configuration

You can configure the Realtime Form extension in the wiki administration. The configuration is available in the section Realtime Editors of the Applications category
Here you can find all the configurable elements of the different realtime extensions There are currently 2 configurable fields about the Forms:

  • Enable RTForm for all classes of the wiki:
    • If set to "---" (empty), it means that the configuration from the main wiki will be used instead of the current one. If you are already in the main wiki, "---" is equivalent to "Yes".
    • If set to "Yes", Realtime Form is enabled on all the wiki pages edited with the "Inline form" or the "Object" editors.
    • If set to "No", Realtime Form is disabled in the wiki, but it can then be enabled for specific classes (see below)
  • List of classes allowed to use Realtime Form
    • Here you can choose the list of classes allowed to enable Realtime Form. All pages containing an object of one of these classes will have Realtime Form enabled when edited with the "Inline form" or "Object" editor.
    • Only the classes with a bounded sheet are displayed in that list. If you want to enable realtime with another class, you can add it in the list using the input field.
These configurable elements can be overridden by applications. If you want to allow RealTime Form in an extension independently from the wiki configuration, you can simply add the following line in the main class sheet:
$xwiki.jsx.use('RTForm.MakeRealtime')
Note for developers : If you want to check if realtime collaboration is allowed by a user, it is recommended to use the value stored in the localStorage. You just have to check if localStorage.getItem('realtime-disallow') is null or empty (realtime allowed) or equals to 1 (realtime disallowed).

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

Release Notes

v1.6

Use the new Realtime Frontend with reconnecting websockets to re-enable editing after a connection failure

v1.5

Ability to add non-listed classes in the configurable field (for the old applications that don't use a sheet)
Ability to force RTForm in an application with $xwiki.jsx.use('RTForm.MakeRealtime') (ignore the configurable fields)

v1.4

Add a configurable class to enable RTForm on the whole wiki or only on selected classes.
In a subwiki, if it is not configured, the main wiki configuration will be used instead.

v1.3

Update the toolbar style
Update the RTFrontend  dependency to version 1.4

v1.2.1

Remove the "Join the realtime form (object) session" button since the RTForm/object mode is disabled

v1.2

Fix an issue causing the Wysiwyg editors in form to be in read-only mode

v1.1

Disable RTForm in the object editor which has a wrong behavior when an object is added to the document.
Improve the style of RTForm (toolbar and green-shadow on realtime fields)
Add configurable elements in the admin interface:

  • Allow RTForm in the whole wiki: RTForm is available in all pages when using "Inline form" editing
  • Allow RTForm for selected classes: only the classes using a sheet are available here
 Version 1.2 fixes a bug introduced in that version and should be installed instead 

Dependencies

Dependencies for this extension (yannflory:rtform 1.6):

Tags:
Created by Yann Flory on 2016/06/02 18:14
    

Get Connected