From 5181518696ec3a771db0be5d8aef479f1d3fc2c9 Mon Sep 17 00:00:00 2001
From: Marius Dumitru Florea <marius@xwiki.com>
Date: Tue, 14 Sep 2021 17:02:45 +0300
Subject: [PATCH] XWIKI-18860: Cleanup and integrate the Netflux front-end
 (realtime-netflux-frontend) * Improve code organization

---
 xwiki-platform-core/pom.xml                   |   1 +
 .../xwiki-platform-netflux/pom.xml            |   4 +-
 .../resources/ApplicationResources.properties | 102 +++++++++---------
 .../ApplicationResources_fr.properties        | 102 +++++++++---------
 .../xwiki-platform-realtime/pom.xml           |  38 +++++++
 .../xwiki-platform-realtime-ui}/pom.xml       |   8 +-
 .../src/main/resources/RTFrontend/Ajax.xml    |   0
 .../RTFrontend/ConfigurationClass.xml         |   0
 .../main/resources/RTFrontend/ConvertHTML.xml |   0
 .../main/resources/RTFrontend/ErrorBox.xml    |   0
 .../src/main/resources/RTFrontend/GetKey.xml  |   0
 .../src/main/resources/RTFrontend/Version.xml |   0
 .../src/main/resources/RTFrontend/WebHome.xml |  26 +++--
 .../xwiki-platform-realtime-webjar}/pom.xml   |   6 +-
 .../src/main/webjar/cursor.js                 |   2 +-
 .../src/main/webjar/interface.css             |   0
 .../src/main/webjar/interface.js              |   2 +-
 .../src/main/webjar/loader.js                 |  27 +++--
 .../src/main/webjar/messages.js               |   6 +-
 .../src/main/webjar/saver.js                  |   6 +-
 .../src/main/webjar/toolbar.css               |   0
 .../src/main/webjar/toolbar.js                |   4 +-
 .../src/main/webjar/typingTests.js            |   2 +-
 .../src/main/webjar/userData.js               |   2 +-
 24 files changed, 190 insertions(+), 148 deletions(-)
 create mode 100644 xwiki-platform-core/xwiki-platform-realtime/pom.xml
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/pom.xml (92%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/Ajax.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/ConfigurationClass.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/ConvertHTML.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/ErrorBox.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/GetKey.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/Version.xml (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-ui => xwiki-platform-realtime/xwiki-platform-realtime-ui}/src/main/resources/RTFrontend/WebHome.xml (97%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/pom.xml (93%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/cursor.js (98%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/interface.css (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/interface.js (98%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/loader.js (97%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/messages.js (96%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/saver.js (99%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/toolbar.css (100%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/toolbar.js (97%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/typingTests.js (97%)
 rename xwiki-platform-core/{xwiki-platform-netflux/xwiki-platform-netflux-webjar => xwiki-platform-realtime/xwiki-platform-realtime-webjar}/src/main/webjar/userData.js (97%)

diff --git a/xwiki-platform-core/pom.xml b/xwiki-platform-core/pom.xml
index 0f2682946ec..fcd74d0a8ab 100644
--- a/xwiki-platform-core/pom.xml
+++ b/xwiki-platform-core/pom.xml
@@ -255,6 +255,7 @@
     <module>xwiki-platform-panels</module>
     <module>xwiki-platform-query</module>
     <module>xwiki-platform-ratings</module>
+    <module>xwiki-platform-realtime</module>
     <module>xwiki-platform-refactoring</module>
     <module>xwiki-platform-release</module>
     <module>xwiki-platform-rendering</module>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/pom.xml b/xwiki-platform-core/xwiki-platform-netflux/pom.xml
index 3837512ac43..27615022326 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-netflux/pom.xml
@@ -30,10 +30,8 @@
   <artifactId>xwiki-platform-netflux</artifactId>
   <name>XWiki Platform - Netflux</name>
   <packaging>pom</packaging>
-  <description>The Netflux modules used to support real-time editing in XWiki</description>
+  <description>The Netflux modules used to support real-time synchronization in XWiki.</description>
   <modules>
     <module>xwiki-platform-netflux-api</module>
-    <module>xwiki-platform-netflux-ui</module>
-    <module>xwiki-platform-netflux-webjar</module>
   </modules>
 </project>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources.properties b/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources.properties
index 5aedec16e3a..e95ad134c69 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources.properties
+++ b/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources.properties
@@ -17,54 +17,54 @@
 # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 # ---------------------------------------------------------------------------
-rte.editingAlone=Editing alone
-rte.editingWithOneOtherPerson=Editing with one other person
-rte.editingWith=Editing with
-rte.otherPeople=other people
-rte.disconnected=Disconnected
-rte.synchronizing=Synchronizing
-rte.reconnecting=Reconnecting...
-rte.lag=Lag
-rte.allowRealtime=Allow Realtime Collaboration
-rte.sessionInProgress=A Realtime Editor session is in progress:
-rte.saved=Saved: v{0}
-rte.mergeOverwrite=Overwrote the realtime session's content with the latest saved state
-rte.savedRemote=v{0} saved by {1}
-rte.savedRemoteNoMerge=v{0} saved by {1} in {2} - Save here to merge the content.
-rte.conflictResolved=merge conflict resolved remotely, now v{0}
-rte.mergeDialog.prompt=A change was made to the document outside of the realtime session, and the server had difficulty merging it with your version. How would you like to handle this?
-rte.mergeDialog.keepRealtime=Overwrite all changes with the current realtime version
-rte.mergeDialog.keepRemote=Overwrite all changes with the current remote version
-rte.redirectDialog.pluralPrompt=Different Realtime sessions already exist for that document. Which session do you want to join?
-rte.redirectDialog.create=Request a new realtime {0} session
-rte.waiting=Waiting for an answer
-rte.requestASession=The document is locked by another user. Do you want to request a collaborative session?
-rte.requestDialog.prompt=Someone wants to edit this document with you. Would you like to create a collaborative session?
-rte.requestDialog.create=Save and create a {0} collaborative session
-rte.requestDialog.reject=Stay offline and keep the document locked
-rte.requestDialog.autoAccept=Without action on your part, a collaborative session will be created in 
-rte.requestDialog.saveError=We were unable to save. Your request to join the collaborative session has been cancelled.
-rte.rejectDialog.prompt=Your request has been rejected. You can wait for the document to be unlocked. If you force the lock, you risk losing content.
-rte.rejectDialog.invalid=The editing mode currently used by the other user doesn't allow collaborative editing. Your request has been automatically rejected. Please wait for the document to be unlocked.
-rte.rejectDialog.ok=OK
-rte.conflictsWarning=Multiple users are editing this document concurrently.
-rte.conflictsWarningInfoRt=You can avoid these problems if they join the collaborative session.
-rte.conflictsWarningInfo=You can prevent these problems by <strong>copying or saving</strong> your changes and then 
-rte.conflictsWarningInfoLink=enabling realtime collaboration
-rte.wsError=We were unable to connect you to the realtime system.
-rte.wsErrorInfo=You won't be warned if other users want to edit the document collaboratively and you can't join a collaborative session.
-rte.wsErrorConflicts=You risk losing content if other users edit the document at the same time.
-rte.connectingBox=Connecting to the collaborative session. Please wait...
-rte.connectionLost=You've lost the connection to the collaborative session.
-rte.connectionLostInfo=The editor has been set to read-only mode while we try to reconnect.
-rte.reloadDialog.prompt=The realtime session was terminated while you were offline. The document is now in read-only mode. You can close this modal and copy your latest changes if they were not saved and then reload the page to edit it again.
-rte.reloadDialog.reload=Reload the page now
-rte.reloadDialog.exit=Close this dialog
-rte.disableDialog.prompt=You are about to leave the collaborative session. If other users are still editing the document, you risk losing content. Do you want to continue?
-rte.disableDialog.ok=Leave the collaborative session
-rte.disableDialog.exit=Cancel
-rte.versionDialog.prompt=The document has been modified since you last saved it. Please copy your changes and reload the page to get the latest version.
-rte.versionDialog.old=Your version: 
-rte.versionDialog.latest=Latest version: 
-rte.versionDialog.link=View differences
-rte.autoAcceptSave=Auto-save when switching to a collaborative session
\ No newline at end of file
+realtime.editingAlone=Editing alone
+realtime.editingWithOneOtherPerson=Editing with one other person
+realtime.editingWith=Editing with
+realtime.otherPeople=other people
+realtime.disconnected=Disconnected
+realtime.synchronizing=Synchronizing
+realtime.reconnecting=Reconnecting...
+realtime.lag=Lag
+realtime.allowRealtime=Allow Realtime Collaboration
+realtime.sessionInProgress=A Realtime Editor session is in progress:
+realtime.saved=Saved: v{0}
+realtime.mergeOverwrite=Overwrote the realtime session's content with the latest saved state
+realtime.savedRemote=v{0} saved by {1}
+realtime.savedRemoteNoMerge=v{0} saved by {1} in {2} - Save here to merge the content.
+realtime.conflictResolved=merge conflict resolved remotely, now v{0}
+realtime.mergeDialog.prompt=A change was made to the document outside of the realtime session, and the server had difficulty merging it with your version. How would you like to handle this?
+realtime.mergeDialog.keepRealtime=Overwrite all changes with the current realtime version
+realtime.mergeDialog.keepRemote=Overwrite all changes with the current remote version
+realtime.redirectDialog.pluralPrompt=Different Realtime sessions already exist for that document. Which session do you want to join?
+realtime.redirectDialog.create=Request a new realtime {0} session
+realtime.waiting=Waiting for an answer
+realtime.requestASession=The document is locked by another user. Do you want to request a collaborative session?
+realtime.requestDialog.prompt=Someone wants to edit this document with you. Would you like to create a collaborative session?
+realtime.requestDialog.create=Save and create a {0} collaborative session
+realtime.requestDialog.reject=Stay offline and keep the document locked
+realtime.requestDialog.autoAccept=Without action on your part, a collaborative session will be created in 
+realtime.requestDialog.saveError=We were unable to save. Your request to join the collaborative session has been cancelled.
+realtime.rejectDialog.prompt=Your request has been rejected. You can wait for the document to be unlocked. If you force the lock, you risk losing content.
+realtime.rejectDialog.invalid=The editing mode currently used by the other user doesn't allow collaborative editing. Your request has been automatically rejected. Please wait for the document to be unlocked.
+realtime.rejectDialog.ok=OK
+realtime.conflictsWarning=Multiple users are editing this document concurrently.
+realtime.conflictsWarningInfoRt=You can avoid these problems if they join the collaborative session.
+realtime.conflictsWarningInfo=You can prevent these problems by <strong>copying or saving</strong> your changes and then 
+realtime.conflictsWarningInfoLink=enabling realtime collaboration
+realtime.wsError=We were unable to connect you to the realtime system.
+realtime.wsErrorInfo=You won't be warned if other users want to edit the document collaboratively and you can't join a collaborative session.
+realtime.wsErrorConflicts=You risk losing content if other users edit the document at the same time.
+realtime.connectingBox=Connecting to the collaborative session. Please wait...
+realtime.connectionLost=You've lost the connection to the collaborative session.
+realtime.connectionLostInfo=The editor has been set to read-only mode while we try to reconnect.
+realtime.reloadDialog.prompt=The realtime session was terminated while you were offline. The document is now in read-only mode. You can close this modal and copy your latest changes if they were not saved and then reload the page to edit it again.
+realtime.reloadDialog.reload=Reload the page now
+realtime.reloadDialog.exit=Close this dialog
+realtime.disableDialog.prompt=You are about to leave the collaborative session. If other users are still editing the document, you risk losing content. Do you want to continue?
+realtime.disableDialog.ok=Leave the collaborative session
+realtime.disableDialog.exit=Cancel
+realtime.versionDialog.prompt=The document has been modified since you last saved it. Please copy your changes and reload the page to get the latest version.
+realtime.versionDialog.old=Your version: 
+realtime.versionDialog.latest=Latest version: 
+realtime.versionDialog.link=View differences
+realtime.autoAcceptSave=Auto-save when switching to a collaborative session
\ No newline at end of file
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources_fr.properties b/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources_fr.properties
index 2e109c31de4..61646d2be06 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources_fr.properties
+++ b/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/resources/ApplicationResources_fr.properties
@@ -17,54 +17,54 @@
 # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 # ---------------------------------------------------------------------------
-rte.editingAlone=Edition seul(e)
-rte.editingWithOneOtherPerson=Edition avec une autre personne
-rte.editingWith=Edition avec
-rte.otherPeople=autres personnes
-rte.disconnected=D\u00E9connect\u00E9
-rte.synchronizing=Synchronisation
-rte.reconnecting=Reconnection...
-rte.lag=Lag
-rte.allowRealtime=Collaboration temps-r\u00E9el
-rte.sessionInProgress=Une session de collaboration temps-r\u00E9el est en cours:
-rte.saved=Sauvegarde: v{0}
-rte.mergeOverwrite=La sessions temps-r\u00E9el a \u00E9t\u00E9 \u00E9cras\u00E9e avec le dernier contenu sauvegard\u00E9
-rte.savedRemote=v{0} sauvegard\u00E9 par {1}
-rte.savedRemoteNoMerge=v{0} sauvergard\u00E9 {1} dans {2} - Enregistrez pour fusionner le contenu.
-rte.conflictResolved=Conflit r\u00E9solu par un utilisateur distant, version v{0}
-rte.mergeDialog.prompt=Un changement a \u00E9t\u00E9 r\u00E9alis\u00E9 en dehors de la session temps-r\u00E9el, et le serveur n'a pas pu fusionner la modification avec votre version. Que voulez vous faire ?
-rte.mergeDialog.keepRealtime=Garder la session temps-r\u00E9el
-rte.mergeDialog.keepRemote=Garder les changements distants
-rte.redirectDialog.pluralPrompt=Plusieurs sessions temps-r\u00E9el existent pour ce document. Quelle session voulez-vous rejoindre ?
-rte.redirectDialog.create=Demander une nouvelle session {0}
-rte.waiting=En attente d'une r\u00E9ponse...
-rte.requestASession=Le document est verrouill\u00E9 par un autre utilisateur. Souhaitez-vous demander une session collaborative ?
-rte.requestDialog.prompt=Un autre utilisateur souhaite modifier ce document. Acceptez-vous de cr\u00E9er une session collaborative ?
-rte.requestDialog.create=Sauver et cr\u00E9er une session {0} collaborative
-rte.requestDialog.reject=Garder le document verrouill\u00E9
-rte.requestDialog.autoAccept=Sans action de votre part, une session collaborative sera cr\u00E9\u00E9e dans 
-rte.requestDialog.saveError=Nous n'avons pas pu sauver le document. Vous n'avez donc pas rejoint la session collaborative.
-rte.rejectDialog.prompt=Votre demande a \u00E9t\u00E9 refus\u00E9e. Vous pouvez attendre que le document soit d\u00E9verrouill\u00E9. Si vous forcez l'\u00E9dition, you risquez de perdre du contenu.
-rte.rejectDialog.invalid=Le mode d'\u00E9dition utilis\u00E9 actuellement pas l'autre \u00E9diteur ne permet pas l'\u00E9dition collaborative. Votre demande a \u00E9t\u00E9 refus\u00E9e automatiquement. Veuillez attendre que le document soit d\u00E9verrouill\u00E9.
-rte.rejectDialog.ok=OK
-rte.conflictsWarning=Plusieurs utilisateurs modifient ce document en m\u00EAme temps.
-rte.conflictsWarningInfoRt=Vous pouvez \u00E9viter ces probl\u00E8mes s'ils rejoingnent la session collaborative.
-rte.conflictsWarningInfo=Vous pouvez \u00E9viter ces probl\u00E8mes en <strong>copiant ou sauvant</strong> vos modifications puis en 
-rte.conflictsWarningInfoLink=activant la collaboration en temps-r\u00E9el
-rte.wsError=Nous n'avons pas r\u00E9ussi \u00E0 vous connecter au syst\u00E8me temps-r\u00E9el.
-rte.wsErrorInfo=Vous ne serez pas pr\u00E9venu si quelqu'un souhaite modifier le document collaborativement et vous ne pouvez pas rejoindre une session collaborative.
-rte.wsErrorConflicts=Vous risquez de perdre du contenu si d'autres personnes modifient le document en m\u00EAme temps.
-rte.connectingBox=Connexion \u00E0 la session collaborative. Veuillez patienter...
-rte.connectionLost=Vous avez perdu la connexion \u00E0 la session collaborative.
-rte.connectionLostInfo=L'\u00E9diteur est pass\u00E9 en mode lecture-seule pendant que nous essayons de vous reconnecter.
-rte.reloadDialog.prompt=La session collaborative a \u00E9t\u00E9 interrompue pendant que vous \u00E9tiez d\u00E9connect\u00E9. Le document est d\u00E9sormais en mode lecture-seule. Vous pouvez fermer ce message et copier vos derniers changements s'ils n'ont pas \u00E9t\u00E9 sauv\u00E9s, puis recharger la page pour reprendre l'\u00E9dition.
-rte.reloadDialog.reload=Recharger la page maintenant
-rte.reloadDialog.exit=Fermer ce message
-rte.disableDialog.prompt=Vous \u00EAtes sur le point de quitter la session collaborative. Si d'autres utilisateurs sont encore pr\u00E9sents et effectuent des modifications, vous risquez de perdre des donn\u00E9es. Souhaitez-vous continuer ?
-rte.disableDialog.ok=Quitter la session collaborative
-rte.disableDialog.exit=Annuler
-rte.versionDialog.prompt=Le document a \u00E9t\u00E9 modifi\u00E9 depuis votre derni\u00E8re sauvegarde. Veuillez copier vos derni\u00E8res modifications et recharger la page pour obtenir la derni\u00E8re version.
-rte.versionDialog.old=Votre version : 
-rte.versionDialog.latest=Derni\u00E8re version : 
-rte.versionDialog.link=Voir les diff\u00E9rences
-rte.autoAcceptSave=Sauvegarde automatique lors du passage \u00E0 une session collaborative
\ No newline at end of file
+realtime.editingAlone=Edition seul(e)
+realtime.editingWithOneOtherPerson=Edition avec une autre personne
+realtime.editingWith=Edition avec
+realtime.otherPeople=autres personnes
+realtime.disconnected=D\u00E9connect\u00E9
+realtime.synchronizing=Synchronisation
+realtime.reconnecting=Reconnection...
+realtime.lag=Lag
+realtime.allowRealtime=Collaboration temps-r\u00E9el
+realtime.sessionInProgress=Une session de collaboration temps-r\u00E9el est en cours:
+realtime.saved=Sauvegarde: v{0}
+realtime.mergeOverwrite=La sessions temps-r\u00E9el a \u00E9t\u00E9 \u00E9cras\u00E9e avec le dernier contenu sauvegard\u00E9
+realtime.savedRemote=v{0} sauvegard\u00E9 par {1}
+realtime.savedRemoteNoMerge=v{0} sauvergard\u00E9 {1} dans {2} - Enregistrez pour fusionner le contenu.
+realtime.conflictResolved=Conflit r\u00E9solu par un utilisateur distant, version v{0}
+realtime.mergeDialog.prompt=Un changement a \u00E9t\u00E9 r\u00E9alis\u00E9 en dehors de la session temps-r\u00E9el, et le serveur n'a pas pu fusionner la modification avec votre version. Que voulez vous faire ?
+realtime.mergeDialog.keepRealtime=Garder la session temps-r\u00E9el
+realtime.mergeDialog.keepRemote=Garder les changements distants
+realtime.redirectDialog.pluralPrompt=Plusieurs sessions temps-r\u00E9el existent pour ce document. Quelle session voulez-vous rejoindre ?
+realtime.redirectDialog.create=Demander une nouvelle session {0}
+realtime.waiting=En attente d'une r\u00E9ponse...
+realtime.requestASession=Le document est verrouill\u00E9 par un autre utilisateur. Souhaitez-vous demander une session collaborative ?
+realtime.requestDialog.prompt=Un autre utilisateur souhaite modifier ce document. Acceptez-vous de cr\u00E9er une session collaborative ?
+realtime.requestDialog.create=Sauver et cr\u00E9er une session {0} collaborative
+realtime.requestDialog.reject=Garder le document verrouill\u00E9
+realtime.requestDialog.autoAccept=Sans action de votre part, une session collaborative sera cr\u00E9\u00E9e dans 
+realtime.requestDialog.saveError=Nous n'avons pas pu sauver le document. Vous n'avez donc pas rejoint la session collaborative.
+realtime.rejectDialog.prompt=Votre demande a \u00E9t\u00E9 refus\u00E9e. Vous pouvez attendre que le document soit d\u00E9verrouill\u00E9. Si vous forcez l'\u00E9dition, you risquez de perdre du contenu.
+realtime.rejectDialog.invalid=Le mode d'\u00E9dition utilis\u00E9 actuellement pas l'autre \u00E9diteur ne permet pas l'\u00E9dition collaborative. Votre demande a \u00E9t\u00E9 refus\u00E9e automatiquement. Veuillez attendre que le document soit d\u00E9verrouill\u00E9.
+realtime.rejectDialog.ok=OK
+realtime.conflictsWarning=Plusieurs utilisateurs modifient ce document en m\u00EAme temps.
+realtime.conflictsWarningInfoRt=Vous pouvez \u00E9viter ces probl\u00E8mes s'ils rejoingnent la session collaborative.
+realtime.conflictsWarningInfo=Vous pouvez \u00E9viter ces probl\u00E8mes en <strong>copiant ou sauvant</strong> vos modifications puis en 
+realtime.conflictsWarningInfoLink=activant la collaboration en temps-r\u00E9el
+realtime.wsError=Nous n'avons pas r\u00E9ussi \u00E0 vous connecter au syst\u00E8me temps-r\u00E9el.
+realtime.wsErrorInfo=Vous ne serez pas pr\u00E9venu si quelqu'un souhaite modifier le document collaborativement et vous ne pouvez pas rejoindre une session collaborative.
+realtime.wsErrorConflicts=Vous risquez de perdre du contenu si d'autres personnes modifient le document en m\u00EAme temps.
+realtime.connectingBox=Connexion \u00E0 la session collaborative. Veuillez patienter...
+realtime.connectionLost=Vous avez perdu la connexion \u00E0 la session collaborative.
+realtime.connectionLostInfo=L'\u00E9diteur est pass\u00E9 en mode lecture-seule pendant que nous essayons de vous reconnecter.
+realtime.reloadDialog.prompt=La session collaborative a \u00E9t\u00E9 interrompue pendant que vous \u00E9tiez d\u00E9connect\u00E9. Le document est d\u00E9sormais en mode lecture-seule. Vous pouvez fermer ce message et copier vos derniers changements s'ils n'ont pas \u00E9t\u00E9 sauv\u00E9s, puis recharger la page pour reprendre l'\u00E9dition.
+realtime.reloadDialog.reload=Recharger la page maintenant
+realtime.reloadDialog.exit=Fermer ce message
+realtime.disableDialog.prompt=Vous \u00EAtes sur le point de quitter la session collaborative. Si d'autres utilisateurs sont encore pr\u00E9sents et effectuent des modifications, vous risquez de perdre des donn\u00E9es. Souhaitez-vous continuer ?
+realtime.disableDialog.ok=Quitter la session collaborative
+realtime.disableDialog.exit=Annuler
+realtime.versionDialog.prompt=Le document a \u00E9t\u00E9 modifi\u00E9 depuis votre derni\u00E8re sauvegarde. Veuillez copier vos derni\u00E8res modifications et recharger la page pour obtenir la derni\u00E8re version.
+realtime.versionDialog.old=Votre version : 
+realtime.versionDialog.latest=Derni\u00E8re version : 
+realtime.versionDialog.link=Voir les diff\u00E9rences
+realtime.autoAcceptSave=Sauvegarde automatique lors du passage \u00E0 une session collaborative
\ No newline at end of file
diff --git a/xwiki-platform-core/xwiki-platform-realtime/pom.xml b/xwiki-platform-core/xwiki-platform-realtime/pom.xml
new file mode 100644
index 00000000000..b2a842e8c6f
--- /dev/null
+++ b/xwiki-platform-core/xwiki-platform-realtime/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.xwiki.platform</groupId>
+    <artifactId>xwiki-platform-core</artifactId>
+    <version>13.8-SNAPSHOT</version>
+  </parent>
+  <artifactId>xwiki-platform-realtime</artifactId>
+  <name>XWiki Platform - Realtime</name>
+  <packaging>pom</packaging>
+  <description>Adds support for real-time editing in XWiki.</description>
+  <modules>
+    <module>xwiki-platform-realtime-ui</module>
+    <module>xwiki-platform-realtime-webjar</module>
+  </modules>
+</project>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/pom.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/pom.xml
similarity index 92%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/pom.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/pom.xml
index 534814ca4fe..88ca6d8c6c6 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/pom.xml
@@ -24,11 +24,11 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.xwiki.platform</groupId>
-    <artifactId>xwiki-platform-netflux</artifactId>
+    <artifactId>xwiki-platform-realtime</artifactId>
     <version>13.8-SNAPSHOT</version>
   </parent>
-  <artifactId>xwiki-platform-netflux-ui</artifactId>
-  <name>XWiki Platform - Netflux - UI</name>
+  <artifactId>xwiki-platform-realtime-ui</artifactId>
+  <name>XWiki Platform - Realtime - UI</name>
   <packaging>xar</packaging>
   <dependencies>
     <dependency>
@@ -66,7 +66,7 @@
     </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>xwiki-platform-netflux-webjar</artifactId>
+      <artifactId>xwiki-platform-realtime-webjar</artifactId>
       <version>${project.version}</version>
       <scope>runtime</scope>
     </dependency>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/Ajax.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/Ajax.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/Ajax.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/Ajax.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ConfigurationClass.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ConfigurationClass.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ConfigurationClass.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ConfigurationClass.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ConvertHTML.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ConvertHTML.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ConvertHTML.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ConvertHTML.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ErrorBox.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ErrorBox.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/ErrorBox.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/ErrorBox.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/GetKey.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/GetKey.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/GetKey.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/GetKey.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/Version.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/Version.xml
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/Version.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/Version.xml
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/WebHome.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/WebHome.xml
similarity index 97%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/WebHome.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/WebHome.xml
index 6b17869c127..c09ea8cf568 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-ui/src/main/resources/RTFrontend/WebHome.xml
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-ui/src/main/resources/RTFrontend/WebHome.xml
@@ -615,26 +615,32 @@
     <property>
       <content>{{velocity}}
 {{html clean="false"}}
-## FIXME: This is not consistent with the Version service (time vs. versionTime).
-#set ($versionInfo = {
-  'version': $tdoc.version,
-  'locale': $tdoc.locale,
-  'time': $tdoc.date.time
-})
 #set ($configRef = $services.model.resolveDocument('RTFrontend.WebHome'))
 #set ($configObj = $xwiki.getDocument($configRef).getObject('RTFrontend.ConfigurationClass'))
 #if ("$!configObj.getValue('useGlobalConfig')" != '0' &amp;&amp; !$xcontext.isMainWiki())
     #set ($configRef = $services.model.createDocumentReference($xcontext.mainWikiName, 'RTFrontend', 'WebHome'))
     #set ($configObj = $xwiki.getDocument($configRef).getObject('RTFrontend.ConfigurationClass'))
 #end
+#getUserAvatarURL($xcontext.userReference $avatarURL 120)
+## FIXME: This is not consistent with the Version service (time vs. versionTime).
 #set ($config = {
+  'webSocketURL': $services.websocket.url('netflux'),
+  'user': {
+    'name': $xwiki.getUserName($xcontext.user, false),
+    'avatarURL': $avatarURL.url,
+    'advanced': $isAdvancedUser
+  },
+  'versionInfo': {
+    'version': $tdoc.version,
+    'locale': $tdoc.realLocale,
+    'time': $tdoc.date.time
+  },
   'toolbarUserlist': $configObj.getValue('toolbarUserlist'),
   'marginAvatar': $configObj.getValue('marginAvatar'),
-  'enableMerge': $configObj.getValue('enableMerge')
+  'enableMerge': $configObj.getValue('enableMerge'),
+  'demoMode': $stringtool.equals($request.demoMode, 'true')
 })
-&lt;script id="realtime-frontend-getversion" type="application/json"&gt;$jsontool.serialize($versionInfo).replace(
-  '&lt;', '\u003C')&lt;/script&gt;
-&lt;script id="realtime-frontend-getconfig" type="application/json"&gt;$jsontool.serialize($config).replace(
+&lt;script id="realtime-config" type="application/json"&gt;$jsontool.serialize($config).replace(
   '&lt;', '\u003C')&lt;/script&gt;
 {{/html}}
 {{/velocity}}</content>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/pom.xml b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/pom.xml
similarity index 93%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/pom.xml
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/pom.xml
index 4573bc2e4c6..53b1cd61b4e 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/pom.xml
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/pom.xml
@@ -24,12 +24,12 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.xwiki.platform</groupId>
-    <artifactId>xwiki-platform-netflux</artifactId>
+    <artifactId>xwiki-platform-realtime</artifactId>
     <version>13.8-SNAPSHOT</version>
   </parent>
   <packaging>webjar</packaging>
-  <artifactId>xwiki-platform-netflux-webjar</artifactId>
-  <name>XWiki Platform - Netflux - WebJar</name>
+  <artifactId>xwiki-platform-realtime-webjar</artifactId>
+  <name>XWiki Platform - Realtime - WebJar</name>
   <description>JavaScript resources required by the real-time editors.</description>
   <dependencies>
     <dependency>
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/cursor.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/cursor.js
similarity index 98%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/cursor.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/cursor.js
index 0a73e07e472..29bced9b00e 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/cursor.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/cursor.js
@@ -17,7 +17,7 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-cursor', ['rangy-core'], function (Rangy) {
+define('xwiki-realtime-cursor', ['rangy-core'], function (Rangy) {
   'use strict';
   var verbose = function(x) {
     if (window.verboseMode) {
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/interface.css b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/interface.css
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/interface.css
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/interface.css
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/interface.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/interface.js
similarity index 98%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/interface.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/interface.js
index ef1b0428097..30ab3083261 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/interface.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/interface.js
@@ -19,7 +19,7 @@
  */
 // This file defines functions which are used by the real-time editors (Wiki / WYSIWYG) and address components of the
 // user interface.
-define('xwiki-rte-interface', ['jquery'], function($) {
+define('xwiki-realtime-interface', ['jquery'], function($) {
   'use strict';
 
   var Interface = {};
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/loader.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/loader.js
similarity index 97%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/loader.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/loader.js
index 7a2f79fb46e..d295b67eeb1 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/loader.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/loader.js
@@ -17,27 +17,26 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-loader', [
+define('xwiki-realtime-loader', [
   'jquery',
   'xwiki-meta',
-  'xwiki-l10n!xwiki-rte-messages',
+  'xwiki-l10n!xwiki-realtime-messages',
   'xwiki-events-bridge'
 ], function($, xm, Messages) {
   'use strict';
 
-  var context = JSON.parse($('#rte-context').text());
+  var realtimeConfig = JSON.parse($('#realtime-config').text());
 
-  if (!context?.webSocketURL) {
+  if (!realtimeConfig.webSocketURL) {
     console.log('The WebSocket URL is missing. Aborting attempt to configure a realtime session.');
     return false;
   }
 
   var module = {messages: Messages},
   documentReference = XWiki.Model.serialize(xm.documentReference),
-  versionJSON = JSON.parse($('#realtime-frontend-getversion').html() || '{}'),
-  language = versionJSON.locale || 'default',
-  version = versionJSON.version,
-  versionTime = versionJSON.time,
+  language = realtimeConfig.versionInfo?.locale || 'default',
+  version = realtimeConfig.versionInfo?.version,
+  versionTime = realtimeConfig.versionInfo?.time,
 
   getDocLock = module.getDocLock = function() {
     var lockedBy = document.querySelectorAll('p.xwikimessage .wikilink a');
@@ -77,17 +76,17 @@ define('xwiki-rte-loader', [
         version,
         safeSave
       },
-      WebsocketURL: context.webSocketURL,
+      WebsocketURL: realtimeConfig.webSocketURL,
       htmlConverterUrl: new XWiki.Document('ConvertHTML', 'RTFrontend').getURL('get'),
       // userId === <userReference>-encoded(<userName>)%2d<random number>
-      userName: userReference + '-' + encodeURIComponent(context.user.name + '-').replace(/-/g, '%2d') +
+      userName: userReference + '-' + encodeURIComponent(realtimeConfig.user.name + '-').replace(/-/g, '%2d') +
         String(Math.random()).substring(2),
       language,
       reference: documentReference,
-      DEMO_MODE: context.demoMode,
+      DEMO_MODE: realtimeConfig.demoMode,
       LOCALSTORAGE_DISALLOW: 'realtime-disallow',
-      userAvatarURL: context.user.avatarURL,
-      isAdvancedUser: context.user.advanced,
+      userAvatarURL: realtimeConfig.user.avatarURL,
+      isAdvancedUser: realtimeConfig.user.advanced,
       network: allRt.network,
       abort: $.proxy(module, 'onRealtimeAbort'),
       onKeysChanged: $.proxy(module, 'onKeysChanged'),
@@ -685,7 +684,7 @@ define('xwiki-rte-loader', [
     getKeys(keyData, function(data) {
       var channelKey = data?.[config.reference]?.[config.language + '/events']?.all.key;
       if (channelKey) {
-        require(['netflux-client', 'xwiki-rte-errorBox'], function(Netflux, ErrorBox) {
+        require(['netflux-client', 'xwiki-realtime-errorBox'], function(Netflux, ErrorBox) {
           var onError = function (error) {
             allRt.error = true;
             displayWsWarning();
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/messages.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/messages.js
similarity index 96%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/messages.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/messages.js
index 015430fde5d..3cbb87b08e1 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/messages.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/messages.js
@@ -17,8 +17,8 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-messages', {
-  prefix: 'rte.',
+define('xwiki-realtime-messages', {
+  prefix: 'realtime.',
   keys: [
     'editingAlone',
     'editingWithOneOtherPerson',
@@ -31,7 +31,7 @@ define('xwiki-rte-messages', {
     'allowRealtime',
     'sessionInProgress',
     'saved',
-    'mergeOverwrite=',
+    'mergeOverwrite',
     'savedRemote',
     'savedRemoteNoMerge',
     'conflictResolved',
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/saver.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/saver.js
similarity index 99%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/saver.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/saver.js
index 5a437dbd637..0d7b8cbb799 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/saver.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/saver.js
@@ -17,13 +17,13 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-saver', [
+define('xwiki-realtime-saver', [
   'jquery',
   'chainpad-netflux',
   'json.sortify',
-  'xwiki-rte-crypto',
+  'xwiki-realtime-crypto',
   'xwiki-meta',
-  'xwiki-rte-errorBox'
+  'xwiki-realtime-errorBox'
 ], /* jshint maxparams:false */ function($, chainpadNetflux, jsonSortify, Crypto, xwikiMeta, ErrorBox) {
   'use strict';
 
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/toolbar.css b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/toolbar.css
similarity index 100%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/toolbar.css
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/toolbar.css
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/toolbar.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/toolbar.js
similarity index 97%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/toolbar.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/toolbar.js
index 1b9192b79ce..670d6e32efe 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/toolbar.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/toolbar.js
@@ -17,7 +17,7 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-toolbar', ['jquery', 'xwiki-l10n!xwiki-rte-messages'], function($, Messages) {
+define('xwiki-realtime-toolbar', ['jquery', 'xwiki-l10n!xwiki-realtime-messages'], function($, Messages) {
   'use strict';
 
   var uid = function() {
@@ -63,7 +63,7 @@ define('xwiki-rte-toolbar', ['jquery', 'xwiki-l10n!xwiki-rte-messages'], functio
   var getOtherUsers = function(myUserId, userList, usersData) {
     var config = {};
     try {
-      config = JSON.parse($('#realtime-frontend-getconfig').html());
+      config = JSON.parse($('#realtime-config').text());
     } catch (e) {
       console.error(e);
     }
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/typingTests.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/typingTests.js
similarity index 97%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/typingTests.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/typingTests.js
index 1f32e7ca7af..ba8b6065813 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/typingTests.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/typingTests.js
@@ -17,7 +17,7 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-typingTests', function () {
+define('xwiki-realtime-typingTests', function () {
   'use strict';
   var setRandomizedInterval = function(func, target, range) {
     var timeout;
diff --git a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/userData.js b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/userData.js
similarity index 97%
rename from xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/userData.js
rename to xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/userData.js
index 909ac96a887..660a7a3944f 100644
--- a/xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-webjar/src/main/webjar/userData.js
+++ b/xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/userData.js
@@ -17,7 +17,7 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-define('xwiki-rte-userData', ['chainpad-netflux', 'json.sortify'], function(chainpadNetflux, jsonSortify) {
+define('xwiki-realtime-userData', ['chainpad-netflux', 'json.sortify'], function(chainpadNetflux, jsonSortify) {
   'use strict';
   var userData, onChange;
   var updateUserData = function(textData) {
-- 
GitLab