Merge on save

Continuing the work started on XWiki 11.1 to warn users when performing conflicting edits on the same page, we finally implemented a merge on save mechanism.

This means that in case of conflict edition (two users saving the same document at the same time), instead of always displaying a window to the user asking what to do, we first try to perform a merge of both document. If the changes concerned two very different parts of the document (two different sections, an edit performed on an object against an edit of the content, etc) the user won't notice that a merge has been performed.

Now, some conflicts might still occur if both users tried to edit the same part of the document. In that case, a new window is displayed asking the user what to do.
The user will now have three different choices:

  • Merge the document and fix conflict with his/her own changes: this means that as much as possible, we try to merge the changes. Only for the part that are conflicting, we only kept the changes from the last user. This is the recommended choice.
  • Force save the document: this means no merge at all will be performed. Only the changes performed by the last user will be saved. It basically discards the changes made by the previous user.
  • Reload the editor: this choice might be taken very carefully as it might cause a loss of data. It means that the current changes performed on the document will be completely lost and the editor will be reloaded with the last changes.

The conflict window now display the changes that will be performed for each choices. Be careful with the parts in red since it shows what part of the document will be lost during the operation. Note that it's also possible to select two specific versions of the document to perform a comparison before making a choice.

Page Picker for Macro Parameters

Macro parameters that expect a page reference can now use the Page Picker to help the users select the page without having to know the reference syntax. You can see this in action when inserting the Include, Display, Table of Contents, Dashboard and Context macros from the WYSIWYG editor.

Attachment Picker for Macro Parameters

Macro parameters that expect an attachment reference can now use the Attachment Picker to help the users select or upload a file without having to know the reference syntax. You can see this in action when inserting the Office Macro from the WYSIWYG editor.

Visual Diff

You can now view how a page has changed visually from one version to another. The changes are computed on the rendered page content. You can click on the ellipsis to expand the context (to see the parts that have not changed). See the documentation for more information.

Improved Date Picker

