Visual Realtime Collaborative Editor

Last modified by Thomas Mortagne on 2017/03/28 15:10

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

Caleb James DeLisle

Rating
Rate!
4 Votes
LicenseGNU Affero General Public License 3
Installable with the Extension Manager

Description

This editor is based on the CKEditor Integration Plugin that is XWiki's default editor since XWiki 8.2. It does not work with the GWT Wysiwyg editor.

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

RtWysiwyg is a visual Realtime Collaborative Editor which extends the XWiki WYSIWYG editor.

rtwysiwyg.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_rt.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.

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.23

RTWYSIWYG-64 Macros create fighting between browsers using a different language

v1.22

RTWYSIWYG-63 Use the version 1.9 of Realtime frontend

v1.21

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

v1.20

Ability to use Realtime WYSIWYG in XWiki >= 8.2 (with CkEditor as the default WYSIWYG editor).
Fix issues where users were not completely disconnected from realtime when they unchecked the box.
Improve the error messages when an error occurs.

v1.19

Fix an issue where errors were sometimes displayed in the browser's console when another user joined the session.

v1.18

Update dependencies for CkEditor (v1.7) and Realtime Frontend (1.1)
Ability to use macros in RtWysiwyg
Fix style issues creating fights between browsers

v1.17

https://jira.xwiki.org/browse/RTWYSIWYG-60
Refactor the application to use the new Realtime Frontend extension.

v1.16

Upgrade ChainPad to fix: https://jira.xwiki.org/browse/RTCHAINPAD-3
Fix quote issue in HyperJSON: https://jira.xwiki.org/browse/RTWYSIWYG-57
Fix issue with ordering of maps in HyperJSON (this causes fights): https://jira.xwiki.org/browse/RTWYSIWYG-58

v1.15

Improved simultaneous typing and upgrade to most recent version of RTBackend in order to fix https://jira.xwiki.org/browse/RTBACKEND-13

v1.14

Version 1.14 brings minor improvements to the Realtime WYSIWYG initialization process.

It changes how we identify the presence of CKEditor, as per WYSIWYG-44:

 prefer URL to resources for identifying presence of CKE

If the document lock screen is encountered, it also adds some descriptive text before the lock override link, informing the user that they will be joining a WYSIWYG realtime session (and not any other kind).

This closes RTWYSIWYG-43

 add text above 'join realtime' describing the type of session

v1.13

Version 1.13 addresses issues that arose when using the RTWiki and RTWYSIWYG extensions at the same time.

If an RTWiki session is already in progress while you attempt to start a Realtime WYSIWYG session with CKEditor, the document lock screen will instead prompt you to join the ongoing RTWiki session.

For best effect, update your RTWiki extension to version 1.18 or later.

Closes RTWYIWYG-46 and RTWSIWYG-47.

v1.12

Closes RTWYSIWYG-36

 Websocket URL is invalid

If a falsey url is provided by the XWiki environment, the realtime initialization script will abort, rather than trying to create a websocket and failing. This is usually the result of having installed the realtime back end without restarting, or some other incorrect installation procedure. See the documentation for more details.

Closes RTWYSIWYG-37

 Websocket failure during initialization can result in a locked CKEditor

CKEditor is locked by the realtime session while it initializes. iIf the websocket initialization fails, the editor will abort early. The early abort procedure now involves a step to unlock the editor and fall back to default, single-user behaviour.

Closes RTWYSIWYG-38

 Source tag is not removed in Chrome

The removal of the source button is now applied on a stricter condition.

Closes RTWYSIWYG-39

 bug report button leads to bogus URL

More careful serialization of bug report URL values from the server to the client result in correct behaviour. If the URL is not defined in the Administration panel, the button will not be displayed.

v1.11

Version 1.11 introduces a new "bug button" which will navigate to a URL in a new tab (once you have configured the URL in your Wiki).

Wiki Administrators can configure this URL by going to their Wiki Administration Panel. Under the "APPLICATIONS" sidebar there will be an entry for "Realtime WYSIWYG". This configuration panel exposes a field for an "ISSUE TRACKER URL".

This release also closes RTWYSIWYG-34, in which browsers would occasionally have their cursors stuck inside of an element which did not accept input (typically BR tags).

It also closes RTWYSIWYG-35, handling rendering errors instead of panicking and displaying an error.

Finally, it closes RTWYSIWYG-33, by adding a more specific test condition to detect the CKEditor stylesheet. This is the condition it uses to determine whether it should attempt to launch the Realtime code, which adds a checkbox to allow or disallow realtime collaboration.

v1.10

rtwysiwyg-1.10 updates to CKEditor-ui-1.4, and includes a critical bug fix.

v1.9

This is a minor version which patches an error in the serialization process and exposes debugging variables via a global variable `window.REALTIME_DEBUG`.

v1.8

This release addresses a bug triggered by leading spaces within classes, like so: " cke_show_borders", which translated into invalid css identifiers, like so: "..cke_show_borders".

https://jira.xwiki.org/browse/RTWYSIWYG-27

Additionally, this release has reintroduced usage of the ErrorBox API, which will let users know when there has been a deserialization issue.

https://jira.xwiki.org/browse/RTWYSIWYG-28

v1.6

This version Closes RTWYSIWYG-17 and RTWYSIWYG-16.

v1.4

This release syncs a browser independent representation of the DOM.

Dependencies

Dependencies for this extension (calebjamesdelisle:rtwysiwyg 1.23):

Tags:
Created by Caleb James DeLisle on 2014/08/06 17:23
    

Get Connected