Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleDetails
  1. Permissions

To have correct permissions on the creative workflow we also recommend to update or reset pkgroletemplate instances and all the other pkg* objects. If you reset your permissions from the nar, don’t forget to call the update (admin) endpoint given by PACKAGED_Security. A touch on the users may also be needed also to ensure that users, roles and roles templates are correctly synchronized.

If you can’t reset your permissions, you will have to must modify them. You can do this by using wedia-config’s role template menu. For each role template, you will edit it’s “ Collaborative spaces ” permissions.

  • For the “Administrator role type” the permissions should be set to :

    • Create and manage a workspace => All spaces

    • Manage media status => All spaces

  • For the “Contributor role type” the permissions should be set to :

    • Create and manage a workspace => Space owners

    • Manage media status => Space owners

  • For the “Userrole type” the permissions should be set to :

    • Create and manage a workspace => No space

    • Manage media status => No space

Please note that by doing this, you will alter your current permissions on massimportitem & massimportjob objects.

  1. Portal

You will also need to upgrade your portal to retrieve all the new components and configs to benefit from the creative workflow.

  1. Asset Libraries

For all your library structures you will need to add the space prop spaces property and copy missing tags from asset to your library structures (damobject).

  1. Plugins

And finally, you will have to retrieve the plugins configuration from the nar, or activate PACKAGED_CreativeWorkflow and PACKAGED_Activity and restore the default value of PACKAGED_DAM_Utils’s dam_denormalization_config parameter.

...

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 narNAR.

Then if you want to fully benefit from the creative workflow, follow Common steps .

1.2/ Existing with

...

customized workflow (upload portal)

If your project has a customized workflow for the upload feature, the install installation 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.

...

  • disable this plugin : PACKAGED_CreativeWorkflow

  • disable the “spaces” feature on portal’s features config

  • enable the uplaod upload feature on the 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 set up appropriate security rules for the creative worklow workflow while using a security from security.xml.

Role 27: Administrator

Expand
titlePermission details : readable text view

View Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem.

  • Permission: Any user can view objects regardless of status or ownership.

Delete Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem.

  • Permission: Any user can delete objects regardless of status or ownership.

Insert Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem.

  • Permission: User can create a fresh instance (eg click on the “New” button)

Update Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem.

  • Permission: Any user can update objects regardless of status or ownership.

Change Status Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem.

  • Permission: Any workflow action, such as publishing or archiving, can change the status of objects, regardless of current status or ownership.

Expand
titlePermission details : technical view

Action : view, permission = $anystatus/$anyowner

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportitem

  • massimportjob

  • massimportpreviousitem


Action : delete, permission = $anystatus/$anyowner

for objects :

  • collaborativebrief

  • collaborativespac

  • massimportitem

  • massimportjob

  • massimportpreviousitem


Action : insert, permission = $newcreation

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportitem

  • massimportjob

  • massimportpreviousitem


Action : update, permission = $anystatus/$anyowner

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportitem

  • massimportjob

  • massimportpreviousitem


Action : changestatus, permission = $anyaction/$anystatus/$anyowner

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportitem

  • massimportjob

  • massimportpreviousitem

...

Role 28 : Contributor

Expand
titlePermission details : readable text view

View Action:

  • Objects: collaborativebrief collaborativespace, massimportitem, massimportjob

  • Permission:

    • Any user can view these objects if they are the owner.

    • Any user can view these objects if they are the team leader.

    • Any user can view these objects if they are a team member.

  • Objects: massimportpreviousitem, collaborativebrief

  • Permission:

    • Any user can view these objects regardless of ownership.

Insert Action:

  • Objects: collaborativebrief, collaborativespace, massimportitem, massimportjob, massimportpreviousitem

  • Permission:

    • User can create a fresh instance (eg click on the “New” button)

