Changes Report

Last modified by Vincent Massol on 2017/05/31

Live Data Macro

A new Live Data rendering macro is available to display dynamic lists of data. You can see it as a replacement of the existing Live Table macro, but it's not limited to that. We plan to add support for:

  • multiple layouts (table, cards, etc.)
  • advanced filtering
  • multi-sort
  • selection and batch actions
  • in-place data editing and creation (including support for editing the data structure)
  • real-time synchronization

Improved Notifications UI

The notifications menu is more clear now, and a link to see what has changed is available in the details of each event, when you click on the date.

Simplified WYSIWYG Editor Toolbar

The WYSIWYG Editor toolbar has been simplified by grouping and reorganizing the buttons, removing those that were used very rarely. Here's a summary of the changes we did:

  • the Format drop down is now the first item on the left side
  • Strike, Underline, Subscript, Superscript and Remove Format have been grouped in a drop down menu
  • the list buttons have been grouped in a dedicated drop down menu
  • the Unlink button was moved from the main toolbar to the floating toolbar that is shown when you click on a link
  • we enabled the image floating toolbar, visible when an image is selected
  • Horizontal Line, Special Character and Import from Office have been grouped in a new Insert drop down menu
  • we moved the Insert/Edit Macro button to the Insert drop down menu, where we also added shortcuts for common macros
  • we removed the Copy, Cut and Paste buttons from the toolbar. They are available in the context menu
  • we removed the Copy Formatting button, as we don't encourage the usage of in-line styles
  • we removed the Language drop down because it was causing confusion with the wiki page language

As a result the toolbar now takes a single line by default.

Display images in a lightbox

Users can now open images from the page content in a lightbox. While hovering an image, a toolbar will appear with options for opening the image in lightbox mode or to download it. The lightbox will display the image along with some information about it, depending if it's attached to a wiki page or it's an external one, and with some actions like download, toggle the browser full screen mode or start a carousel play of all images found in the page content. You can toggle the visibility of the image caption and action buttons by clicking on the image.

The lightbox feature is disabled by default and can be enabled from the Administration, Look & Feel -> Lightbox section. Checkout the documentation for more information.

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.

New Notifications Macro

It is now possible to list the notifications for the wiki by using the Notifications Macro. You can use it in any page or any dashboard. The goal is to be able to replace the Activity Stream which is going to be deprecated (too slow and missing some features).

Quick Editing Actions

You can now access most of the WYSIWYG editing features using the keyboard, just by typing / (slash). This opens the Quick Actions drop down that lists quick action suggestions based on the context. Rendering macros are exposed as quick actions. Checkout the CKEditor Integration documentation for more information.

Docker-based Multi-page PDF Export

The PDF Export Application (not bundled by default) added support for Docker-based multi-page PDF export. When installed, this application enhances the export modal to allow for multi-page selection when performing PDF export. Moreover, the PDF is now generated by default asynchronously on the server-side (in a background thread) using a headless Chrome web browser running inside a Docker container. At the end, the user is redirected to the generated PDF (as a temporary resource).

Improved Code Viewer with Blame View

The code viewer (More Actions > View Source) has been improved to look nicer and have proper line numbers that support highlighting and linking.

A new Blame View was also added to the code viewer. In this mode, each line of the document's content is annotated with the last author that modified it and the revision in which this modification was introduced. The blame view also works when viewing the source of a document revision (other than the latest one) so it can be accessed at any point in the history of a document. See the documentation for more details.

Watchlist to be replaced by Notifications

At the end of the 9.x cycle, we plan to remove the Watchlist Application from XWiki Standard. Before being able to do this, we need that the Notifications Application be able to propose the same features (and even more possibilities).

In this version, you can now receive notifications concerning a watched location (ie: a page, a page and its children, a wiki..), without enabling any specific type of events in the preferences.

This feature is disabled by default (and the Watchlist Application is active by default). See Notifications Application to know how to enable it.

New Experimental Image Dialog

The WYSIWYG editor has a new (experimental) image dialog that simplifies the insertion and edition of images. The new dialog is currently disabled by default but you can enable it from the WYSIWYG Editor section in the Wiki Administration: look for 'xwiki-image' in the drop down of disabled CKEditor plugins and uncheck it then save.

The new image dialog is integrated with the Image Style Administration section so users can apply image styles defined by an administrator. Checkout the CKEditor Integration documentation for more information.

Required Rights

When the rights of the current author are different from the rights of the page author, a required rights analyzer is executed.

This analyzer can raise a warning if:

  • the current user has more rights than the content author (e.g., a macro previously failing by lack of right might start being evaluated)
  • the current user has less rights than the content author (e.g., a macro previously working might stop working by lack of rights)

