<init-param>
<param-name>tvc.structurebrowser.rememberSelectedRow</param-name>
<param-value>true</param-value>
</init-param>
15 December 2017
It is configurable to have row remain selected when we perform action through context click. This can either be done globally via init-parameter tvc.structurebrowser.rememberSelectedRow
(default false) or by overriding the page config parameter rememberSelectedRow
:
<init-param>
<param-name>tvc.structurebrowser.rememberSelectedRow</param-name>
<param-value>true</param-value>
</init-param>
<Parameter name="rememberSelectedRow" value="true" />
It is possible to add "add to collection" function in the context menu by adding command AddToCollectionFromMenu.
Below is an example on how to configure this:
<Menu>
<Command ref="tvc:command:sb:collection/AddToCollectionFromMenu.xml"/>
</Menu>
AddToCollectionFromMenu command in context menu required the page config parameter rememberSelectedRow or init-parameter tvc.structurebrowser.rememberSelectedRow (default false) should be true.
|
It is possible to provide tooltip for search form fields using TooltipLabel
and TooltipContent
.
<TooltipLabel>MyLabelText</TooltipLabel>
<TooltipContent>Some Text</TooltipContent>
An adhoc task can be added in active workflow by using "Add Task" workflow operation by the workflow owner. When add task operation is executed, it is displaying the + icon on appropriate nodes and branches in workflow graph where task can be added. Through node’s add task operation, parallel tasks are created while thorugh branch serial tasks are created.
On clicking the + icon, Add Task form is opened with all task configuration. Any configuration can be choosen to create the adhoc task.
New Provider configuration "config" is added which enables posibility to run Workflow in different mode than Discussion using new mode configuration.
tvc.collaboration.providerClass=config tvc.collaboration.workflow.mode=enovia
Essential Workflow APIs are annotated with TVC’s @PublicAPI annotation and API reference are available as Javadoc.
Existing Workflow code are extensively refactored to provide simple/nice PublicAPI. Hence there are breaking changes related to WorkflowEngine, ReadContext and TriggerResult APIs. |
ReadContext’s Builder needs the corresponding CollaborationDAOFactory. Ex: new ReadContext.Builder(factory) .setEnv(env).setPerson(person).setIncludeRelated(true).build(); |
TriggerResults like SuccessResult.RESULT, ErrorResult.RESULT, DoneResult.RESULT, IgnoreResult.RESULT are replaced by TriggerResult.SUCCESS, TriggerResult.ERROR, TriggerResult.DONE, TriggerResult.IGNORE respectively. TriggerResult can be created using Builder API as well. new TriggerResult.Builder(TriggerStatus.SUCCESS).setData(result).build(). |
Workflow and Task DAO APIs are formalized and exposed as PublicAPI. It is now possible to perform Workflow and Task Operations using Java code.
WorkflowDAOFactory factory = DAOFactory.getInstance().getWorkflowFactory();
WorkflowDAO workflowDAO = factory.getSetDAO();
Workflow workflow = workflowDAO.read(factory.getConfigDAO().resolveId(workflowId), ctx);
WorkflowContext wctx = new WorkflowContext.Builder(ctx).setWorkflow(workflow).build();
ActionResult result = workflowDAO.stop(wctx); // workflowDAO.terminate(wctx)
workflowDAO.notify(new NotificationContext.Builder(ctx).setNotifications(result.getNotifications()).build());
It is now possible to extend builtin WorkflowEngine to have custom logic or processing.
<WorkflowConfigs>
....
<WorkflowEngine className="com.foo.bar.workflow.CustomWorkflowEngine" />
....
</WorkflowConfigs>
public class CustomWorkflowEngine extends DefaultWorkflowEngine implements WorkflowEngine {
@Override
public EngineResult start(WorkflowContext wctx) throws TVCException {
EngineResult result = super.start(wctx);
// custom processing
return result;
}
....
}
Workflow watchers are notified (Email and Custom) when Workflow level operations (Stop, Restart, Terminate) are performed.
It is now possible to write custom Workflow/Task operations to perform server side operation without custom JavaScript and AjaxService.
public class TestOperation extends AbstractOperation {
@Override
public Command include(OperationContext ctx) throws TVCException {
return new TestCommand(ctx);
}
@Override
public OperationResult execute(OperationContext ctx) throws TVCException {
// executed after command clicked in client side
}
}
Builtin Workflow Operations can be easily re-labelled per WorkflowConfig.
{
...
"operations": [
{
"id": "operation-done",
"base": "complete",
"label": "Done Task or tvx.custom.operation.done",
}
]
...
}
It now possible to include custom resources like <JavaScript/>, <Template/>, <StyleSheet/> and <AjaxService/> in TVCWorkflowConfig.xml
....
<WorkflowAction>
<Resources>
<AjaxService service="tvxCollaborationService"/>
<JavaScript src="/tvx/collaboration/inboxCustomScript.js"/>
<StyleSheet src="/tvx/collaboration/inboxCustomStyles.css"/>
</Resources>
</WorkflowAction>
....
New Provider configuration "config" is added which enables posibility to run Discussion in different mode than Workflow using new mode configuration.
tvc.collaboration.providerClass=config tvc.collaboration.discussion.mode=exalead
Essential Discussion APIs are annotated with TVC’s @PublicAPI annotation and API reference are available as Javadoc.
ColumnType "discussion-link" can be used in Helium table along with optional helium specific template.
<Column>
<Name>discussion-link</Name>
<ColumnType>discussion-link</ColumnType>
<!-- an optional helium specific Template to have icon over image and rich tooltip -->
<Setting name="Template" value="helium/templates/collaboration/discussion-link" />
</Column>