Changes Report

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

Notification email details

It's now possible to configure what kind of information is displayed in the "details" section of the notification emails. Currently, there are 2 levels:

  • None, if you don't want to see change details and only get links to changes
  • Standard to display the change details as diffs.

Shortcuts are now handled by the Keypress JS library

We now handle keyboard shortcuts using the Keypress JS library.

The old API for declaring and managing shortcuts has been kept (XWiki.shortcuts). However, some parameters such as propagate or type are now handled differently.

Please refer to the API to learn more.

Set the default level of details for the notification emails

The administrator can decide what is the default value when the users don't touch their settings. The following screen is available in the "Notifications" section in the Administration.

Hints for class properties

It is now possible, for developers, to add an hint in a class property. Then this hint is displayed in the object editor.

Notification emails embed images present on the mail template

The notification emails are based on a template (XWiki.Notifications.MailTemplate) that you can customize. Now it is possible to attach images to that templates, and they will be embedded in the notifications email.

To display them in the email, you need to use the syntax <img src="cid:myImage.png" />.

New super secret developers shortcuts

We are now providing the following developer shortcuts:

  • The key sequence X, X, X, A toggles the "advanced user mode" for the currently logged in user. Performing this sequence as an advanced user will switch it back to the "simple user mode" (the default).
  • The key sequence X, X, X, H toggles the "show hidden pages" option for the currently logged in user. Performing this sequence while already viewing hidden pages will switch back to hiding hidden pages (the default).

Get the complete list of developer shortcuts here.

Improved HTML Export

The HTML export has been improved to better scale with the Nested Pages concept. The exported pages are now located in directories named after the parent pages in which they are located. In addition a basic HTML index page (index.html) is now generated at the root listing and linking to all exported pages.

CKEditor Integration Improvements

CKEditor has been upgraded to the latest version 4.6.2 which brings a couple of improvements and bug fixes. The XWiki integration has been improved by enabling and configuring the Advanced Content Filter for the XWiki 2.1 syntax. This should prevent the editor from generating content that cannot be saved as wiki syntax. The filter disables automatically the editor features that generate such content. Another improvement concerns the Styles drop down from the tool bar. We removed the styles that were not supported by XWiki and we added some new styles that we hope you will like. The support for wiki rendering macros has also been improved. Inserting a block-level macro in-line will split the paragraph, avoiding the "macro cannot be used inline" error. Besides these improvements, there are a couple of integration bugs that have been fixed.

In the past, when several long running actions were happening on your wiki (page deletions, copies, subwiki creation, etc), an action had to be finished before the next one could be triggered. This is no longer the case and they run in parallel. If there are common pages affected by the various actions then a wait will still occur.

Non interactive mode in distribution job

The Distribution Job (on which Distribution Wizard is based) now support non interactive mode. For example if you want to fully automate an XWiki install and not get the Distribution Wizard you can use the the new Job REST API to start distribution job in non interactive mode before opening the instance to the public.

Confirmation before clearing notifications

Now a confirmation is asked before clearing all notifications.

Filer Stream improvements

Instance Filter output stream now support xobjects without class definition so input filters don't have to generate events for it. It automatically fallback on the xclass located in the current wiki.

Jobs improvements

  • The JobStatus now indicates the job type. There is nothing to do for Job extending AbstractJob but other will have to properly support it in the their JobStatus.
  • The Job REST API now automatically injects context information (current user, current caller, current wiki, current document, current secure document, the request URL and parameters) in the job thread.

Improvements of the Menu Application on Mobile

The space taken by the horizontal menus created with the Menu Application has been reduced by introducing menu burgers on Mobile display. The burgers are placed on the left side of the page, to avoid confusion between the Drawer menu and the horizontal menus.

CKEditor Integration Improvements

The integration with the CKEditor has been improved to support putting dedicated Insert Macro buttons on the tool bar. We enabled the native (in-browser) spellchecker and we fixed a few bugs.

Administration Improvements

The Administration has been reorganized. Most of the administration sections from the "Applications" group have been moved to existing or new groups. We applied a consistent style across all the administration sections and we added more hints for the configuration options. The administration menu is now implemented using a collapsible accordion. 

Content Menu UIXP

You are now able to contribute new content menu buttons, in addition to the existing Edit, Add, Admin and More Actions by implementing the org.xwiki.plaftorm.menu.content UI Extension Point and specifying the order.

Filtering Query parameters

It's now possible to filter not only Query statements but also Query parameters or in general any value returned by a Query object. This is achieved through a new method in QueryFilter. See the Query Module for more details. Example:

@Component
@Named("myfilter")
@Singleton
public class MyQueryFilter implements QueryFilter
{
...
    @Override
    public Query filterQuery(Query query)
    {
        return new WrappingQuery(query)
            {
                @Override
                public String getStatement()
                {
                    return ... modified statement here...
                }
            };
    }
}

Link document to corresponding extensions

A new set of scripting APIs have been introduced to link documents from the database to the corresponding installed extension.

Reset Extension changes

It's now possible to reset changes listed in the Extension diff.

Get Connected