Update Action:

  • Objects: massimportitem, massimportjob

  • Permission:

    • Any user can update these objects if they are the owner.

    • Any user can update these objects if they are the team leader.

    • Any user can update these objects if they are a team member.

  • Objects: collaborativespace

  • Permission:

    • Any user can update Collaborative Spaces if they are the owner.

    • Any user can update Collaborative Spaces if they are the team leader.

  • Objects: massimportpreviousitem

  • Permission:

    • Any user can update massimportpreviousitem regardless of ownership.

  • Objects: collaborativebrief

  • Permission:

    • Any user can update collaborativebrief if they are the owner.

Delete Action:

  • Objects: collaborativespace, massimportitem, massimportjob, collaborativebrief

  • Permission:

    • Any user can delete these objects if they are the owner.

    • Any user can delete these objects if they are the team leader.

  • Objects: massimportpreviousitem

  • Permission:

    • Any user can delete massimportpreviousitem regardless of ownership.

Change Status Action:

  • Objects: collaborativespace, massimportjob collaborativebrief

  • Permission:

    • Any workflow action can user can delete collaborativebrief if they are the owner.

Change Status Action:

  • Objects: collaborativespace, massimportjob

  • Permission:

    • Any workflow action can change the status of these objects if they are the owner.

    • Any workflow action can change the status of these objects if they are the team leader.

  • Objects: massimportitem

  • Permission:

    • Any workflow action can change the status of massimportitem if the user is the team leader.

  • Objects: massimportpreviousitem, collaborativebrief

  • Permission:

    • Any workflow action can change the status of these objects massimportpreviousitem regardless of ownership.

  • Objects: collaborativebrief

  • Permission:

    • Any workflow action can change the status of collaborativebrief if they are the owner.

  • $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 value

    Keyword’s activation conditions :

    • The structure must have this tag : pkg/security/collaborative

    • The structure must have a team property which is a childmultilngdb of user

  • $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 a child of user

  • $never : surfer not allowed

Setting Up Permissions and Roles

Expand
titlePermission details : technical view

Action : view

for objects :

  • collaborativespace

  • massimportitem

  • massimportjob

Permission:

  • $anystatus/$selfowner

  • $anystatus/$teamleader

  • $anystatus/$teammember

for objects :

  • massimportpreviousitem

  • collaborativebrief

Permission :

  • $anystatus/$anyowner




Action : insert

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportitem

  • massimportjob

  • massimportpreviousitem

permission :

  • $newcreation



Action : update

for objects :

  • massimportitem

  • massimportjob

permission :

  • $anystatus/$selfowner

  • $anystatus/$teamleader

  • $anystatus/$teammember

for objects :

  • collaborativespace

permission :

  • $anystatus/$selfowner

  • $anystatus/$teamleader

for objects :

  • massimportpreviousitem

permission :

  • $anystatus/$anyowner

for objects :

  • collaborativebrief

permission :

  • $anystatus/$selfowner



Action : Delete

for objects :

  • collaborativespace

  • massimportitem

  • massimportjob

permission :

  • $anystatus/$selfowner

  • $anystatus/$teamleader

for objects :

  • massimportpreviousitem

permission :

  • $anystatus/$anyowner

for objects :

  • collaborativebrief

permission :

  • $anystatus/$selfowner



Action : Changestatus

for objects :

  • collaborativespace

  • massimportjob

permission :

  • $anyaction/$anystatus/$selfowner

  • $anyaction/$anystatus/$teamleader

for objects :

  • massimportitem

permission:

  • $anyaction/$anystatus/$teamleader

for objects :

  • massimportpreviousitem

permission:

  • $anyaction/$anystatus/$anyowner

for objects :

  • collaborativebrief

permission :

  • $anyaction/$anystatus/$selfowner

Info

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 :

