From 8cf1f25f3f56d7f5ed80cd82f4b8f795a6cb2efe Mon Sep 17 00:00:00 2001 From: Gavin Cornwell Date: Fri, 20 Aug 2010 13:46:42 +0000 Subject: [PATCH] Added "avatarUrl" property to the "owner" and "initiator" objects in workflow REST API git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21900 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repository/workflow/task.lib.ftl | 7 +++++-- .../scripts/workflow/WorkflowModelBuilder.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) 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 14f40deb0c..8e107f1f34 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 @@ -23,7 +23,8 @@ { "userName": "${task.owner.userName}"<#if task.owner.firstName??>, "firstName": "${task.owner.firstName}"<#if task.owner.lastName??>, - "lastName": "${task.owner.lastName}" + "lastName": "${task.owner.lastName}"<#if task.owner.avatar??>, + "avatar": "${task.owner.avatar}" }, <#else> null, @@ -105,6 +106,7 @@ "id": "${workflowInstance.id}", "url": "${workflowInstance.url}", "name": "${workflowInstance.name}", + "type": "${workflowInstance.type}", "title": "${workflowInstance.title}", "description": "${workflowInstance.description}", "isActive": ${workflowInstance.isActive?string}, @@ -115,7 +117,8 @@ { "userName": "${workflowInstance.initiator.userName}"<#if workflowInstance.initiator.firstName??>, "firstName": "${workflowInstance.initiator.firstName}"<#if workflowInstance.initiator.lastName??>, - "lastName": "${workflowInstance.initiator.lastName}" + "lastName": "${workflowInstance.initiator.lastName}"<#if workflowInstance.initiator.avatarUrl??>, + "avatarUrl": "${workflowInstance.initiator.avatarUrl}" }, <#else> null, 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 bcf4fb7e03..eccd1c5362 100644 --- a/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java +++ b/source/java/org/alfresco/repo/web/scripts/workflow/WorkflowModelBuilder.java @@ -35,6 +35,7 @@ import org.alfresco.repo.workflow.WorkflowModel; import org.alfresco.service.cmr.dictionary.AssociationDefinition; import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition; +import org.alfresco.service.cmr.repository.AssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; @@ -64,6 +65,7 @@ public class WorkflowModelBuilder public static final String PERSON_LAST_NAME = "lastName"; public static final String PERSON_FIRST_NAME = "firstName"; public static final String PERSON_USER_NAME = "userName"; + public static final String PERSON_AVATAR = "avatarUrl"; public static final String TASK_PROPERTIES = "properties"; public static final String TASK_OWNER = "owner"; @@ -93,6 +95,7 @@ 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_IS_ACTIVE = "isActive"; @@ -224,6 +227,7 @@ 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_IS_ACTIVE, workflowInstance.isActive()); @@ -472,6 +476,13 @@ public class WorkflowModelBuilder Map properties = nodeService.getProperties(person); model.put(PERSON_FIRST_NAME, properties.get(ContentModel.PROP_FIRSTNAME)); model.put(PERSON_LAST_NAME, properties.get(ContentModel.PROP_LASTNAME)); + + // add the avatar, id present + List avatar = nodeService.getTargetAssocs(person, ContentModel.ASSOC_AVATAR); + if (avatar != null && !avatar.isEmpty()) + { + model.put(PERSON_AVATAR, getAvatarUrl(avatar.get(0).getTargetRef())); + } } return model; @@ -636,4 +647,8 @@ public class WorkflowModelBuilder return "api/workflow-instances/" + workflowInstance.getId(); } + private String getAvatarUrl(NodeRef avatarRef) + { + return "api/node/" + avatarRef.toString().replace("://", "/") + "/content/thumbnails/avatar"; + } }