diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml index fd2cb481b5..d5b1696a80 100644 --- a/config/alfresco/core-services-context.xml +++ b/config/alfresco/core-services-context.xml @@ -422,6 +422,7 @@ alfresco/model/recordsModel.xml alfresco/model/bpmModel.xml alfresco/model/workflowModel.xml + alfresco/model/wcmModel.xml org/alfresco/repo/security/authentication/userModel.xml diff --git a/config/alfresco/model/wcmModel.xml b/config/alfresco/model/wcmModel.xml new file mode 100644 index 0000000000..cd3c4e1842 --- /dev/null +++ b/config/alfresco/model/wcmModel.xml @@ -0,0 +1,70 @@ + + + WCM Specific Types + Alfresco + 2006-10-06 + 1.0 + + + + + + + + + + + + + + + + + + XForms Template + + + Root Tag Name + d:text + true + + + + + Template Output Methods + + wcm:capture + false + false + + + wcm:templateoutputmethod + wcm:presentation + false + true + + + + + + + + + XML Transformer + + + Type + d:text + true + + + Template Source + d:noderef + true + + + + + + + \ No newline at end of file diff --git a/source/java/org/alfresco/model/WCMModel.java b/source/java/org/alfresco/model/WCMModel.java new file mode 100644 index 0000000000..133b3a01d0 --- /dev/null +++ b/source/java/org/alfresco/model/WCMModel.java @@ -0,0 +1,26 @@ +/** + * + */ +package org.alfresco.model; + +import org.alfresco.service.namespace.QName; + +/** + * QName definitions for WCM. + * @author britt + */ +public interface WCMModel +{ + public static final String WCM_MODEL_URI = "http://www.alfresco.org/model/wcmmodel/1.0"; + public static final String WCM_MODEL_PREFIX = "wcm"; + + // The XForms data capture template aspect. + public static final QName ASPECT_TEMPLATE = QName.createQName(WCM_MODEL_URI, "template"); + public static final QName PROP_ROOT_TAG_NAME = QName.createQName(WCM_MODEL_URI, "roottagname"); + public static final QName ASSOC_TEMPLATE_OUTPUT_METHODS = QName.createQName(WCM_MODEL_URI, "templateoutputmethods"); + + // An XML to something else tranformer aspect. + public static final QName ASPECT_TEMPLATE_OUTPUT_METHOD = QName.createQName(WCM_MODEL_URI, "templateoutputmethod"); + public static final QName PROP_OUTPUT_TYPE = QName.createQName(WCM_MODEL_URI, "outputtype"); + public static final QName PROP_TEMPLATE_SOURCE = QName.createQName(WCM_MODEL_URI, "templatesource"); +} diff --git a/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java b/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java new file mode 100644 index 0000000000..f7ca3383f9 --- /dev/null +++ b/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java @@ -0,0 +1,87 @@ +/** + * + */ +package org.alfresco.repo.avm.actions; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.alfresco.repo.action.ParameterDefinitionImpl; +import org.alfresco.repo.action.executer.ActionExecuterAbstractBase; +import org.alfresco.repo.workflow.WorkflowModel; +import org.alfresco.service.cmr.action.Action; +import org.alfresco.service.cmr.action.ParameterDefinition; +import org.alfresco.service.cmr.dictionary.DataTypeDefinition; +import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.workflow.WorkflowDefinition; +import org.alfresco.service.cmr.workflow.WorkflowService; +import org.alfresco.service.namespace.QName; + +/** + * This action knows how to start an AVM specific workflow. + * @author britt + */ +public class StartAVMWorkflowAction extends ActionExecuterAbstractBase +{ + public static final String NAME = "start-avm-workflow"; + public static final String PARAM_STORE_NAME = "store-name"; + public static final String PARAM_WORKFLOW_NAME = "workflow-name"; + + /** + * Reference to workflow service. + */ + private WorkflowService fWorkflowService; + + /** + * Set the workflow service. + * @param service The workflow service. + */ + public void setWorkflowService(WorkflowService service) + { + fWorkflowService = service; + } + + /** + * Default constructor. + */ + public StartAVMWorkflowAction() + { + super(); + } + + /** + * Start an AVM specific workflow. + * @param action The action instance. + * @param actionedUponNodeRef This should be an AVM folder that contains + * the nodes to be flowed. + */ + @Override + protected void executeImpl(Action action, NodeRef actionedUponNodeRef) + { + String workflowName = (String)action.getParameterValue(PARAM_WORKFLOW_NAME); + String storeName = (String)action.getParameterValue(PARAM_STORE_NAME); + WorkflowDefinition def = fWorkflowService.getDefinitionByName(name); + NodeRef workflowPackage = fWorkflowService.createPackage(actionedUponNodeRef); + Map wfParams = new HashMap(); + wfParams.put(WorkflowModel.ASSOC_PACKAGE, workflowPackage); + } + + /** + * Setup any parameters for this action. + * @param paramList The list of parameters to add to. + */ + @Override + protected void addParameterDefinitions(List paramList) + { + paramList.add(new ParameterDefinitionImpl(PARAM_STORE_NAME, + DataTypeDefinition.TEXT, + true, + getParamDisplayLabel(PARAM_STORE_NAME))); + paramList.add(new ParameterDefinitionImpl(PARAM_WORKFLOW_NAME, + DataTypeDefinition.TEXT, + true, + getParamDisplayLabel(PARAM_WORKFLOW_NAME))); + } +}