Changes Report
Mail Sending Status list
![]()
The Mail Sending Status list of the Mail Application is now displayed using the Live Data Macro.
InputSource and OutputTarget converter improvements
![]()
The InputSource and OutputTarget converters used for example during macros and filters UI are now extensible so any extension can add support for supporting conversion from more Java types and support for more references prefixes. See Filter Module for more details
Improved Notification Widget Style
![]()
Notification widget messages are now displayed with a style that is more aligned with XWiki UI guidelines regarding spacing, border and font weight.
User profile Groups list
![]()
The list of groups of a user in the user profile is now displayed using the Live Data Macro.
Orphaned Pages list
![]()
The list of Orphaned Pages of theĀ Index Application is now displayed using the Live Data Macro.
New API to unregister a custom right
![]()
It was already possible to register a custom right, but we were missing the API to unregister it, this is now possible in the AuthorizationManager API.
History delete event
![]()
It's now possible to be notified when a range of document history versions is deleted using the event org.xwiki.bridge.event.DocumentVersionRangeDeletedEvent. See Model Bridge API for more details.
Improved display when there is no entry

A message is now displayed when there is not entries to be displayed in a Live Data.
Java API to delete a range of versions
![]()
Exposed a Java API to delete a range of versions and used it inside DeleteVersionsAction.
Document restoration events
![]()
It's now possible to be notified when a document is restored from the recycle bin using the events org.xwiki.bridge.event.DocumentRestoringEvent and org.xwiki.bridge.event.DocumentRestoredEvent. See Model Bridge API for more details.
Allow to recompute average ratings from script service
![]()
A new API methods has been added in Ratings script service to allow computing back the average ratings when needed.
The signature of the method is the following:
/**
* Recompute the average rating of a reference.
* Note that this method can be resource consuming if the set of data is large.
*
* @param reference the reference for which to recompute the average ratings.
* @return the average rating in an optional or an empty optional in case of error.
* @since 13.7RC1
* @since 13.4.3
* @since 12.10.9
*/
@Unstable
@Programming
Optional<AverageRating> recomputeAverageRating(EntityReference reference)Allow to store Like average xobjects
![]()
Like implementation is based on Ratings, and until this version the configuration of Ratings we were using was hardcoded.
We provide in this version 2 new properties that allow to store the average ratings xobjects related to the Like information: those xobjects can notably be used to perform HQL queries with the total number of likes in pages, since this data is stored in them.
The properties are the following:
## Specify if the average rating should be stored or not for likes. Default value is false.
like.averagerating.isStored=true
## Specify where the average ratings should be stored. Default value is xobject. Possible values are currently solr or xobject.
like.averagerating.hint=xobjectNamespaceURLClassLoader#isClosed()
![]()
NamespaceURLClassLoader now exposes an API to know if it has been closed.
History delete event
![]()
It's now possible to be notified when a range of document history versions is about to be deleted using the event org.xwiki.bridge.event.DocumentVersionRangeDeletingEvent. See Model Bridge API for more details.
Allow Skins to be loaded from the classloader
![]()
Skins can now be stored in extensions. If an extension installed on a wiki contains a skins/skinName/ folder, it can be discovered and used as a wiki Skin.
Provide a script service API for serializing a UserReference
![]()
It is possible to serialize a user reference with the default serializer using the user script service:
{{velocity}}
#set ($userReference = $api.returning.user)
Retrieved user: $services.user.serialize($userReference)
{{/velocity}}Byte array to InputSource
![]()
The org.xwiki.filter.input.InputSource converter now support byte[] as input.