From 99bc588c38ab065122e2c66b098f7536f7032f28 Mon Sep 17 00:00:00 2001 From: Mike Hatfield Date: Thu, 21 Aug 2008 08:50:14 +0000 Subject: [PATCH] Fixes for task transitions: default transitions and setting scope in Workflow JS API git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10454 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/workflow/jscript/JscriptWorkflowPath.java | 2 +- .../repo/workflow/jscript/JscriptWorkflowTask.java | 14 +++++++++----- .../repo/workflow/jscript/WorkflowManager.java | 6 +++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowPath.java b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowPath.java index e67db51d9a..36ab756ca9 100644 --- a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowPath.java +++ b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowPath.java @@ -165,7 +165,7 @@ public class JscriptWorkflowPath implements Serializable ArrayList tasks = new ArrayList(); for (WorkflowTask cmrTask : cmrTasks) { - tasks.add(new JscriptWorkflowTask(cmrTask, this.serviceRegistry)); + tasks.add(new JscriptWorkflowTask(cmrTask, this.serviceRegistry, this.scope)); } Scriptable tasksScriptable = diff --git a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java index f54b00dfdf..f62f44889c 100644 --- a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java +++ b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java @@ -33,6 +33,7 @@ import org.alfresco.model.ApplicationModel; import org.alfresco.model.ContentModel; import org.alfresco.model.WCMModel; import org.alfresco.repo.avm.AVMNodeConverter; +import org.alfresco.repo.jscript.BaseScopableProcessorExtension; import org.alfresco.repo.jscript.ScriptNode; import org.alfresco.repo.jscript.ScriptableHashMap; import org.alfresco.repo.jscript.ScriptableQNameMap; @@ -61,7 +62,7 @@ import org.mozilla.javascript.Scriptable; * * @author glenj */ -public class JscriptWorkflowTask implements Serializable +public class JscriptWorkflowTask extends BaseScopableProcessorExtension implements Serializable { private static final String WCM_WF_MODEL_1_0_URI = "http://www.alfresco.org/model/wcmworkflow/1.0"; @@ -117,7 +118,8 @@ public class JscriptWorkflowTask implements Serializable * @param packageResources */ public JscriptWorkflowTask(final String id, final String name, final String title, final String description, final ServiceRegistry serviceRegistry, - final ScriptableQNameMap properties, final ScriptableHashMap transitions, Scriptable packageResources) + final ScriptableQNameMap properties, final ScriptableHashMap transitions, Scriptable packageResources, + Scriptable scope) { this.id = id; this.name = name; @@ -127,6 +129,7 @@ public class JscriptWorkflowTask implements Serializable this.properties = properties; this.transitions = transitions; this.packageResources = packageResources; + this.setScope(scope); } /** @@ -137,13 +140,14 @@ public class JscriptWorkflowTask implements Serializable * @param serviceRegistry * Service Registry object */ - public JscriptWorkflowTask(final WorkflowTask cmrWorkflowTask, final ServiceRegistry serviceRegistry) + public JscriptWorkflowTask(final WorkflowTask cmrWorkflowTask, final ServiceRegistry serviceRegistry, Scriptable scope) { this.id = cmrWorkflowTask.id; this.name = cmrWorkflowTask.name; this.title = cmrWorkflowTask.title; this.description = cmrWorkflowTask.description; this.serviceRegistry = serviceRegistry; + this.setScope(scope); // instantiate ScriptableQNameMap properties // from WorkflowTasks's Map properties @@ -204,9 +208,9 @@ public class JscriptWorkflowTask implements Serializable for (int i = 0; i < resources.size(); i++) { // create our Node representation from the NodeRef - answer[i] = new ScriptNode(resources.get(i), serviceRegistry, null); + answer[i] = new ScriptNode(resources.get(i), serviceRegistry, getScope()); } - packageResources = Context.getCurrentContext().newArray(null, answer); + packageResources = Context.getCurrentContext().newArray(getScope(), answer); } diff --git a/source/java/org/alfresco/repo/workflow/jscript/WorkflowManager.java b/source/java/org/alfresco/repo/workflow/jscript/WorkflowManager.java index 3b138bbf16..7f7feee815 100644 --- a/source/java/org/alfresco/repo/workflow/jscript/WorkflowManager.java +++ b/source/java/org/alfresco/repo/workflow/jscript/WorkflowManager.java @@ -135,7 +135,7 @@ public class WorkflowManager extends BaseScopableProcessorExtension ArrayList pooledTasks = new ArrayList(); for (WorkflowTask cmrPooledTask : cmrPooledTasks) { - pooledTasks.add(new JscriptWorkflowTask(cmrPooledTask, this.services)); + pooledTasks.add(new JscriptWorkflowTask(cmrPooledTask, this.services, this.getScope())); } Scriptable pooledTasksScriptable = (Scriptable)new ValueConverter().convertValueForScript( @@ -152,7 +152,7 @@ public class WorkflowManager extends BaseScopableProcessorExtension public JscriptWorkflowTask getTask(String id) { WorkflowTask cmrWorkflowTask = this.services.getWorkflowService().getTaskById(id); - return new JscriptWorkflowTask(cmrWorkflowTask, this.services); + return new JscriptWorkflowTask(cmrWorkflowTask, this.services, this.getScope()); } /** @@ -230,7 +230,7 @@ public class WorkflowManager extends BaseScopableProcessorExtension ArrayList assignedTasks = new ArrayList(); for (WorkflowTask cmrTask : cmrAssignedTasks) { - assignedTasks.add(new JscriptWorkflowTask(cmrTask, this.services)); + assignedTasks.add(new JscriptWorkflowTask(cmrTask, this.services, this.getScope())); } Scriptable assignedTasksScriptable =