Prerequisites
All the bullet points below have to be respected if you want to use the new feature on your project
Portal & Engine version 2024.1 (or after)
New structures :
collaborativespace
collaborativebrief
massimportpreviousitem
wkfcollaborativespace
wkfcollaborativespaceaction
Updates on existing structures :
asset & all your #damobject structures
contentcomments
massimportitem
massimportjob
role
user
Creation or updates of/on instances for :
colors
wkfcontentcomments
wkfcontentcommentsaction
wkfmassimportitem
wkfmassimportitemaction
wkfuser
wkfuseractions
pkgroletemplate
Plugins :
PACKAGED_CreativeWorkflow => activated
PACKAGED_Activity => activated
PACKAGED_DAM_Utils => default value for dam_denormalization_config should be restored.
Portal’s configuration :
spaces config domain added
named filters, displays and actions added in common
features config has a new entry called spaces, it should be set to true, if you want to use the creative workflow
1/ Install on existing projects
Common steps
1.1/ Existing starter-kits
If you have an existing starter-kit project with no specific customizations on the existing upload feature, you will only have to respect the Prerequisites. It means you will have to create all the new structures, to restore all changes on the existing structures and update/create all the created/updated instances present in the nar.
Then if you want to fully benefit from the creative workflow follow Common steps .
1.2/ Existing with customizations
If your project has a customized workflow for the upload feature, the install of the creative workflow will be more complicated. The new feature needs the update made on the workflow of massimportitems objects. This means, that on the project side, a choice has to be made : Using the creative workflow, OR using the upload.
If you want to use the creative workflow but still want to have a customized workflow, this can be achieved, but first, the current instances of wkfmassimportitem & wkfmassimportitemactions have to be restored (reset from the nar). Then you can add some statuses and actions. Examples of customization will be given below.
Then if you want to fully benefit from the creative workflow follow Common steps .
1.3/ Don’t need the creative workflow
If you choose not to use the new feature, you don’t need to restore all the objects and instances described in the prerequisites and you will have to :
disable this plugin : PACKAGED_CreativeWorkflow
disable the “spaces” feature on portal’s features config
enable the uplaod feature on portal’s features config
1.4/ Creative workflow with security from security.xml
Here you will find current permissions by role (provided with a starter-kit) transcribed into readable text. This way we hope you can setup appropriate security rules for the creative worklow while using a security from security.xml.
Role 27: Administrator
Role 28 : Contributor
$anystatus
: Any state$anyowner
: No restriction on ownership$newcreation
: Creating a fresh instance (eg click on the “New” button)$anyaction
: Any workflow action (including publishing and archiving actions)$teammember
: surfer is in instance’s team prop valueKeyword’s activation conditions :
The structure must have this tag :
pkg/security/collaborative
The structure must have a
team
property which is achildmultilngdb
ofuser
$teamleader
: surfer is team’s leader
Keyword’s activation conditions :The structure must have this tag :
pkg/security/collaborative
The structure must have a
jobowner
property which is achild
ofuser
$never : surfer not allowed
Setting Up Permissions and Roles
2/ Install on projects starting on 2024.1
In this case, you will only have to respect the Prerequisites. And they are all comming by default with the 2024.1.
Just be sure to call the update (admin) endpoint given by PACKAGED_Security.
For all your new library structures you will need to create them by copying the current asset structure, because you will need to have the space prop and the tags from asset on your library structures.
3/ New massimportitem workflow
The existing wkfmassimportitem and it’s actions have been updated for the creative workflow. Also this workflow is still usable for the upload feature, only some status/action labels will be different.
These are the main updates on the workflow :
Position reordering
Colors have been changed
New statuses
id 3 : check => default status for imported items
id 4 : validate
“Index” status (id 8 ) has been renamed to review
Wkfmassimportitemactions have been reorganized. Actions have been added from and towards each one of these statuses : rejected, check, review, validate, approved
Also for the existing statuses, when it was possible, existing actions have been updated to avoid adding actions and having other actions becoming useless. Depending on the modified instance, the update was on the target status, or on the action name.
Statuses names, ids and action names are used on portal’s configuration for dam-import and for spaces domain.
4/ Configuration possibilities
Change status of assets created by Creative workflow
By default, the status of a media asset exiting the creative workflow is “published”.
This status can be changed if necessary, following these recommendations :
The current behavior is configured by a damutils configuration, which enables the transition of all assets created through the creative workflow to the published status (ID 6).
The actual configuration :
{ "objectSelector": "#damobject", "preventGuard": { "classAlias": "negate", "input": { "preset": "canPublish" } }, "workflowTrigger": [ "publish" ] }
This configuration works for the assets created from the creative workflow, only because :
We are filling tmpsource with “massimport” on the item (before asset creation), and then the created asset has a tmpsource value which removed just after the status change
User has the enough rights to change the status of the asset.
So if you want to change the status of asset created with the creative worfklow, you will have to change the action called in worfklowTrigger
Portal configuration
You’ll find above the tree view of the new config domain for spaces. We will now go through all the config points and see their customization possibilites.
back-to.json CAN BE CUSTOMISED
Here you will define the name of the route which will be used on the click of the back-to button from the space list view.
cursors CAN BE CUSTOMISED
Here you can define/redefine cursors. Inside this folder we can find : collaborative-spaces.json, this cursor defines the way that spaces are retrieved.
default-cursor-name.json CAN BE CUSTOMISED
Here you are defining the cursor to use for the space entities retrieval
layouts CAN'T BE CUSTOMISED
Inside this folder we are defining the layouts config, the same way it is defined for dam domain. We have a default-resource-config.json file which is describing the all the available layouts and the default layout used to display space item entities
Avoid making changes to this configuration for now. Although we currently have only one layout, it may evolve, and we plan to provide additional layouts for users to switch to.
explore CAN BE CUSTOMISED
Inside this folder we can find configurations files and folders about the space entities display.
We have a sort folder which will contain json files like in the dam domain. These files can be customized.
We also have folder called items inside this folder we have actions.json which will contain all the available actions for a space entity. You can edit this file to add new actions (if they are prepared and they exist) or to remove unwanted ones.
explore-items CAN BE PARTLY CUSTOMISED
This folder contains a lot of configuration files and folder about the space items display and features, we will go through them in a slightly different way.
filters
default-resource-config.json CAN BE CUSTOMISED
Filters for items can be modified, you can only add filters on massimportitems props.
Mainly composed by named-filters which can be found under common/named-filters.
items
detail
comments
filter-options.json CAN'T BE CUSTOMISED
Configuration for comments filter feature dropdown.
sort-options.json CAN BE CUSTOMISED
Configuration for comments sort feature dropdown. You can modify this configuration to add sorting options or modify the existing one(s).
display
default-config
space-item-block.json CAN'T BE CUSTOMISED
This config contains the name of the named-display which is used to display an item of a space. The current
spaceItemBlock
is displayed with theitemBlock
config (common/named-displays/item-block
). We do not recomend this config to be updated, but if you want an other title or subtitle for the space block items you can redefine the properties used to display title or subtitle.
duplicates : In the creative workflow, we continue to offer a duplicate management system using the comparison modal, just as we did for the Upload feature.
authorized-resources.json CAN BE CUSTOMISED
This config is currently set to null, because no restrictions were required.
But it can be updated, it works in the same way as for the dam-import config.
display.json CAN BE CUSTOMISED
Currently this config is empty, but it can be edited to display additionnal informations about item’s props in the comparison modal.
status-color.json CAN BE CUSTOMISED
This config is used to define the color of the text used on the duplicates label. It can be edited.
workflows
asset
display-order.json CAN BE CUSTOMISED
This config is used to reorder the status dropdown displayed on the item block card.
It can be modified.
hidden-statuses.json CAN BE CUSTOMISED
This config is used to hide statuses and avoid showing them in the dropdown on the item block card. Mainly set for the “processing statuses” which are used when items are published. It can be modified.
rejected-status-id.json CAN BE CUSTOMISED
This config is used to configure the rejected status id. This allows the
CwSpacesBlockItem.vue
component to know correctly which one of all the massimportitem's statuses is the real rejected status. Used to define if the comparison modal link should be displayed. It can be modified.
hidden-actions.json CAN BE CUSTOMISED
This config is used to hide wkf actions. The main purpose of this config in space domain is to hide all the workflow actions on the comparison modal. Only “torejected” is permited. The config can be edited if you want to enable other actions from comparison modal (or if you’ve added other statuses and actions and want the actions to be displayed).
statuses-config.json CAN'T BE CUSTOMISED
This config is a mapping config. It is mainly used to map a status config (id, label, tooltip, color) for the items indexingstatus value. While we do not recommend editing this configuration, you still have the flexibility to modify colors, labels, or icons (displayed just before the dropdowns on the item's block card).
actions.json CAN BE CUSTOMISED
Contains all the available actions for a space item (massimportitem) entity. You can edit this file to add new actions (if they are prepared and they exist) or to remove unwanted ones.
Workflow configuration
The creative workflow is based on the use of “massimport” objects just as the upload. The worfklow which is currently used on massimportitem can be customized.
We do not recommend to remove existing actions or to change their target statuses. There are multiple “key” statuses/actions on this workflow, we’ll go through some of them :
check/tocheck => Default status on item creation, “tocheck” action from draft to check is necessary and used by dam_utils
approved => Required status for the item publish feature
review/toreview => As it is delivered by default, massimportitem structure is configured (by tags) to have it’s instances set to review status if a comment is posted on them and if their original status was check
But If you need a new status, you can add it directly on wkfmassimportitem. Then if you add some actions …
… and this is what you get whitout any portal configurations.
We can see that the new status is correctly displayed on the dropdown. But we need to configure the filter and the hidden-actions or add a i18n key to have a correct behaviour. Also if the position of the “customstatus” is not the one you want, you can configure it on the display-order config.
Here is the result after some config on the files mentioned above.
Add new targeted notifications
Notifications are delivered by default; here is the complete list: Creative workflow notifications
It is possible to add notifications based on project needs that would be triggered by specific actions (upload, status change, or others).
Here you will find more detailed information about the notification system setup for the creative workflow.
We are currently sending email notifications on each status change for each teammember or only for the owner according to PACKAGED_CreativeWorkflow.send_notification_to_team 's value.
As status change email notification are based on the delayed notification system, if you want to add a customized behaviour for a specific status (for example), you will have to create your own Groovy script (you can check existing ones for inspiration).
and update the configuration of PACKAGED_CreativeWorkflow.batch_topics_processors. You will have to follow the instructions described in the link provided above.