Note that this analysis is currently disabled by default. See the Admins section.

Rich editor integration on comments and annotations

Comments and annotations are now edited using the preferred content editor specified in the user profile. They were previously edited using only a plain text editor. The WYSIWYG editor is now supported and it allows for easy insertion of mentions in comments and annotations.

In-place edit for plain wiki pages

You can now edit plain wiki pages in-place, if the WYSIWYG editor is the preferred content editor.

Quick Icon Insertion

You can now search for and insert icons using the keyboard, by typing / (slash) and selecting the icon Quick Action. This opens a drop down that lists all the available icons.

Notifications fully replace the Watchlist

It's finally done! In this version, we have decided to disable the Watchlist in XWiki, by default. Instead, the Notifications Application is now the central feature in XWiki for notifications. 

Don't forget to warn your users about the need to enable email in their notification settings!

Note: you can rollback this change by disabling the Notifications Application and enabling the Watchlist again.

New Export Modal

The Export Modal has been redesigned:

  • first you need to select the export format from the list of available formats, which are grouped by category and show an icon and a label; you can also type to filter the list of formats
  • if the selected export format doesn't support multi-page export or the current page is terminal then the export is triggered directly
  • if the selected export format supports multi-page export and the current page is nested then the Export Tree Modal is shown, allowing you to select the pages to export
  • depending on the selected format:
    • the export tree may show hidden pages (e.g. for XAR export) or not (e.g. for PDF export)
    • the initial selection in the export tree may consist only in the current page (e.g. for PDF export) or the current page and all its child pages (e.g. for HTML export)

Each export format may customize further the export tree or add additional steps (e.g. PDF Export Options modal).

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.

New Homepage

We replaced the Dashboard application from the main Homepage and added introductory steps as wiki syntax. This change will make it simpler for new users to edit the Homepage content, while also benefiting from some basic help concepts. The left panels area also showcases now the 'Navigation' panel, while the right panels area contain a 'Need Help?' panel.

Restore a batch of deleted documents

If you have performed an operation that deletes multiple documents at the same time (like delete with children or delete space), it is now possible to restore all the deleted documents together, to their original state and location.

This is achieved by assigning a common batch ID to the deleted documents in the recycle bin. You can now browse the deleted documents and group them by batch.

For each deleted document, you can now also choose to see the batch where it was deleted from and if you want to restore just one document or the entire batch.

Check the documentation for more details.

Experimental Realtime Wiki Editor

We cleaned up the Realtime Collaborative Plain WikiText Editor contributed extension and integrated it in the XWiki platform. It's not bundled yet in XWiki Standard but you can still try it out by installing it and following the documentation page.

Application Index

We removed some applications from the AppBar (like Scheduler, Invitation, Panels, etc.) with the intention to simplify the interface and promote a smaller number of applications inside the AppBar panel. In order for the applications to still be discoverable, we added in the Drawer an Application Index.

Page fields now support auto-suggestion

You can now use the auto-suggestion feature on Page fields by typing the page title or the page reference. 

Drawer menu has changed

The drawer menu has changed to display the "scope" of the displayed items. Items are ordered regarding if their scope is "local" (i.e. it affects only the current wiki) and "global" (i.e. it affects the whole farm).

The change have been made after users complaining the old menu was not very clear, and after a poll sent on the mailing list.

Some items like "Home", "Create Wiki" and "Delete Wiki" has been removed from that menu, in order to focus on frequent operations that really deserve a place in this important menu. We offer other means in the UI to achieve these operations.

Notifications

We have introduced a list of notifications in the top menu, that list some events that have occurred in the wiki recently: a page has been created, a new blog post has been published, etc...

See the Notifications Application's page to have more infos.

Support of Mentions

XWiki Standard now support by default User Mentions. You can mention a user by two ways: either by typing "@" in the WYSIWYG editor as displayed in the screenshot, or by inserting a Mention macro. Mentioning a user will have for effect to send a notification to that user, with the link to the page or place (can be a comment or an object) mentioning her/him.

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.

New CAPTCHA API and CAPTCHA implementations

A new CAPTCHA Application and API have been implemented, replacing the old Captcha Module, thus making it even easier to use and validate a CAPTCHA in a form. Also, it's now very easy to change the CAPTCHA implementation that you want to use in your wiki, directly from Administration, without having to touch a line of code.

Also, a new and much more extensive JCaptcha implementation has been provided for the new API, that works offline and features image, sound and text CAPTCHAS. It is bundled by default with XWiki Standard.

