![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 Order" plugin allows a user to order assets that he is not allowed to download by default. An authorized user releases the orders or rejects them. Once an order has been approved, the user who made the order receives a PIN-link. [MINITOC] ## Properties To be configured in {home}/appserver/conf/custom.properties ##### assetOrder.license > type: String, **required: yes**, default: - License key (delivered by brix IT Solutions) ##### assetOrder.nodeId.order > type: long, **required: yes**, default: - This property contains the Id of the node where the order assets should be collected. Each order will create a subnode. ##### assetOrder.nodeId.approve > type: long, **required: yes**, default: - The approved orders will be moved to the node with the Id set in this property. They will be shared with a PIN-link, therefore this node needs to have PINs available (To be configured in {home}/appserver/conf/tabconfiguration.xml). ##### assetOrder.nodeId.decline > type: long, **required: yes**, default: - The declined orders will be moved to the node with the Id set in this property. ##### assetOrder.infofieldIds.all > type: List of long (comma-separated) ,required: no, default: - This list of informationfield-Ids specify which information can be provided by the user during the order. They have to be node-informationfields and also have to be assigned to the node configured in `assetOrder.nodeId.*`. ##### assetOrder.infofieldIds.required > type: List of long (comma-separated) , required: no, default: - All the informationfields with the Ids that are configured in this property have to be set by the user during the order. The Ids also need to be listed in the `assetOrder.infofieldIds.all` ##### assetOrder.downloadFormatIds > type: List of int (comma-separated) , **required: yes**, default: - This property takes a list of downloadformatIds which are available in the PIN-link. ##### assetOrder.pinTimeToLiveInDays > type: int, required: no, default: 14 The default time-to-live for the PIN is set to 14 days. If you'd like another value, this property can be used. ##### assetOrder.sendOrderMail > type: boolean, required: no, default: true Whether or not to notify the relevant users that a new order is awaiting approval. ##### assetOrder.userIds > type: List of long (comma-separated) , required: no, default: - This property takes a list of user-Ids from users who have the permission to approve the orders. They will receive an e-mail after a new order has been placed. Any superadmin can approve the orders as well. Therefore this property does not necessarily have to be set, but then there will be no e-mail alert about new orders. ##### assetOrder.groupIds > type: List of long (comma-separated) , required: no, default: - This property takes a list of group-Ids from groups that have the permission to approve the orders. The members of the groups will receive an e-mail after a new order has been placed. Any superadmin can approve the orders as well. Therefore this property does not necessarily have to be set, but then there will be no e-mail alert about new orders. ##### assetOrder.approvalMode > type: String , required: no, default: `single_user_release`, since: 1.2.0 Which approval mode to use. Known values: * `auto_release` - automatically release the order without any release (just stores the `assetOrder.infofieldIds` on the created collection) * `single_user_release` - orders can be released by anyone in `assetOrder.userIds` or `assetOrder.groupIds` (default) * `asset_owner_release` - assets in an order must be released by the "asset owner". Needs both `assetOrder.infoFieldId.assetApprover` and `assetOrder.nodeId.assetApporverId` to be set. ##### assetOrder.infoFieldId.assetApprover > type: long , required: when using asset_owner_release, default: - When using `asset_owner_release`, the information field on the asset that stores the "asset owner" (noderef field) > > > > > > These nodes can be created automatically by the [User Sync Field](https://docs.brix.ch/celum_extensions/user_sync_field) extension ##### assetOrder.nodeId.assetApporverId > type: long , required: when using asset_owner_release, default: - When using `asset_owner_release`, the information field on said "asset owner" node that stores the actual user ID (number field) > > > > > > This infofield can be written automatically by the [User Sync Field](https://docs.brix.ch/celum_extensions/user_sync_field#user-sync-field-user-idtonode...) ##### assetOrder.creditsMode.enabled > type: boolean , required: no, default: false Enables the download credits feature (Users needs credits to be able to order an asset). Only works if it's enabled in the license with the property creditsMode set to true. ```xml { "licensee": "customer", "product": "assetOrder", "creditsMode": true } ``` ##### assetOrder.noCreditsModeGroup > type: long , required: no, default: - User in this group don't need credits to order an asset although the credits mode is enabled. ##### assetOrder.creditsExpirationPeriodInDays > type: long , required: no, default: - Defines how many days a credit expiration period will last. after the end of a period all credits will be deleted. ##### assetOrder.creditsExpirationCron > type: string , required: no, default: 1 0 0 * * ? CRON expression when a task will check if the credit expiration period is ended. By defaualt it will be checked once per day. ##### assetOrder.creditsAdministrationGroups > type: long , required: no, default: - User in this group are allowed to administrate the download credits. If not set only Administrator are allowed to. ##### assetOrder.partiallyApproving.enabled > type: boolean , required: no, default: false Enabled the feature to approve orders partially ##### assetOrder.sendApproveDenyMailToOwnerAndDeputy > type: boolean , required: no, default: false Enabled the feature to send approve or deny mails to oweners or deputies of an order. > > > > > > This infofield can be written automatically by the [User Sync Field](https://docs.brix.ch/celum_extensions/user_sync_field#user-sync-field-user-idtonode...) ## E-Mail template override The e-mail templates can be changed by adding a folder called `velocityOverride` to `/appserver` and adding the following lines in `/appserver/spring/root.xml`: ```xml ``` Add the new templates to the velocityOverride folder, user the names from the list below: * `ch.brix.assetApproveCustom_.vm` * `ch.brix.assetDeclineCustom_.vm` * `ch.brix.assetOrderCustom_.vm` The locale (e.g. `en`) is replaced by a placeholder ``. Make sure you add the template in every locale, even if the content is the same. ## Compatibility Matrix | Asset Order | CELUM (min. version) | :----- | :----- | 1.0 - 1.2 | 5.13.3 | | 1.6.0 | 6.4.0 | | Nova Plugin | CELUM (min. version) | Backend Plugin (min. version) | | ---------------- | --------------------- | --------------------- | | 1.0.0 | 6.8.1 | 1.6 | 1.0.1 | 6.9.0 | 1.6 | 1.0.3 | 6.11.0 | 1.6 ## Screenshot ![Asset Order Menu1](assetOrder1.jpg) ![Asset Order Menu2](assetOrder2.jpg) ![Asset Order Approve](assetOrderApprove.jpg) ## Release Notes #### 1.0 > Released 2018-05-07 Initial Version #### 1.1 > Released 2019-01-16 added auto approval #### 1.2 > Released 2020-10-09 added asset owner approval #### 1.6 > Released 2020-10-12 Nova backend #### 1.7 > Released 2022-09-29 Download Credits Feature #### 1.9 > Released 2023-02-02 New Feature: Send approve or deny mail to owners and deputies