Clip Actions

Add custom actions which are available on annotations. Also see the section on Actions.

Where in the UI

In the Library, the Clip Action will appear on the clip thumbnail, on clip rows, and in the selection toolbar.

Clip Action on a thumb in the library

If the filters don’t prevent it, the Clip Action will also appear in the menu of subclips:

Clip Action on a subclip thumb in the library

The details screen will also contain a menu containing the Clip Actions:

Clip Action in the clip details screen

Example

{
 "clipActions": [
    {
      "label": "Test clip command",
      "icon": "icon-magic",
      "requiredRights": "LIBRARY_SHARE",
      "clientCommand": "TheClientCommand",
      "params": {
        "paramToClientCommand": "value",
        "oneWorkflowPerItem": true
      },
      "filters": [
        {
          "key": "annotation.funnel",
          "values": [
            "MediaObjectAnnotation"
          ]
        }
      ]
    }
  ]
}

The oneWorkflowPerItem param indicates if one workflow should start per clip, or if one workflow should start for the selection. In the latter case, a production/service is started with a moIds array parameter containing the MediaObject ids.

funnel filter

Note that the actions appear on any selection, also if only subclips are selected in the list view. So you might want to add a funnel filter

{
    "filters": [
        {
            "key": "annotation.funnel",
            "values": ["MediaObjectAnnotation"]
        },
    ]
}

clientCommand

GenericClipCommandUserParams

Renders a dialog which can ask for user input, then it starts a workflow per MediaObject in the selection (use params.oneWorkflowPerItem = false to start one bulk workflow for the selection). The syntax for params is identical to GenericEditorialObjectServiceWithDialog which is explained above.

{
  "clipActions": [{
    "label": "Test clip command",
    "icon": "icon-magic",
    "clientCommand": "GenericClipCommandUserParams",
    "requiredRights": "LIBRARY_SHARE",
    "params": {
      "infoMessage": "This will start the command for all selected clips",
      "service": "KAREL_ECHO",
      "userInputFields": [
        {
          "name": "name",
          "label": "The Name",
          "parameterName": "workflowParameters.user_name",
          "type": "STRING",
          "whiteList": ["barbapapa", "barbamama"],
          "skipWhiteListValidation": true,
          "defaultValue": "barbapapa"
        },
        {
          "name": "due",
          "parameterName": "workflowParameters.when_is_due",
          "type": "DATE"
        }
      ]
    },
    "filters": [
      {
        "key": "annotation.funnel",
        "values": [
          "MediaObjectAnnotation"
        ]
      }
    ]
  }]
}

GenericAnnotationCommandUserParams

Syntax and usage are similar to GenericClipCommandUserParams, but this will start a workflow per Annotation (vs per MediaObject). This is suited for workflows working on e.g. subclips.

{
  "clipActions": [{
    "label": "Test annotation command",
    "icon": "icon-magic",
    "clientCommand": "GenericAnnotationCommandUserParams",
    "params": {
      "infoMessage": "This will start the command for all selected annotations",
      "service": "ANNOTATION_ECHO",
      "oneWorkflowPerItem": false,
      "userInputFields": [
        {
          "name": "due",
          "parameterName": "workflowParameters.when_is_due",
          "type": "DATE"
        }
      ]
    },
    "filters": [
      {
        "key": "annotation.funnel",
        "values": [
          "ClipAnnotation"
        ]
      }
    ]
  }]
}

This replaces the deprecated libraryAdditionalSelectionActions setting, and allows adding hyperlinks to the interface.

It can be used as in productionActions or in clipActions.

{
  "clientCommand": "ExternalLink",
  "icon": "icon-magic",
  "label": "Go to limecraft",
  "params": {
    href: "https://www.limecraft.com",
    target: "_blank"
  }
}

The href can contain some special values which will be replaced:

  • PROD_ID - Will be replaced with the production id

  • MO_IDS - Where possible, will be replaced with the MediaObject ids, comma-separated.

  • AN_IDS - Where possible, will be replaced with the Annotation ids, comma-separated.

  • MOA_IDS - Where possible, will be replaced with the MediaObjectAnnotation ids, comma-separated.