As a popular alternative, a Google reCAPTCHA implementation is also available, installable as an extension using the Extension Manager.

The locations in XWiki where CAPTCHA is being used by default (e.g. Registration and Comments) will use the CAPTCHA implementation that you have enabled and configured in the "Administration >> CAPTCHA" section.

CKEditor Integration Improvements

CKEditor has been upgraded to version 4.6.0 which brings a new flat skin and a lot of improvements and bug fixes. The XWiki integration has been improved to support automatic link creation when dropping a non-image file over the editing area. Creating a link to a non-existing wiki page has been simplified. Check the CKEditor Integration documentation for more information.

Realtime WYSIWYG Editing Bundled by Default

The realtime WYSIWYG editor is now bundled by default in XWiki Standard. It's still an experimental feature, so you have to enable it if you want to try it out. We refactored the code to make it a CKEditor plugin rather than a separate editor (based on CKEditor) so in order to enable realtime collaboration for the WYSIWYG editor you have to remove (uncheck) the "xwiki-realtime" from the list of disabled plugins in the CKEditor administration section. Make sure you read the list of known limitations before you try it out.

Activity Stream is not bundled anymore

The good old Activity Stream Application is not bundled anymore with XWiki. This decision has been made because the Notifications Application can now handle the same features with better performances.

As a consequence, we have also modified every applications that was using Activity Stream to use the new Notifications features.

For backward compatibility, we also provide a Legacy Notification Activity Macro that would help you not to break the pages you have created with the use of the {{activity/}} macro..

Distinguish between system filters and custom filters in notification settings

The Notification settings UI has been modified to allow a better management of Notification filters. In particular, we now distinguish "System filters" which are filters provided as components and that users can only enabled and disabled, and "Custom filters" which are filters dedicated to specific locations that users can create themselves, enabled, disabled or delete. The Notification settings then display separately the system and custom filters, and we tried to improve the wording to explain what is their exact meaning.

For developer and administrators, note that we deprecated the old macro for notification filter preferences in favor of two dedicated macros: notification system filter preferences and notification custom filter preferences.

 

In-place edit for application entries

The entries of a newly-created AppWithinMinutes application are now editable in-place. For existing applications you will need to edit the application and go through the application wizard so that the application sheet is re-generated, but be aware that you might loose you customizations in the process.

Live Data Inline Editing

The Live Data Macro has been improved to support inline editing. When the edit mode is allowed on a live data macro, a user with the edit right on the content of a cell can double click on a cell to edit it. The content of the cell is then converted into a form. Pressing escape will cancel the modifications, whereas clicking outside the edited cell will save its content and the Live Data will be reloaded to reflect the update.

Page Likes

The Page Like feature allows users to Like pages. By default, this application adds a small button at the bottom of the pages, allowing users to like them. It also displays the total number of likes for the page. Notifications are sent when pages are Liked and it's possible to see your own liked pages or who liked a page.

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.

Inline Macro Content Editing

The macro content can now be edited inline with the WYSIWYG editor, if the macro is used on a separate line (stand-alone, not inside a paragraph of text) and the macro descriptor declares that its content is rendered without being transformed. There are a few macros that do this at the moment (box, info, warning, error and figure macros) but we're planing to add support for more macros in the next versions.

See the CKEditor Integration documentation for more information.

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.

Improved Notifications email layout

The email layout for notifications has been totally redesigned.

Improved Attachment Index

The Attachments tab from the Page Index has been improved:

  • the Space and Page columns have been replaced with the Location column
  • the Type column is now the first column and you can sort and filter attachments by file type
  • the Type column uses the Icon Theme and shows a thumbnail preview for image attachments
  • there's a new column that displays the attachment file size, with support for sorting and filtering the attachments by their file size
  • attachments can be filtered by date using the new date range picker

We also fixed two important bugs:

  • the sort was not working correctly
  • attachments from hidden pages were displayed even if hidden pages were not visible

Docker-based Multi-page PDF Export

The PDF Export Application (not bundled by default) added support for Docker-based multi-page PDF export. When installed, this application enhances the export modal to allow for multi-page selection when performing PDF export. Moreover, the PDF is now generated by default asynchronously on the server-side (in a background thread) using a headless Chrome web browser running inside a Docker container. At the end, the user is redirected to the generated PDF (as a temporary resource).

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.

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.

CKEditor Integration Improvements

The CKEditor Integration extension has been upgraded to version 1.9 which brings a couple of improvements and bug fixes:

  • The "WYSIWYG Editor" section from the Wiki Administration has been extended to support CKEditor configuration
  • The link dialog has a new text input to specify the link label
  • The form action buttons are now available in full-screen mode
  • CKEditor has been upgraded to the latest stable version 4.5.11

