Branch: refs/heads/master
Home:
https://github.com/xwiki/xwiki-platform
Commit: 34777759063f2ab608fa37c8dc5546bf406464e8
https://github.com/xwiki/xwiki-platform/commit/34777759063f2ab608fa37c8dc55…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/pom.xml
M
xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/java/org/xwiki/netflux/EntityChannel.java
M
xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/main/java/org/xwiki/netflux/EntityChannelStore.java
A
xwiki-platform-core/xwiki-platform-netflux/xwiki-platform-netflux-api/src/test/java/org/xwiki/netflux/EntityChannelTest.java
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Implement hashCode and equals for EntityChannel to be able to use it properly in
hash-based collections.
Commit: c8ab554a281e3b6d3c6b1c9e87508af1faa87d0c
https://github.com/xwiki/xwiki-platform/commit/c8ab554a281e3b6d3c6b1c9e8750…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-test/xwiki-platform-ckeditor-test-pageobjects/src/main/java/org/xwiki/ckeditor/test/po/RichTextAreaElement.java
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Improve the RichTextAreaElement PO:
** When waiting for some HTML content or text we need to take into account that the
editable content (including the root) can be reloaded, e.g. as a result of inserting or
updating a macro (posibly from a remote change).
** I couldn't find a cross browser way to type text into the rich text area that
reproduces the real user interaction, especially when dealing with nested editable areas
(for in-line editable macros), so I had to write code specific to Firefox and Chrome.
Commit: b7ffa88566e3516b6bc6a55bfbfbb5dc9a85d4db
https://github.com/xwiki/xwiki-platform/commit/b7ffa88566e3516b6bc6a55bfbfb…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-loading/plugin.js
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-macro/plugin.js
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-realtime/ckeditorRealtimeAdapter.js
M
xwiki-platform-core/xwiki-platform-ckeditor/xwiki-platform-ckeditor-plugins/src/main/webjar/xwiki-selection/plugin.js
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Overwrite CKEditor#setReadOnly to better handle "nesting" (e.g. if two async
processes make the editor read-only and then restore it, we want the restore to happen
only after both processes trigger it).
* Improve the xwiki-refresh command:
** Add a onceAfterRefresh helper that covers a recurring need to execute some code after a
refresh command is executed.
** We should be able to execute the refresh command when the editor is read-only.
Moreover, the refresh command doesn't need to focus the editor and it doesn't
depend on the current selection.
** Add an option to the refresh command to skip preserving the selection (the code
executing the refresh command may want to control how the selection is preserved).
** Notify the refresh is done only after the macro widgets are ready for user
interaction.
* Improve macro insertion:
** Wait for the editor to be ready before inserting a macro (e.g. if a refresh is
currently being executed as a result of a remote change that inserted a new macro or
modified the parameters of an exisiting one).
** Take into account that the widget for which we opened the Macro Edit Modal might not
exist anymore after we submit the modal because the edited content has been refreshed in
the mean time. If the selection was preserved we can try to find again the edited widget.
** Place the caret inside the first nested editable (that corresponds to a macro parameter
or content), if the macro is editable inline, otherwise select the inserted macro.
* The realtime editor needs to know when the editor is being locked/unlocked (i.e. in
loading state).
* Fix getOutputHTML to return only the edited content (without any wrapping), in order to
have consistency between standalone and in-place edit mode.
* Don't trigger change events (for realtime) when the editor is read-only (there may
be some intermediary states that we don't wan to synchronize).
* When the content is updated as a result of a remote change we need to detect if that
change inserted a new macro or modified the parameters of an existing macro. If that is
the case then we need to refresh the content.
Commit: 3822c3a2846d7d66ed97149cd5b05160e7376929
https://github.com/xwiki/xwiki-platform/commit/3822c3a2846d7d66ed97149cd5b0…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/loader.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/saver.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-webjar/src/main/webjar/userData.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wiki/xwiki-platform-realtime-wiki-webjar/src/main/webjar/wikiEditor.js
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Make sure we use a single (same) WebSocket connection for all our channels (all events,
content, saver, user data).
* Make it possible to wait for the Saver and User Data connections to be ready.
Commit: 5cbc506a93c5ce73be8675aa9f488fcd62d03334
https://github.com/xwiki/xwiki-platform/commit/5cbc506a93c5ce73be8675aa9f48…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/editor.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/patches.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/transformers.js
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-webjar/src/main/webjar/wysiwygEditor.js
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Make Editor#contentUpdated() async because it may trigger a content refresh (if macros
are affected) in which case we need to be able to wait for the content to be rendered
server-side.
* Synchronize editors on the output HTML (what is sent to the server to be converted to
wiki syntax). Everything that is not included in the output HTML (e.g. macro output for
macros that are not editable inline, user state such as selected widget) is considered a
local change that needs to be rebased on top of all received remote changes.
* Make setHyperJSON async because it needs to wait for the content to be updated (e.g.
server-side rendering in case of a macro change).
* Detect if a remote change inserts a new macro or modifies the parameters of an existing
macro
* Drop content normalization (for now) and rely instead on rebasing local changes that are
not shared.
* Improve the rebase transformation to better preserve intention (logic) and to reduce the
risk of getting invalid JSON as a result.
* Wait for the Saver and User Data to be ready before allowing the user to type.
* "Pause" the realtime sync while the editor is waiting for server-side
rendering of macros, and then perform a merge before resuming the realtime sync.
* Re-fetch the channel keys when re-joining the realtime session because the channels may
have been closed in the mean time (if they were ever created).
Commit: acb7b8e3fdf7ad17f07cc55a22ecaa49202345f4
https://github.com/xwiki/xwiki-platform/commit/acb7b8e3fdf7ad17f07cc55a22ec…
Author: Marius Dumitru Florea <marius(a)xwiki.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-test/xwiki-platform-realtime-wysiwyg-test-docker/src/test/it/org/xwiki/realtime/wysiwyg/test/ui/RealtimeWYSIWYGEditorIT.java
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-test/xwiki-platform-realtime-wysiwyg-test-pageobjects/src/main/java/org/xwiki/realtime/wysiwyg/test/po/RealtimeCKEditorToolBar.java
M
xwiki-platform-core/xwiki-platform-realtime/xwiki-platform-realtime-wysiwyg/xwiki-platform-realtime-wysiwyg-test/xwiki-platform-realtime-wysiwyg-test-pageobjects/src/main/java/org/xwiki/realtime/wysiwyg/test/po/RealtimeWYSIWYGEditPage.java
Log Message:
-----------
XWIKI-21767: Dynamic macros are not properly synchronized
* Update the existing functional tests.
* Increase a bit the "error" margin for the auto-save timeout to avoid some rare
test failure.
* Proper wait for the realtime editor to be ready before starting typing.
Compare:
https://github.com/xwiki/xwiki-platform/compare/821d43ec45e6...acb7b8e3fdf7
To unsubscribe from these emails, change your notification settings at
https://github.com/xwiki/xwiki-platform/settings/notifications