The translation workflow UI in CoreMedia Studio consists of several panels that enable site managers to start, view and control a translation workflow. Like the workflows themselves (see the section called “Configuration and Customization”), these panels are also highly customizable.
To get a glance of the Workflow UI see Section 2.4.2, “Control Room” in CoreMedia Studio User Manual and Section 4.7.3, “Translating Content” in CoreMedia Studio User Manual.
addTranslationWorkflowPlugin
The configuration of the workflow panels is done in the ControlRoomStudioPlugin.exml
using the
com.coremedia.cms.editor.controlroom.config.addTranslationWorkflowPlugin
. The
addTranslationWorkflowPlugin
configures four separate panels for one
processDefinitionName
:
startPanel:com.coremedia.cms.editor.controlroom.config.abstractStartTranslationWorkflowPanel
The panel to start one or more translation workflows. It creates the
Process
instances, sets process variables and finally starts the process.inboxPanel:com.coremedia.cms.editor.controlroom.config.workflowForm
The panel to display and control a
Task
in the user's inbox.pendingPanel:com.coremedia.cms.editor.controlroom.config.workflowForm
The panel to display a
Process
in the user's pending list.finishedPanel:com.coremedia.cms.editor.controlroom.config.workflowForm
The panel to display a finished
Process
in the user's finished list.
workflowForm
As you can see, the type of all these panels except the startPanel
is
com.coremedia.cms.editor.controlroom.config.workflowForm
. This is the base component
for displaying Processes
and Tasks
and it is inspired by the
com.coremedia.cms.editor.sdk.config.documentForm
.
Like the documentForm
the workflowForm
has some configuration options that are provided to the
form by the framework and are forwarded to nested items using component defaults:
bindTo
A value expression returning the process to show.
bindToTask
A value expression returning the task to show. If this form displays a process and not a task (especially in the finished list) this option is null.
forceReadOnlyValueExpression
An optional ValueExpression which makes the component read-only if it is evaluated to true.
processDefinitionName
The name of the definition of processes that may be displayed using this form. This configuration option is not forwarded to nested items.
For detailed information consult the CoreMedia Studio ActionScript API.
Customization
Most panels that are used by default only have very few configuration options. This means that if you want to
customize these, you will likely have to implement your own workflowForms
or
start panel.
The only exception is the defaultTranslationWorkflowDetailFrom
, which can be configured
with the state transitions of the workflow.
When you have a look at the provided translation workflow (see
Section 6.6.2, “Predefined Translation Workflow”),
you will notice a process variable called translationAction
. This variable is used to let the user
select the next workflow step, which works by setting the value of the translationAction
variable
to the selected value of the radio group shown in the form. A click on the
[Apply]
button will then complete the
Translate
task, which is followed by a Switch
task that maps the value of the
translationAction
to a successor task.
So, by adding a new Switch
case and a new successor task for example, you can easily create another
translation option. The mapping from UI to workflow is done with the workflowStateTransitions
configuration
option of the defaultTranslationWorkflowDetailFrom
.
This is basically a map from the current value of the translationAction
called state
to
a list of possible next values for the translationAction
called successors
.
Each workflowStateTransition
creates a radio group with the successors
as radio buttons,
that will be displayed, when the current value of the translationAction
matches the state
.
Localization
Localization of the translation workflow UI is done in the file
BlueprintProcessDefinitions.properties
, which uses the following patterns:
<ProcessDefinition-name>_text
: the name of theProcessDefinition
<ProcessDefinition-name>_state_<state>_text
: the name of a state or successor of aworkflowStateTransition
<ProcessDefinition-name>_task_<task>_text
: the name of aTask