diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl index 90f701e940..cf15225b41 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl @@ -109,9 +109,14 @@ "type": "${workflowInstance.type}", "title": "${workflowInstance.title}", "description": "${workflowInstance.description}", + "message": "${workflowInstance.message}", "isActive": ${workflowInstance.isActive?string}, + "priority": ${workflowInstance.priority?c}, "startDate": "${workflowInstance.startDate}", "endDate": <#if workflowInstance.endDate??>"${workflowInstance.endDate}"<#else>null, + "dueDate": <#if workflowInstance.dueDate??>"${workflowInstance.dueDate}"<#else>null, + "context": <#if workflowInstance.context??>"${workflowInstance.context}"<#else>null, + "package": <#if workflowInstance.package??>"${workflowInstance.package}"<#else>null, "initiator": <#if workflowInstance.initiator??> { @@ -124,10 +129,6 @@ null, "definitionUrl": "${workflowInstance.definitionUrl}"<#if detailed>, - "dueDate": <#if workflowInstance.dueDate??>"${workflowInstance.dueDate}"<#else>null, - "priority": <#if workflowInstance.priority??>${workflowInstance.priority?c}<#else>null, - "context": <#if workflowInstance.context??>"${workflowInstance.context}"<#else>null, - "package": "${workflowInstance.package}", "startTaskInstanceId": "${workflowInstance.startTaskInstanceId}", "definition": <@worflowDefinitionLib.workflowDefinitionJSON workflowDefinition=workflowInstance.definition detailed=true/> diff --git a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java index 30cdceb505..a9b7e51ef1 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java @@ -98,6 +98,7 @@ public class WorkflowModelBuilder public static final String TASK_WORKFLOW_INSTANCE_TYPE = "type"; public static final String TASK_WORKFLOW_INSTANCE_TITLE = "title"; public static final String TASK_WORKFLOW_INSTANCE_DESCRIPTION = "description"; + public static final String TASK_WORKFLOW_INSTANCE_MESSAGE = "message"; public static final String TASK_WORKFLOW_INSTANCE_IS_ACTIVE = "isActive"; public static final String TASK_WORKFLOW_INSTANCE_START_DATE = "startDate"; public static final String TASK_WORKFLOW_INSTANCE_DUE_DATE = "dueDate"; @@ -235,7 +236,18 @@ public class WorkflowModelBuilder model.put(TASK_WORKFLOW_INSTANCE_TITLE, workflowInstance.getDefinition().getTitle()); model.put(TASK_WORKFLOW_INSTANCE_DESCRIPTION, workflowInstance.getDefinition().getDescription()); model.put(TASK_WORKFLOW_INSTANCE_IS_ACTIVE, workflowInstance.isActive()); + model.put(TASK_WORKFLOW_INSTANCE_DEFINITION_URL, getUrl(workflowInstance.getDefinition())); + if (workflowInstance.getWorkflowPackage() != null) + { + model.put(TASK_WORKFLOW_INSTANCE_PACKAGE, workflowInstance.getWorkflowPackage().toString()); + } + + if (workflowInstance.getContext() != null) + { + model.put(TASK_WORKFLOW_INSTANCE_CONTEXT, workflowInstance.getContext().toString()); + } + if (workflowInstance.getStartDate() == null) { model.put(TASK_WORKFLOW_INSTANCE_START_DATE, workflowInstance.getStartDate()); @@ -262,7 +274,19 @@ public class WorkflowModelBuilder { model.put(TASK_WORKFLOW_INSTANCE_INITIATOR, getPersonModel(nodeService.getProperty(workflowInstance.initiator, ContentModel.PROP_USERNAME))); } - model.put(TASK_WORKFLOW_INSTANCE_DEFINITION_URL, getUrl(workflowInstance.getDefinition())); + + // TODO: Try and retrieve these from the workflow instance to save the need to + // do an extra query which makes things slow + model.put(TASK_WORKFLOW_INSTANCE_PRIORITY, 2); + model.put(TASK_WORKFLOW_INSTANCE_DUE_DATE, null); + if (workflowInstance.getDescription() != null) + { + model.put(TASK_WORKFLOW_INSTANCE_MESSAGE, workflowInstance.description); + } + else + { + model.put(TASK_WORKFLOW_INSTANCE_MESSAGE, workflowInstance.getDefinition().getTitle()); + } return model; } @@ -299,13 +323,11 @@ public class WorkflowModelBuilder model.put(TASK_WORKFLOW_INSTANCE_DUE_DATE, dueDate); } - if (workflowInstance.context != null) + if (priority != null) { - model.put(TASK_WORKFLOW_INSTANCE_CONTEXT, workflowInstance.context.toString()); + model.put(TASK_WORKFLOW_INSTANCE_PRIORITY, priority); } - model.put(TASK_WORKFLOW_INSTANCE_PRIORITY, priority); - model.put(TASK_WORKFLOW_INSTANCE_PACKAGE, workflowInstance.workflowPackage.toString()); model.put(TASK_WORKFLOW_INSTANCE_START_TASK_INSTANCE_ID, startTaskId); model.put(TASK_WORKFLOW_INSTANCE_DEFINITION, buildDetailed(workflowInstance.definition)); diff --git a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java index a5639fd9a3..6c1d0edaed 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java @@ -351,6 +351,7 @@ public class WorkflowModelBuilderTest extends TestCase path.instance.id = ""; path.instance.active = true; path.instance.startDate = new Date(); + path.instance.workflowPackage = workflowPackage; path.instance.definition = new WorkflowDefinition( "The Id", "The Name", "1", "The Title", "The Description", null); return path;