Code Block
        {
            "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

Expand
titleSpace domain full configuration
  • back-to.json

  • cursors

    • collaborative-spaces-items.json

    • collaborative-spaces.json

  • default-cursor-name.json

  • explore

    • items

      • actions.json

    • sort

      • default-cursor-config.json

      • hide-sort.json

  • explore-items

    • filters

      • default-resource-config.json

    • items

      • actions.json

      • detail

        • comments

          • filter-options.json

          • sort-options.json

      • display

        • default-config

          • spaces-item-block.json

      • duplicates

        • authorized-resources.json

        • display.json

        • status-color.json

      • workflows

        • asset

          • display-order.json

          • hidden-statuses.json

          • rejected-status-id.json

        • hidden-actions.json

        • statuses-config.json

  • layouts

    • default-resource-config.json

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
Status
colourPurple
titleCAN 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.

...

Status
colourPurple
titleCAN 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.

...

Status
colourPurple
titleCAN BE CUSTOMISED

Here you are defining the cursor to use for the space entities retrieval

...

Status
colourRed
titleCAN'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

Note

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.

...

Role 29 : Reader

Expand
titlePermission details : readable text view

View Action:

  • Objects: collaborativespace, massimportitem, massimportjob

  • Permission:

    • Any user can view these objects if they are the owner.

    • Any user can view these objects if they are a team member.

 

  • Objects: massimportpreviousitem, collaborativebrief

  • Permission:

    • Any user can view these objects regardless of ownership.

Insert Action:

  • Objects: collaborativebrief, collaborativespace, massimportjob

  • Permission:

    • Insertion is never allowed.

 

  • Objects: massimportitem, massimportpreviousitem

  • Permission:

    • User can create a fresh instance (eg click on the “New” button)

Update Action:

  • Objects: collaborativebrief, collaborativespace

  • Permission:

    • Updating is never allowed.

 

  • Objects: massimportitem, massimportjob

  • Permission:

    • Any user can update these objects if they are a team member or the owner.

 

  • Objects: massimportpreviousitem

  • Permission:

    • Any user can update massimportpreviousitem if they are the owner.

Delete Action:

  • Objects: collaborativebrief, collaborativespace, massimportjob

  • Permission:

    • Deletion is never allowed.

 

  • Objects: massimportitem

  • Permission:

    • Deletion is allowed only for self-owned items on status “To check” (id = 3)

 

  • Objects: massimportpreviousitem

  • Permission:

    • Any user can delete massimportpreviousitem if they are the owner.

Change Status Action:

  • Objects: massimportpreviousitem

  • Permission:

    • No permission for changing status.

 

  • Objects: massimportpreviousitem

  • Permission:

    • Any workflow action can change the status of massimportitem if the user is the owner.

 

  • Objects: collaborativespace, massimportjob, collaborativebrief

  • Permission:

    • Changing status is never allowed.

Expand
titlePermission details : technical view

Action : View

for objects :

  • collaborativespace

  • massimportitem

  • massimportjob

permission :

  • $anystatus/$selfowner

  • $anystatus/$teammember

 

for objects :

  • massimportpreviousitem

  • collaborativebrief

permission :

  • $anystatus/$anyowner

 

Action : Insert

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportjob

permission :

  • $never

 

for objects :

  • massimportitem

  • massimportpreviousitem

permission :

  • $newcreation

 

Action : Update

for objects :

  • collaborativebrief

  • collaborativespace

permission :

  • $never

 

for objects :

  • massimportitem

  • massimportjob

permission :

  • $anystatus/$teammember

  • $anystatus/$selfowner

 

for objects :

  • massimportpreviousitem

permission :

  • $anystatus/$selfowner

 

Action : Delete

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportjob

permission :

  • $never

 

for objects :

  • massimportitem

permission :

  • 3/$selfowner

 

for objects :

  • massimportpreviousitem

permission :

  • $anystatus/$selfowner

 

Action : Changestatus

for objects :

  • massimportitem

permission :

  • no permission

 

for objects :

  • massimportpreviousitem

permission :

  • $anyaction/$anystatus/$selfowner

 

for objects :

  • collaborativebrief

  • collaborativespace

  • massimportjob

permission :

  • $never

Info
  • $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 value

    Keyword’s activation conditions :

    • The structure must have this tag : pkg/security/collaborative

    • The structure must have a team property which is a childmultilngdb of user

  • $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 a child of user

  • $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 coming by default with the 2024.1.

Just be sure to call the update (admin) endpoint given by PACKAGED_Security.

You will need to create all your new library structures by copying the current asset structure, because you will need to have the spaces prop and the tags from the asset on your library structures.

3/ New massimportitem workflow

The existing wkfmassimportitem and its 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

  • The 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 become useless. Depending on the modified instance, the update was on the target status or the action name.

  • Statuses names, IDs, and action names are used on the portal’s configuration for dam-import and spaces domain.

4/ Configuration possibilities

Change the status of assets created by the Creative workflow

By default, an asset published from the creative workflow has the status Published.

At first, the asset has the default status set on the asset’s structure (Draft state the object asset provided by the NAR). Then, the following asynchronous transformation, configured on the parameter dam_denormalization_config of the plugin PACKAGED_DAM_Utils, will be applied on top of it to execute a workflow trigger that takes the asset to the Published state :

Code Block
languagejson
{
        "objectSelector": "#damobject",
        "preventGuard": {
            "classAlias": "negate",
            "input": {
                "preset": "isSpaceAsset"
            }
        },
        "workflowTrigger": [
            "publish"
        ]
    }

This transformation does the following, on inserted (or updated if it is enabled) instances :

  • It is applied on object instances that have the tag #damobject on their structure

  • If the instance has been published from a space inside the creative workflow (the preset isSpaceAsset checks if there is at least one instance inside the property spaces), the action “publish“ is processed on the instance.

Note

Other workflow triggers, that are applied on damobject instances, exist inside the parameter dam_denormalization_config. Beware of their execution if you remove for example the above transformation.

In conclusion, to personalize the status of the assets created from creative workflow, you can :

Examples of transformations for damobject instances that utilize workflow triggers

Code Block
    {
        "objectSelector": "#damobject",
        "preventGuard": {
            "classAlias": "negate",
            "input": {
                "preset": "canPublish"
            }
        },
        "workflowTrigger": [
            "publish"
        ]
    },
    {
        "objectSelector": "#damobject",
        "preventGuard": {
            "classAlias": "negate",
            "input": {
                "preset": "canSubmit"
            }
        },
        "workflowTrigger": [
            "submit"
        ]
    }

The above examples of asynchronous transformations, which are set up on the parameter dam_denormalization_config, and are thus applied on damobject instances not having the spaces property filled, do the following in that order:

  • If the damobject instance has been created by a user who has the rights to publish the asset, the workflow action publish will be executed for the asset

  • If the damobject instance has been created by a user who has the rights to submit the asset, the workflow action submit will be executed for the asset.
    To sum up, with those 2 transformations, the new asset will have the Published status if the user who created the asset has rights to publish it. Otherwise, if the surfer has the rights to submit it, the workflow action submit will be executed on the asset.

Workflow configuration

The creative workflow is based on using “massimport” objects just as the upload. The workflow currently used on the object massimportitem (wkfmassimportitem) can be customized.

Note

We do not recommend removing existing actions or changing 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 its instances set to review status if a comment is posted on them and their original status was check.

  • If you need to refactor the actions and statuses related to the state validate, you’ll need to adapt the parameters of the plugin PACKAGED_CreativeWorkflow related to the approval logic. See this page for an explanation of those parameters and their default values : https://crossmedia.atlassian.net/wiki/spaces/WD/pages/2849210423/How+does+Creative+Workflow+works#PACKAGED_CreativeWorkflow

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 without 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 an i18n key to have the correct behavior. 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.

image-20240223-155933.pngImage Addedimage-20240223-155959.pngImage Addedimage-20240223-160059.pngImage Added

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 notifications are based on the delayed notification system, if you want to add a customized behavior for a specific status (for example), you will have to create your 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.

Portal configuration (advanced configuration)

Expand
titleSpace domain full configuration
  • back-to.json

  • cursors

    • collaborative-spaces-items.json

    • collaborative-spaces.json

  • default-cursor-name.json

  • explore

    • items

      • actions.json

    • sort

      • default-cursor-config.json

      • hide-sort.json

  • explore-items

    • filters

      • default-resource-config.json

    • items

      • actions.json

      • detail

        • comments

          • filter-options.json

          • sort-options.json

      • display

        • default-config

          • spaces-item-block.json

      • duplicates

        • authorized-resources.json

        • display.json

        • status-color.json

      • workflows

        • asset

          • display-order.json

          • hidden-statuses.json

          • rejected-status-id.json

        • hidden-actions.json

        • statuses-config.json

  • layouts

    • default-resource-config.json

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 possibilities.

back-to.json
Status
colourPurple
titleCAN BE CUSTOMISED

Here you will define the name of the route that will be used with the click of the back-to button from the space list view.

cursors
Status
colourPurple
titleCAN BE CUSTOMISED

Here you can define/redefine cursors. 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.

...

: collaborative-spaces.json, this cursor defines the way that spaces are retrieved.

default-cursor-name.json
Status
colourPurple
titleCAN BE CUSTOMISED

Here you are defining the cursor to use for the space entities retrieval

layouts
Status
colour

...

Red
titleCAN'T BE

...

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

Inside this folder, we are defining the layouts config, the same way it is defined for the dam domain. We have a default-resource-config.

...

Status
colourPurple
titleCAN 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

...

json file which describes all the available layouts and the default layout used to display space item entities

Note

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
Status
colour

...

Purple
titleCAN

...

BE CUSTOMISED

...

  • Configuration for comments filter feature dropdown.

...

sort-options.json

Status
colourPurple
titleCAN 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

Status
colourRed
titleCAN'T BE CUSTOMISED

...

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.

...

Inside this folder, we can find configuration files and folders about the space entities display.

We have a sort folder that will contain JSON files like in the dam domain. These files can be customized.

We also have a 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 if they exist) or to remove unwanted ones.

