diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.get.json.ftl index 572ddb1552..62ee2c8d37 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.get.json.ftl @@ -1,7 +1,7 @@ <#-- Workflow Task Instance in details --> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { "data": - <@taskLib.taskJSON task=workflowTask detailed=true/> + <@workflowLib.taskJSON task=workflowTask detailed=true/> } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.put.json.ftl index 557cbd0d2d..a12a867b48 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.put.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instance.put.json.ftl @@ -1,6 +1,6 @@ <#-- Workflow Task Instance in details --> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { - "data": <@taskLib.taskJSON task=workflowTask detailed=true/> + "data": <@workflowLib.taskJSON task=workflowTask detailed=true /> } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instances.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instances.get.json.ftl index a1a2f84c92..0e741446d8 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instances.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task-instances.get.json.ftl @@ -1,16 +1,15 @@ <#-- List Workflow Task Instances --> -<#assign detailed=((args.detailed!"false")=="true")> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { "data": [ <#list taskInstances as task> - <@taskLib.taskJSON task=task detailed=detailed/> + <@workflowLib.taskJSON task=task /> <#if task_has_next>, ] <#if paging??>, "paging": - <@taskLib.pagingJSON paging=paging /> + <@workflowLib.pagingJSON paging=paging /> } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definition.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definition.lib.ftl deleted file mode 100644 index c1a6a80275..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definition.lib.ftl +++ /dev/null @@ -1,27 +0,0 @@ -<#-- Renders a workflow definition. --> -<#macro workflowDefinitionJSON workflowDefinition detailed=false> -<#escape x as jsonUtils.encodeJSONString(x)> - { - "id" : "${workflowDefinition.id}", - "url": "${workflowDefinition.url}", - "name": "${workflowDefinition.name}", - "title": "${workflowDefinition.title}", - "description": "${workflowDefinition.description}" - <#if detailed>, - "version": "${workflowDefinition.version}", - "startTaskDefinitionUrl": "${workflowDefinition.startTaskDefinitionUrl}", - "startTaskDefinitionType": "${shortQName(workflowDefinition.startTaskDefinitionType)}", - "taskDefinitions": - [ - <#list workflowDefinition.taskDefinitions as taskDefinition> - { - "url": "${taskDefinition.url}", - "type": "${shortQName(taskDefinition.type)}" - } - <#if taskDefinition_has_next>, - - ] - - } - - \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definitions.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definitions.get.json.ftl index 4bdc51eb2e..850b53b9fc 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definitions.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-definitions.get.json.ftl @@ -1,9 +1,9 @@ -<#import "workflow-definition.lib.ftl" as workflowDefLib /> +<#import "workflow.lib.ftl" as workflowLib /> { "data": [ <#list workflowDefinitions as workflowDefinition> - <@workflowDefLib.workflowDefinitionJSON workflowDefinition=workflowDefinition /> + <@workflowLib.workflowDefinitionJSON workflowDefinition=workflowDefinition /> <#if workflowDefinition_has_next>, ] diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instance.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instance.get.json.ftl index 8da05e3f60..d82c734cc4 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instance.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instance.get.json.ftl @@ -1,6 +1,7 @@ <#-- Workflow Instance in details --> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { - "data": <@taskLib.workflowInstanceJSON workflowInstance=workflowInstance detailed=true/> + "data": + <@workflowLib.workflowInstanceJSON workflowInstance=workflowInstance detailed=true /> } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances-for-node.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances-for-node.get.json.ftl index 5bc050bc9c..7cc7b37a0e 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances-for-node.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances-for-node.get.json.ftl @@ -1,11 +1,11 @@ <#-- Workflow Instances collection for NodeRef--> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { "data": [ <#list workflowInstances as workflowInstance> - <@taskLib.workflowInstanceJSON workflowInstance=workflowInstance /> + <@workflowLib.workflowInstanceJSON workflowInstance=workflowInstance /> <#if workflowInstance_has_next>, ] diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances.get.json.ftl index c277e924a2..e90cc3058b 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow-instances.get.json.ftl @@ -1,16 +1,16 @@ <#-- Workflow Instances collection --> -<#import "task.lib.ftl" as taskLib /> +<#import "workflow.lib.ftl" as workflowLib /> { "data": [ <#list workflowInstances as workflowInstance> - <@taskLib.workflowInstanceJSON workflowInstance=workflowInstance /> + <@workflowLib.workflowInstanceJSON workflowInstance=workflowInstance /> <#if workflowInstance_has_next>, ] <#if paging??>, "paging": - <@taskLib.pagingJSON paging=paging /> + <@workflowLib.pagingJSON paging=paging /> } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow.lib.ftl similarity index 77% rename from config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl rename to config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow.lib.ftl index 470396cbe3..3159793521 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/task.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/workflow/workflow.lib.ftl @@ -1,5 +1,3 @@ -<#import "workflow-definition.lib.ftl" as worflowDefinitionLib /> - <#-- Renders a task instance. --> <#macro taskJSON task detailed=false> <#escape x as jsonUtils.encodeJSONString(x)> @@ -7,7 +5,6 @@ "id": "${task.id}", "url": "${task.url}", "name": "${task.name}", - "type": "${task.type}", "title": "${task.title}", "description": "${task.description}", "state": "${task.state}", @@ -106,13 +103,12 @@ "id": "${workflowInstance.id}", "url": "${workflowInstance.url}", "name": "${workflowInstance.name}", - "type": "${workflowInstance.type}", "title": "${workflowInstance.title}", "description": "${workflowInstance.description}", - "message": "${workflowInstance.message}", "isActive": ${workflowInstance.isActive?string}, "startDate": "${workflowInstance.startDate}", - "priority": <#if workflowInstance.priority??>${workflowInstance.priority?c}<#else>0, + "priority": <#if workflowInstance.priority??>${workflowInstance.priority?c}<#else>2, + "message": <#if workflowInstance.message?? && workflowInstance.message?length > 0>"${workflowInstance.message}"<#else>null, "endDate": <#if workflowInstance.endDate??>"${workflowInstance.endDate}"<#else>null, "dueDate": <#if workflowInstance.dueDate??>"${workflowInstance.dueDate}"<#else>null, "context": <#if workflowInstance.context??>"${workflowInstance.context}"<#else>null, @@ -131,7 +127,7 @@ "definitionUrl": "${workflowInstance.definitionUrl}"<#if detailed>, "startTaskInstanceId": "${workflowInstance.startTaskInstanceId}", "definition": - <@worflowDefinitionLib.workflowDefinitionJSON workflowDefinition=workflowInstance.definition detailed=true/> + <@workflowDefinitionJSON workflowDefinition=workflowInstance.definition detailed=true/> <#if workflowInstance.tasks??>, "tasks": [ @@ -146,7 +142,35 @@ -<#-- Renders a paging. --> +<#-- Renders a workflow definition. --> +<#macro workflowDefinitionJSON workflowDefinition detailed=false> +<#escape x as jsonUtils.encodeJSONString(x)> + { + "id" : "${workflowDefinition.id}", + "url": "${workflowDefinition.url}", + "name": "${workflowDefinition.name}", + "title": "${workflowDefinition.title}", + "description": "${workflowDefinition.description}" + <#if detailed>, + "version": "${workflowDefinition.version}", + "startTaskDefinitionUrl": "${workflowDefinition.startTaskDefinitionUrl}", + "startTaskDefinitionType": "${shortQName(workflowDefinition.startTaskDefinitionType)}", + "taskDefinitions": + [ + <#list workflowDefinition.taskDefinitions as taskDefinition> + { + "url": "${taskDefinition.url}", + "type": "${shortQName(taskDefinition.type)}" + } + <#if taskDefinition_has_next>, + + ] + + } + + + +<#-- Renders a paging object. --> <#macro pagingJSON paging> <#escape x as jsonUtils.encodeJSONString(x)> { 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 b4940379e0..e9635feb25 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java @@ -72,7 +72,6 @@ public class WorkflowModelBuilder public static final String TASK_DESCRIPTION = "description"; public static final String TASK_TITLE = "title"; public static final String TASK_NAME = "name"; - public static final String TASK_TYPE = "type"; public static final String TASK_URL = "url"; public static final String TASK_IS_POOLED = "isPooled"; public static final String TASK_IS_EDITABLE = "isEditable"; @@ -94,7 +93,6 @@ public class WorkflowModelBuilder public static final String TASK_WORKFLOW_INSTANCE_ID = "id"; public static final String TASK_WORKFLOW_INSTANCE_URL = "url"; public static final String TASK_WORKFLOW_INSTANCE_NAME = "name"; - 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"; @@ -180,7 +178,6 @@ public class WorkflowModelBuilder model.put(TASK_ID, task.getId()); model.put(TASK_URL, getUrl(task)); model.put(TASK_NAME, task.getName()); - model.put(TASK_TYPE, task.getDefinition().getMetadata().getName().toPrefixString(this.namespaceService)); model.put(TASK_TITLE, task.getTitle()); model.put(TASK_DESCRIPTION, task.getDescription()); model.put(TASK_STATE, task.getState().name()); @@ -231,9 +228,9 @@ public class WorkflowModelBuilder model.put(TASK_WORKFLOW_INSTANCE_ID, workflowInstance.getId()); model.put(TASK_WORKFLOW_INSTANCE_URL, getUrl(workflowInstance)); model.put(TASK_WORKFLOW_INSTANCE_NAME, workflowInstance.getDefinition().getName()); - model.put(TASK_WORKFLOW_INSTANCE_TYPE, workflowInstance.getDefinition().getName()); model.put(TASK_WORKFLOW_INSTANCE_TITLE, workflowInstance.getDefinition().getTitle()); model.put(TASK_WORKFLOW_INSTANCE_DESCRIPTION, workflowInstance.getDefinition().getDescription()); + model.put(TASK_WORKFLOW_INSTANCE_MESSAGE, workflowInstance.getDescription()); model.put(TASK_WORKFLOW_INSTANCE_IS_ACTIVE, workflowInstance.isActive()); model.put(TASK_WORKFLOW_INSTANCE_PRIORITY, workflowInstance.getPriority()); model.put(TASK_WORKFLOW_INSTANCE_DEFINITION_URL, getUrl(workflowInstance.getDefinition())); @@ -283,16 +280,6 @@ public class WorkflowModelBuilder { model.put(TASK_WORKFLOW_INSTANCE_INITIATOR, getPersonModel(nodeService.getProperty(workflowInstance.initiator, ContentModel.PROP_USERNAME))); } - - String message = workflowInstance.getDescription(); - if (message != null && message.length() > 0) - { - model.put(TASK_WORKFLOW_INSTANCE_MESSAGE, message); - } - else - { - model.put(TASK_WORKFLOW_INSTANCE_MESSAGE, workflowInstance.getDefinition().getTitle()); - } return model; } 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 6c1d0edaed..8ab27cf389 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilderTest.java @@ -88,8 +88,6 @@ public class WorkflowModelBuilderTest extends TestCase assertEquals(task.getTitle(), model.get(WorkflowModelBuilder.TASK_TITLE)); assertEquals(task.getDescription(), model.get(WorkflowModelBuilder.TASK_DESCRIPTION)); assertEquals(task.getState().name(), model.get(WorkflowModelBuilder.TASK_STATE)); - assertEquals(task.getDefinition().getMetadata().getName().toPrefixString(this.namespaceService), - model.get(WorkflowModelBuilder.TASK_TYPE)); assertNull(model.get(WorkflowModelBuilder.TASK_OUTCOME)); assertEquals(false, model.get(WorkflowModelBuilder.TASK_IS_POOLED)); assertEquals(false, model.get(WorkflowModelBuilder.TASK_IS_EDITABLE)); @@ -235,9 +233,9 @@ public class WorkflowModelBuilderTest extends TestCase assertEquals(workflowInstance.getId(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_ID)); assertTrue(model.containsKey(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_URL)); assertEquals(workflowInstance.getDefinition().getName(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_NAME)); - assertEquals(workflowInstance.getDefinition().getName(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_TYPE)); assertEquals(workflowInstance.getDefinition().getTitle(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_TITLE)); assertEquals(workflowInstance.getDefinition().getDescription(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_DESCRIPTION)); + assertEquals(workflowInstance.getDescription(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_MESSAGE)); assertEquals(workflowInstance.isActive(), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_IS_ACTIVE)); assertEquals(ISO8601DateFormat.format(workflowInstance.getStartDate()), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_START_DATE)); assertEquals(ISO8601DateFormat.format(workflowInstance.getEndDate()), model.get(WorkflowModelBuilder.TASK_WORKFLOW_INSTANCE_END_DATE)); diff --git a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowRestApiTest.java b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowRestApiTest.java index cc4a2f616d..de64528cc2 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowRestApiTest.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowRestApiTest.java @@ -136,8 +136,6 @@ public class WorkflowRestApiTest extends BaseWebScriptTest assertEquals(task.title, result.getString("title")); assertEquals(task.description, result.getString("description")); assertEquals(task.state.name(), result.getString("state")); - assertEquals(task.definition.metadata.getName().toPrefixString(this.namespaceService), - result.getString("type")); assertEquals( "api/workflow-paths/" + adhocPath.getId(), result.getString("path")); assertFalse(result.getBoolean("isPooled")); assertTrue(result.getBoolean("isEditable")); @@ -186,7 +184,7 @@ public class WorkflowRestApiTest extends BaseWebScriptTest { JSONObject taskJSON = results.getJSONObject(i); - String type = taskJSON.getString("type"); + String type = taskJSON.getString("name"); if (exclude.equals(type)) { adhocTasksPresent = true; @@ -234,7 +232,6 @@ public class WorkflowRestApiTest extends BaseWebScriptTest assertEquals(startTask.title, result.getString("title")); assertEquals(startTask.description, result.getString("description")); assertEquals(startTask.state.name(), result.getString("state")); - assertEquals(startTask.name, result.getString("type")); assertEquals("api/workflow-paths/" + adhocPath.getId(), result.getString("path")); assertFalse(result.getBoolean("isPooled")); assertTrue(result.getBoolean("isEditable")); @@ -467,8 +464,8 @@ public class WorkflowRestApiTest extends BaseWebScriptTest Map params = new HashMap(); params.put(WorkflowModel.ASSOC_ASSIGNEE, personManager.get(USER2)); Date dueDate = new Date(); - params.put(WorkflowModel.PROP_DUE_DATE, dueDate); - params.put(WorkflowModel.PROP_PRIORITY, 1); + params.put(WorkflowModel.PROP_WORKFLOW_DUE_DATE, dueDate); + params.put(WorkflowModel.PROP_WORKFLOW_PRIORITY, 1); params.put(WorkflowModel.ASSOC_PACKAGE, packageRef); params.put(WorkflowModel.PROP_CONTEXT, packageRef); @@ -486,15 +483,15 @@ public class WorkflowRestApiTest extends BaseWebScriptTest assertNotNull(result); assertEquals(adhocInstance.id, result.getString("id")); + assertTrue(result.opt("message").equals(JSONObject.NULL)); assertEquals(adhocInstance.definition.name, result.getString("name")); - assertEquals(adhocInstance.definition.name, result.getString("type")); assertEquals(adhocInstance.definition.title, result.getString("title")); assertEquals(adhocInstance.definition.description, result.getString("description")); assertEquals(adhocInstance.active, result.getBoolean("isActive")); assertEquals(ISO8601DateFormat.format(adhocInstance.startDate), result.getString("startDate")); assertNotNull(result.getString("dueDate")); assertNotNull(result.getString("endDate")); - assertEquals(2, result.getInt("priority")); + assertEquals(1, result.getInt("priority")); JSONObject initiator = result.getJSONObject("initiator"); assertEquals(USER1, initiator.getString("userName")); @@ -622,7 +619,7 @@ public class WorkflowRestApiTest extends BaseWebScriptTest { JSONObject workflowInstanceJSON = results.getJSONObject(i); - String type = workflowInstanceJSON.getString("type"); + String type = workflowInstanceJSON.getString("name"); if (exclude.equals(type)) { adhocWorkflowPresent = true;