Changes Report

Last modified by Vincent Massol on 2026/09/10 13:54

The tabulator order in the page creation Location breadcrumb now matches the visuals, going from left to right as expected.

The administration right buttons now have a proper text alternative. It can be displayed on hover.

The location picker breadcrumb icons now have a proper text alternative displayed on hover to assist in the understanding of their use.

Add parameters to the CKEditor html conversion request

A new xwiki:ckeditor:convertHTML event is send before a request to convert some content to HTML is sent by CKEditor. Listeners can add new request parameters by add properties on the data object send with the event. The example below show how to add an example parameter with value 1.

$(document).on('xwiki:ckeditor:convertHTML', function(event, data) {
    data.example = 1;
});

Allow to chose conflict fallback version when merging

The storage merge API have been improved in order to allow consumers of the API to define what should be the fallback versions to use in case of merging conflicts: by default the version is still the current version element, but it's now also possible to chose the next version element.

Suggestions for the wiki macro parameter type

It's now easier to decide what value to set in the wiki macro parameter type as suggestions are proposed: "Unknown" (the default), and "Wiki" for a parameter containing wiki markup. It's still possible to explicitly set the Java type to use.

Add concept of image to What's New API

In preparation for displaying images in the What's New UI for news items, the What's New API has been updated to support getting images for news items.

@Inject
@Named("xwikiblog")
private NewsSourceFactory factory;

@Inject
@Named("xwikiblog")
private NewsConfiguration configuration;

...
List<NewsSourceDescriptor> descriptors = this.configuration.getNewsSourceDescriptors();
NewsSourceDescriptor descriptor = descriptors.get(0);
List<NewsSourceItem> items = this.factory.create(descriptor.getParameters())
  .forUser(...)
  .forCategories(...)
  .build()
String imageURL = items.get(0).getImageURL().get();
...

Dynamic registration of rendering listeners

It is now possible to declare a rendering listener dynamically from an extension.

Livedata colors now properly use the color theme variables. This fixes the display of livedata on color themes different from Iceberg. This difference is especially important on dark colorthemes.

Updated the menu structure to make it navigable with a keyboard. Now each menu with subsections contains a proper toggle button.

TOC macro numbered property 

The numbered property of the Table of Content macro is now marked as advanced and is only proposed in the "more" section of the macro configuration dialog. This is because we're now offering a Numbered Content Application covering the numbering use case in a better way.

Available macros sorted by id

The available macros list is now sorted by ascending macro ids.

Anchor in EntityResourceReference

The anchor metadata has been added to EntityResourceReference, to align it with other entity reference-related APIs. The general goal is to be able to support anchors (a.k.a URL fragments) in references to resources.

Component role type priority

It's now possible to indicate the priority of a component among its role type siblings when it's retrieved through APIs like ComponentManager#getInstanceList and ComponentManager#getInstanceMap. In a Java component declaration, this is done through the standard javax.annotation.Priority annotation.

Note that component priority can also be used to sort event listeners.

Updated the layout of the login form to support a more intuitive keyboard navigation.

Common User Name Differentiator

It's now possible to configure an user property to be used as differentiator (hint) when displaying users in compact mode, in order to better identify users that have common or similar names. You can use an existing user property, like address, or a custom user property that you need to add first (e.g. the position inside the organization). This can be done from xwiki.properties file:

#-# [Since 14.10.12]
#-# [Since 15.5RC1]
#-# When displaying an user in a compact mode we usually rely only on the user avatar and their full name. If this is
#-# not enough to properly identify the user then this configuration can be used to display additional information.
#-#
#-# The name of the user property to be used as qualifier (hint) when displaying the user in a compact mode. This
#-# configuration is not set by default, which means no additional information is displayed:
# user.display.qualifierProperty =

For instance:

user.display.qualifierProperty = address

At the moment this configuration is taken into account only by the user picker, and is not set by default, meaning that we don't show any differentiator by default. Check out the User Module documentation for more information.

Mail Deletion

It's now possible to delete a single mail from the Admin UI, by clicking on the "Delete" button next to the mail in the Mail Status screen.

Home page change

The Youtube video located on the XWiki Standard flavor's home page has been removed (for privacy reasons and also for increased usability, as the underlying markup was complex to understand for users).

Provide strategies for grouping notifications

Notifications used to be automatically grouped using an hardcoded algorithm based on type of events and documents attached to the events. Starting with this release, we provide strategies to allow choosing how to group the events to be displayed in alert and email notifications.

This work is still at early stage since we do not provide yet an UI for users to chose their strategies, neither we provide updated templates that would work properly with all type of strategies. So if developers want to use the new strategy, they'd need to customize the notification templates.

Common User Name Differentiator

The user picker can now be configured to show additional information about the listed users (e.g. the user address or user position within the organisation) in order to help you distinguish between users with similar names. Check out the User Module documentation for more information.

Get Connected