Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.
A fresh Magnolia installation does not have versioned content. Demo content is bootstrapped and immediately marked as "published". You see a green publication status icon but no publication has actually happened.
Configuring versioning
You can enable versioning in a content app by triggering the activate/deactivate
command chains in the versions
catalog instead of the activate/deactivate
commands in the default
catalog. Here is the process to enable versioning in the Categories app.
In the Configuration app > /modules/categorization/apps/categories/subApps/browser
:
Change the
activate
anddeactivate
action definitions.
In the/actions/activate
and/deactivate
nodes add acatalog
property and set the value toversioned
. This calls the chained version command configured in theactivation
module inmodules/activation/commands/versioned/activate
and/deactivate
.Node name Value modulescategorizationappscategoriessubAppsbrowseractionsactivateavailabilitycatalogversioned classinfo.magnolia.ui.framework.action.ActivationActionDefinition commandactivate iconicon-publish recursivetrue deactivateavailabilitycatalogversioned classinfo.magnolia.ui.framework.action.DeactivationActionDefinition commanddeactivate iconicon-unpublish Add the Show versions action configuration.
In the
/actions
node add the/showVersions
configuration as shown below. Alternatively, you can simply extend the configuration in another content app, for example the configuration in the Contacts app configured in/modules/contacts/apps/contacts/subApps/browser/actions/showVersions
Node name Value browseractionsactivatedeactivateshowVersionsavailabilityrulesHasVersionsRuleimplementationClassinfo.magnolia.ui.framework.availability.HasVersionsRule
classinfo.magnolia.ui.contentapp.browser.action.ShowVersionsActionDefinition
iconicon-show-versions
Add the Show versions action to the action bar.
In the/actionbar/sections/category/groups
node, add the/versionsActions
configuration shown below. Alternatively, you can simply extend the configuration in another content app, for example the configuration in the Contacts app configured in/modules/contacts/apps/contacts/subApps/browser/actionbar/sections/contact/groups/versionsActions
Node name Value browseractionsactionbarsectionsrootdeletedFolderdeletedCategoryfoldercategorygroupsaddActionseditActionsactivationActionsimportExportActionsversionsActionsitemsshowVersionsIn the Categories app, create a few versions by activating and deactivating an item and then execute the Show versions action to open the VERSIONS dialog.
Number of versions
The number of versions you can create depends on the Magnolia edition:
- In the Community Edition, the number of versions is set to 3 and this is not configurable.
In the Enterprise Edition, the number of versions is unlimited and you can set it in configuration. By default, 10 versions are stored.
The number of versions is configured in /server/versions
:
Node name | Value |
---|---|
server | |
version | |
active | true |
maxVersionIndex | 10 |
Properties:
active
enables and disables versioning.maxVersionIndex
sets the number of versions to store.
Previous versions are deleted when you change to a smaller number and create a version. It's OK to change the number. The index won't be affected until a new version is created. For example, if node ‘A' has 10 versions and you change the max version index to 2, you will still see all 10 versions until the next versioning occurs. Once node 'A' is versioned again, all previous 9 versions will be removed.
Version command
Versions are created when VersionCommand is triggered. A new version of the content is created and added to the version file. VersionCommand
provides for standard and recursive versioning, and the addition of a version comment.
Command chains
Command definitions that call versionCommand
are configured for the activate
and deactivate
command chains in the Activation module.
Here's the command definition in the activation
module in the Configuration app > /modules/activation/commands/versioned/activate/version
and /deactivate/version
.
Node name | Value |
---|---|
modules | |
activation | |
commands | |
default | |
versioned | |
activate | |
version | |
class | info.magnolia.commands.impl.VersionCommand |
enabled | true |
activate | |
deactivate | |
version | |
class | info.magnolia.commands.impl.VersionCommand |
enabled | true |
deactivate |
The command chains are triggered when the Publish, Unpublish and Publish deletion actions are executed in the various apps that use them. Here's the action definition for the Publish action in the Assets app configured in the Configuration app > /modules/dam/apps/assets/subApps/browser/actions/activate.
Node name | Value |
---|---|
modules | |
dam | |
apps | |
assets | |
subApps | |
browser | |
actions | |
activate | |
availability | |
catalog | versioned |
class | info.magnolia.ui.framework.action.ActivationActionDefinition |
command | activate |
icon | icon-publish |
Diff implementation
Version comparison relies on functionality provided by the Diff module. The module uses the daisydiff java library to compare HTML files. Diff is an Enterprise Edition feature.
See Diff configuration.