Improved Live Data Macro L&F

The UI of the Live Data Macro has suffered a couple of changes:

  • the hamburger menu has been moved to the right side, after the pagination
  • the reload button has been moved inside the menu
  • the menu groups are better separated
  • added loading animation
  • added support for resizing the columns in the table layout
  • improved labels

See the Live Data Macro documentation for more information.

Browser-based PDF Export Used by Default

Starting with this version the new browser-based (client-side) PDF Export is used by default, replacing the old PDF export based on Apache FOP (Formatting Objects Processor). Some of the benefits are:

  • dynamic content generated with JavaScript code is now included in the PDF export
  • the CSS styles used in the PDF export are the same as those used when viewing the wiki page
  • multi-page export supported by default
  • writing custom PDF templates is easier

The new PDF Export implementation is still young so you are encouraged to report any issues you may encounter, or propose improvements. If you want to get back the old PDF export implementation, it's easy: there's a configuration option on the PDF Export wiki administration section. If you want to disable the new PDF export implementation completely, that's also possible, either by leaving the list of PDF templates empty in the dedicated administration section, or simply by uninstalling the PDF Export Application.

Children Macro

A new {{children/}} macro has been added to display a tree view of all children of the current page.

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.

Link Autocomplete in WYSIWYG Editor

You can now create links to existing wiki pages and attachments directly from the editing area using the link auto-complete feature. Just type [ (open square bracket) followed by at least 2 characters and you will get link suggestions based on the typed text. Checkout the CKEditor Integration documentation for more information.

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.

Extended Page Information

The information tab displayed at the bottom of each page has been extended with more information such as the original page locale, the current page locale, the available page translations, the page syntax and whether the page is hidden or not. Moreover, some of the page information is now editable in-place, from view mode.

Auto-suggest for pages

Several inputs related to selecting pages references now support auto-suggestion, making it much simpler to use and less error prone (such as not having to know if the reference should end with WebHome or not!). See the screenshots for some examples.

Improved performances

We have enabled asynchronous rendering of several UI elements: side Panels, Menu entries and more. This allows to have the page content rendered much faster than before giving a nice feeling of increased performance and snappiness.

XAR Children Export

It's now possible, for HTML and XAR formats, to export selected children along with the current page.

System and Extension pages are now protected against accidental deletion

You will no longer accidentally erase system or extensions pages and break your wiki! When you try to delete such pages, XWiki will now ask you to confirm the operation, and list all concerned pages.

Realtime Inplace Editing

The In-place WYSIWYG edit mode now supports real-time collaboration. This feature is experimental so it is disabled by default. If you want to try it out just ask your administrator to enable the "xwiki-realtime" CKEditor plugin from the CKEditor administration section.

Attachments usage refactoring

When moving an attachment, the pages using the moved attachment are now automatically refactored to point to the new location of the attachment. Advanced users can deactivate this refactoring in the move attachment form.

App Within Minutes integration with Create Page dialog

We added a new step to the App Within Minutes wizard to configure the location where the application entries are created. This step generates a template provider for the application and thus exposes the application in the Create Page dialog. This means that now you can create application entries not only from the application home page (using "Add new entry") but also from other pages using the Create Page dialog.

New applications created with the new version of the App Within Minutes wizard will not use the Data page any more. The application entries will be created directly under the application home page by default. Of course, you can configure the location with the new wizard step.

Client-side PDF Export

This release introduces a new extension that allows users to export wiki pages to PDF using the browser's print to PDF feature. It's not bundled in XWiki Standard yet but you can install it with the Extension Manager. The advantage of the client-side PDF export over the current server-side FOP-based export is that the result is closer to the way the wiki page looks in view mode (most of the skin styles are preserved). See the PDF Export Application for more information.

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. 

Table of content in the notifications email

Now, the events described in the notification emails are ordered by pages, and then by dates. To have a quick view of all the changes, a table of content is now displayed at the beginning of the mail.

New default Color Theme

We wanted to refresh the default color theme (Charcoal) for the XWiki Standard 10.x cycle and the community voted for the Iceberg theme, which is our new default theme. We kept a professional / clean look and feel and opted for blue as our main color. The purpose of the default color theme is to cover as many use cases as possible, so if you want to spice up your instance try one of our community contributed color themes

Experimental Realtime WYSIWYG Editor

We cleaned up the Visual Realtime Collaborative Editor contributed extension and integrated it in the XWiki platform. It's not bundled yet in XWiki Standard but you can still try it out by installing it and following the documentation page.

Tags:
   

Get Connected