The Date picker used to edit date properties has been improved. The new version is better integrated with the Bootstrap-based Flamingo skin and its UI adapts better to the provided date format configuration (e.g. by hiding UI elements that don't make sense). Checkout the Date Time Picker documentation for more information.

Independent Conflict Resolution

We introduced few releases ago a mechanism to detect and handle conflict edition (i.e. when two users save changes on the same page) during page edition.
Starting with this release, the conflict edition window allows one more choice: to fix each conflict individually.
This new choice is marked as advanced since it's not something easy to handle.

When choosing the new option, the UI is updated to display the changes between the latest version saved and the current version the user is trying to save. At each place a conflict occurred, the changes display an orange bar and a blue area is reserved for the conflict resolution.
This blue area displays some text, and a select with several choices. The displayed text in the blue area is what will be used for fixing the conflict, you can see the text changing for each choice.

The conflict choices are the following:

  • current version (default): the conflict is fixed by getting the current changes
  • before your changes: the conflict is fixed by getting what was there before you starting to edit. Both latest version saved and your current changes would be lost for this conflict,
  • latest version saved: the change made on the latest version saved (the one you are conflicting with) are taken to fix the conflict
  • custom version: with this option, a text area is displayed to allow you to enter any new value to fix the conflict. Multiple lines can be entered.

If the choice text displays something in red, it is because no content is actually available for the chosen version to fix the conflict: usually it means the content in conflict will be removed with the choice made.

Rename AWM Application

Starting with this version you can rename/move an application created with App Within Minutes by renaming/moving its home page. Be aware though that the application code is going to be regenerated if you rename the application, which means that code customizations will be overwritten as a consequence.

Checkout the App Within Minutes documentation for more information.

Exclude top level application pages from the Navigation Panel

The top level application pages are now excluded by default from the Navigation Panel. This allows the Navigation Panel to focus more on your own content pages.

Improved view of XClasses in Object editor

It is easier now to find the XWiki Class of interest by using the new suggest box that replaces the old select element. The old way of searching is still available so the user still can explore the full list of available classes.

Warning conflict when editing a page

The edition of document is now protected against edition conflicts. It means that a user might now obtain a warning conflict window, in case another user saved the document in the meantime. This window prevents from erasing the changes made by the first user having saved. 

Allow to force save in case of editing conflict

Starting with XWiki 11.2RC1 we introduced a mechanism for detecting edit conflict during the edition of a page.

We introduced in this release a new window in case of editing conflict. You now have two main choices:

  • force save the page: in that case you will override saved while you were editing the page; they are not really lost though since they might be retrieved in the previous version of the page.
  • reload the editor: in that case your changes will be lost and the editor will be reloaded with the last version saved.

We display the diff between the version you're trying to save and the last version that has been saved, so you can copy some changes made and reapply them if you like. Note that you can also simply cancel the save and go back to the editor to make changes before trying again to save. You can click on the arrow of each action to have a quick description of what it actually means.

User Directory Configuration Live Preview

The User Directory configuration has a new setting to show/hide disabled users. Disabled users are hidden by default. The users live table is now updated automatically when the configuration is modified.

Live Table Actions use the Icon Theme

The default Actions column from the Live Table is now using the configured Icon Theme for the action icons. See the Live Table macro documentation for more information.

Easily edit the app title

The title of an application created with App Within Minutes can now be edited from the last step of the application wizard. The application title is displayed on the application home page, on the applications panel and live table, on the breadcrumb, etc. See the App Within Minutes documentation for more information.

Macro Parameter Groups

The WYSIWYG editor is now able to group macro parameters as indicated in the macro descriptor. Currently only the Include Macro has grouped parameters. There can be two types of macro parameter groups:

  • groups of related parameters (e.g. reference and type in the case of the Include Macro)
  • groups of alternative parameters (only one parameter in the group should be set); this type of groups are displayed using tabs (e.g. "Resource" and "Page" in the case of the Include Macro)

See the CKEditor Integration documentation for more information.

Inline editing of title for Box Macro

The title of the Box macro is now editable directly in the WYSIWYG editor, as it already was for its content.

Simplified Page Rename

The Rename Page dialog has been simplified:

  • the "Preserve Children" option is visible only if the page to rename has child pages.
  • the "Update Links" option is now visible only to advanced users. For simple users the back-links are always updated.

Notifications Performances

The performance of the Notifications feature has been improved by implementing some in-memory caching of events for the users and more importantly its impact on the rest of the XWiki instance has been drastically reduced by limiting the resource allocated to it. This is a stopgap solution while waiting for a future redesign of the Notifications feature for better scalability for large volumes.

Backlink support improvements

The following areas containing backlinks are now refactored when renaming a page:

  • Images and attachments in wiki content
  • Wiki content in TextArea XObjects when the content is marked as containing markup

Improved Date Filter

The look & feel of the live table date filter has been improved. You can check it on the Page Index.

"My Groups" user profile section has been renamed to "Groups"

Check the User Profile documentation for more information.

Additional information when a delete operation fails

When an error happens while deleting a page, detailed information are displayed to help understand the problem.

Display nice error message in case of path too long

In a few cases, an error might happen when creating a page, if its full path is too long. The full path is defined by the title of the page and the title of all parent pages. We now provide an UI for this error to explain what happens: the fix is generally to reduce the size of the title of the page, or to put it under another hierarchy. 

Line numbers in code macro

A new parameter has been introduced to enable line number display in the code macro. See Code Macro for more details.

The deleter of a document is now allowed to restore it even without admin right (provided the user have enough right to create a document at this location).

Create Template Provider from the Class UI

Until now, the place to create a template provider was Administration->Content->Page Templates and most of the time the need was to work together with a template created for a class. It is possible now to create the template provider from the class UI, just as the sheet and template are created. The only condition is to first create the template, in order to use it (otherwise it doesn't make sense to have a template provider for the class).

Advanced macro parameters shown last

When inserting a macro from the WYSIWYG editor the advanced macro parameters are shown at the end, most of the time hidden under the "More" link in order to simplify the UI. An advanced macro parameter might be shown at the top if it has a value set (when editing a macro).

New tip about typing the [ character when editing in WYSIWYG to get autocompletion for links.

Deprecated macro parameters are hidden

When inserting a macro from the WYSIWYG editor the deprecated macro parameters are hidden in order to discourage their usage and to simplify the UI. A deprecated macro parameter is shown only if it has a value set (when editing a macro).

Macro Category Count

When inserting a macro through the WYSIWYG Editor the macro selector now shows the number of macros available in each category.

Display page reference in the information viewer

You can now retrieve quickly the page reference of any page by going to the Information tab. The reference is by default displayed to the local wiki, but you can switch it to get a global reference for all wiki in a farm. The right button allow you to quickly copy it to the clipboard.

Job Waiting Information

You might now see a new information box instead of the progress bar if another job is currently performed against the pages you selected. In that case, you have to wait that the other job is finished or cancelled before yours start. The UI would refresh automatically.

Improved Database List Field

The Database List field that you can use when creating an application with AppWithinMinutes has been improved. It is now displayed by default using an input suggest picker that adapts to single and multiple selection. You can still change the display type if you want. If you choose the "Select" display type then you can also control its size.

The user notification filter preferences are now automatically updated when a watched page is moved/renamed.

Tags:
Created by Vincent Massol on 2016/09/23
   

Get Connected