From a63ceee9ee3816874ff29ef1561ebac8a721c722 Mon Sep 17 00:00:00 2001 From: N Smith Date: Thu, 22 Sep 2011 11:16:20 +0000 Subject: [PATCH] ALF-10084, ALF-10242. Fixed issues and added WorkflowService methods to get workflow instances without filtering by definition id. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30699 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../workflow/AbstractWorkflowRestApiTest.java | 3 ++ .../workflow/WorkflowInstancesGet.java | 41 ++++--------------- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/workflow/AbstractWorkflowRestApiTest.java b/source/java/org/alfresco/repo/web/scripts/workflow/AbstractWorkflowRestApiTest.java index d7f7546b6f..bda56c5233 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/AbstractWorkflowRestApiTest.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/AbstractWorkflowRestApiTest.java @@ -948,6 +948,9 @@ public abstract class AbstractWorkflowRestApiTest extends BaseWebScriptTest public void testWorkflowInstancesGet() throws Exception { + // Should work even with definitions hidden. + wfTestHelper.setVisible(false); + //Start workflow as USER1 and assign task to USER2. personManager.setUser(USER1); WorkflowDefinition adhocDef = workflowService.getDefinitionByName(getAdhocWorkflowDefinitionName()); diff --git a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowInstancesGet.java b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowInstancesGet.java index e83892889b..7845b40acf 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowInstancesGet.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowInstancesGet.java @@ -30,7 +30,6 @@ import javax.servlet.http.HttpServletResponse; import org.alfresco.model.ContentModel; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.cmr.workflow.WorkflowInstance; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.Status; @@ -94,43 +93,21 @@ public class WorkflowInstancesGet extends AbstractWorkflowWebscript { workflowDefinitionId = req.getParameter(PARAM_DEFINITION_ID); } - - // default workflow state to ACTIVE if not supplied - if (state == null) + + List workflows; + + // list workflows for specified workflow definition + if(state == null) { - state = WorkflowState.ACTIVE; + workflows = workflowService.getWorkflows(workflowDefinitionId); } - - List workflows = new ArrayList(); - - if (workflowDefinitionId != null) + else if (state == WorkflowState.ACTIVE) { - // list workflows for specified workflow definition - if (state == WorkflowState.ACTIVE) - { - workflows.addAll(workflowService.getActiveWorkflows(workflowDefinitionId)); - } - else - { - workflows.addAll(workflowService.getCompletedWorkflows(workflowDefinitionId)); - } + workflows = workflowService.getActiveWorkflows(workflowDefinitionId); } else { - List workflowDefinitions = workflowService.getAllDefinitions(); - - // list workflows for all definitions - for (WorkflowDefinition workflowDefinition : workflowDefinitions) - { - if (state == WorkflowState.ACTIVE) - { - workflows.addAll(workflowService.getActiveWorkflows(workflowDefinition.getId())); - } - else - { - workflows.addAll(workflowService.getCompletedWorkflows(workflowDefinition.getId())); - } - } + workflows = workflowService.getCompletedWorkflows(workflowDefinitionId); } // sort workflows by due date