Changes Report
Auto Notifications on changes

Thanks to an improvement to the AutoWatch feature of the notifications, users now get notified on changes done to pages they previously edited.
Priority between Notification Filters
![]()
Notifications Filter has now a getPriority() method, to handle advanced use-cases when a filter needs to have priority over some others.
Edit protection

As with delete and rename operations, if a user tries to modify a page belonging to an Extension, a warning will be displayed to explain that it's very risky and it should be avoided.
10.4 will introduce configuration that helps the user have more control on this behavior (disable edit completely without even a warning, allow a user to hide this warning, etc.).
The identity of the current user is now available in javascript
![]()
JavaScript developers can now get the reference of the current user thanks to the xwiki-meta module that you can use like this:
require(['xwiki-meta'], function (xm) {
console.log('Hello: ' + XWiki.Model.serialize(xm.userReference));
// Will display "Hello xwiki:XWiki.Admin" in the console
});The "network" tab is back in the user profile

The "network" tab disappeared in XWiki 10.3 for technical reasons. Thanks to the new Notifications Macro, it comes back in XWiki 10.4. It's also better than before since it now allows dismissing events.
The goal of this tab is to display all the events performed by the users you are following.
After document header extension point

It is now possible to inject some content after the document header, that is below the title / update info / actions block, by implementing the org.xwiki.platform.content.header.after UI Extension Point.
Document Tree Exclusions
![]()
The Document Tree macro has a new parameter named "exclusions" that allows you to exclude a list of nodes from the tree. For instance, in order to exclude the "XWiki" top level node you can use:
{{documentTree exclusions="document:xwiki:XWiki.WebHome" /}}Check the documentation for more information.
Navigation Panel Configuration

The top level application pages are now excluded by default from the Navigation Panel. You can still access the corresponding applications from the Applications Panel. This allows the Navigation Panel to focus more on your own content pages. However, you can disable this filter (if you wish to see all the pages) or configure other page excludes from the Wiki Administration.
Date Script Services
![]()
A new script service called $services.date is now available. It currently implements the "time ago" displays (such as "12 minutes ago") and it support a lot of locales. See: Date Script Service.
Visible Save

The save buttons bar is now always visible which makes it simpler to see the buttons, even for long pages (some users used to not find the buttons).
Improved Navigation Panel Administration

The Navigation Panel administration section has been improved with support for drag & drop. You can now drag pages from the navigation tree to exclude them and back to the tree to include them. See the Navigation Panel documentation for more information.
New Page picker in the App Within Minutes field palette

A Page picker has been integrated in the App Within Minutes and works like the User picker.
The Notifications Macro now includes a RSS view

Improvement of the icon API
![]()
It is now possible to manually pull icon theme resources and get a metadata map of an icon to customize the display.
See the Icon Theme Application extension for documentation.
Ability to set the default auto watch mode in the administration


It is now possible, for administrators, to set the default auto watch page behavior.
Compact User Picker










The List of Users and List of Groups class properties have a new compact display that shows in view mode the user / group avatar followed by the user / group name. In edit mode the selected users / groups are shown in-line. Suggestions are retrieved from both the current wiki and the main wiki, depending on the current wiki's user scope (there's no toggle to switch between local and global users anymore). See the Data Model documentation for more information. This is the same user picker that has been already integrated in the Live Table user filter.
The compact user picker has been integrated in other places such as Administration, App Within Minutes, Wiki Application, Message Sender, Solr Search user facet and Share Page.
User Picker Velocity Macro Changes
![]()
The #userPicker Velocity macro has been modified to have a compact display. There is no toggle to switch between local and global suggestions as the picker retrieves suggestions from both the current wiki and the main wiki depending on the current wiki's user scope. You can overwrite this if you want using the data-userScope parameter.
#set ($userPickerParameters = {
'id': 'wikiOwner',
'name': 'owner',
'value': $descriptor.ownerId,
'data-userScope': 'GLOBAL_ONLY'
})
#set ($multipleSelection = false)
#userPicker($multipleSelection $userPickerParameters)The JavaScript library used to fetch the suggestions and to display them has been replaced, causing modifications to the HTML structure of the user picker. This means that you may have to update your code in case you did customizations on top of the old library. The new library we use is selectize.js.
Removed misleading shortcut
![]()
Removed the META+V shortcut used in the jump dialog as it was preventing users from pasting.
Updated the comments modals


The comments pop-ups that are displayed for deleting a comment and for permalink are now bootstrap modals, having the same functionality as before.