![Advanced-UI](https://img.shields.io/static/v1?label=UI&message=Advanced&color=lightgrey) ![NOVA-UI](https://img.shields.io/static/v1?label=UI&message=NOVA&color=blue) The "Asset Approval" plugin is a workflow to approve assets if they are moved to a specific node or node of a specific nodetype. For this workflow, a special info field with the approval status must be defined. Also it needs an approval node where the asset will be moved to wait for the approval. [MINITOC] ## Steps - On asset added event: The added asset will be verified, if it is already approved and if the node is a public node. - If the asset must be approved, it will be directly moved to the approval folder. - In the approval folder, a specified user group can approve or deny the asset. - If the asset will be denied, it will be deleted from the approval folder and the status set to rejected. - If the asset will be approved, the asset will be moved back to the public folder and the status will be set to approved. - On version updated the workflow will also be triggered if the asset is in a public node. The asset will also change the status and be moved to the approval node. ## Properties To be configured in {home}/appserver/conf/custom.properties ##### assetApproval.license > type: String, **required: yes**, default: - The license key for the plugin (product: assetApproval), provided by *brix*. ##### assetApproval.approvalUserGroupIds > type: numbers, **required: yes**, default: - With userGroupIds, groups will be defined which can approve or deny assets in the approval node. e.g. `12,73,32` ##### assetApproval.approvalNodeId > type: long, **required: yes**, default: - With the approvalNodeId, the node will be defined where the assets will be moved to approve or deny them. e.g. `1000` ##### assetApproval.publicNodeIds > type: long, required: no, default: - The publicNodeIds define which nodes are public. On these nodes the approval workflow will be started. e.g. `12,73,32` ##### assetApproval.statusInfoFieldId > type: Long, **required: yes**, default: - The statusInfoFieldId defines which info field will be taken to save the status of the approval workflow. e.g. `128` The info field must have following syntax. 1 -> new, 2 -> pending, 3 -> released, 4 -> denied ```xml ``` ##### assetApproval.assetTypesToApprove > type: Long, **required: yes**, default: - The assetTypesToApprove defines which types of Asset have to go through the workflow, assets of other types will be ignored (except when a *AlwaysToApprove property matches). e.g. `1234,5678` ##### assetApproval.fileCategoryAlwaysToApprove > type: String, required: no, default: - The fileCategoryAlwaysToApprove defines a file category which always has to be approved (regardless of asset type or parent nodes). e.g. `VIDEO` ##### assetApproval.parentNodesAlwaysToApprove > type: List of Long, required: no, default: - The parentNodesAlwaysToApprove defines parent nodes that always trigger an approval (regardless of asset- and file type) e.g. `VIDEO` ##### assetApproval.nodeTypeId > type: Long, required: no, default: - The nodeTypeId defines a node type, nodes with this nodeType will all be handled as a public node. e.g. `109` ## Screenshots ![Node structure](ApprovalNodes.PNG) ![Approve Assets](ApproveAsset.PNG) ![Status Infofield](StatusInfoField.PNG) ## Compatibility Matrix | assetApproval | CELUM (min. version) | :----- | :----- | 1.0 - 1.1 | 5.12.4 | | 1.2 - 1.3.0 | 5.13.1 | | 1.3.1 - 1.5.0 | 5.13.3 (tested up to 6.8) | | Nova Plugin | CELUM (min. version) | | ---------------- | --------------------- | | 1.0.1 | 6.9.3 | | 1.0.2 | 6.11.0 | ## Release Notes #### 1.0 > Released 2017-09-29 Initial Version #### 1.1 > Released 2017-10-11 Added NodeTypeId option #### 1.2 > Released 2017-10-13 Added fileCategories option #### 1.3 > Released 2019-01-25 Added license. #### 1.4 > Released 2019-08-23 Fixed status being set when not necessary #### 1.5 > Released 2021-01-06 Made the status values configurable #### 1.6 > Released 2021-10-13 Nova compatibility