explore-items
Status
colourYellow
titleCAN 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

      Status
      colourPurple
      titleCAN 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.

        displayFilters 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

        status-color
        • filter-options.json

          Status
          colourRed
          titleCAN'T BE CUSTOMISED

          • Configuration for comments filter feature dropdown.

        • sort-options.json

          Status
          colourPurple
          titleCAN BE CUSTOMISED

        • Currently this config is empty, but it can be edited to display additionnal informations about item’s props in the comparison modal.

          • 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

          Status
          colour

        Purple
        • Red
          titleCAN'T 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

          Status
          colourPurple
          titleCAN BE CUSTOMISED

          • This config is used to reorder the status dropdown displayed on the item block card.
            It can be modified.

        • hidden-statuses
          • config contains the name of the named-display that is used to display an item of a space. The current spaceItemBlockis displayed with the itemBlockconfig (common/named-displays/item-block). We do not recommend this config to be updated, but if you want another 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

        Status
        colourPurple
        titleCAN 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-idcurrently 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

        Status
        colourPurple
        titleCAN BE CUSTOMISED

        • This

          Currently 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
        • empty, but it can be edited to display additionnal informations about item’s props in the comparison modal.

      • status-color.json

        Status
        colourPurple
        titleCAN 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
        • define the color of the text used on the duplicates label. It can be edited.

    • workflows

      • asset

        • display-order.json

          Status
          colour

        Red
        • Purple
          titleCAN

        '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
          • used to reorder the status dropdown displayed on the item block card.
            It can be modified.

        • hidden-statuses.json

          Status
          colourPurple
          titleCAN 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.

Note

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.

image-20240223-155933.pngImage Removedimage-20240223-155959.pngImage Removedimage-20240223-160059.pngImage Removed

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).

...

          • 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” that are used when items are published. It can be modified.

        • rejected-status-id.json

          Status
          colourPurple
          titleCAN 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. It is used to define if the comparison modal link should be displayed. It can be modified.

      • hidden-actions.json

        Status
        colourPurple
        titleCAN BE CUSTOMISED

        • This config is used to hide workflow actions. The main purpose of this config in the space domain is to hide all the workflow actions on the comparison modal. Only “torejected” is permitted. The config can be edited if you want to enable other actions from the comparison modal (or if you’ve added other statuses and actions and want the actions to be displayed).

      • statuses-config.json

        Status
        colourRed
        titleCAN'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

      Status
      colourPurple
      titleCAN 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.