All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.definitions.category-specific-definition.xml Maven / Gradle / Ivy

There is a newer version: 2.0.7
Show newest version
<?xml version="1.0"?>

<workflow-definition
	xmlns="urn:liferay.com:liferay-workflow_6.2.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.2.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_2_0.xsd"
>
	<name>Category Specific Approval</name>
	<description>A single approver can approve a workflow content.</description>
	<version>1</version>
	<state>
		<name>created</name>
		<metadata>
			<![CDATA[{"transitions":{"Determine Branch":{"xy":[-40,6]}},"xy":[60,45]}]]>
		</metadata>
		<initial>true</initial>
		<transitions>
			<transition>
				<name>Determine Branch</name>
				<target>determine-branch</target>
				<default>true</default>
			</transition>
		</transitions>
	</state>
	<condition>
		<name>determine-branch</name>
		<metadata>
			<![CDATA[{"xy":[228,32]}]]>
		</metadata>
		<script>
			<![CDATA[
				import com.liferay.asset.kernel.model.AssetCategory;
				import com.liferay.asset.kernel.model.AssetEntry;
				import com.liferay.asset.kernel.model.AssetRenderer;
				import com.liferay.asset.kernel.model.AssetRendererFactory;
				import com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil;
				import com.liferay.portal.kernel.util.GetterUtil;
				import com.liferay.portal.kernel.workflow.WorkflowConstants;
				import com.liferay.portal.kernel.workflow.WorkflowHandler;
				import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil;

				import java.util.List;

				String className = (String)workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_NAME);

				WorkflowHandler workflowHandler = WorkflowHandlerRegistryUtil.getWorkflowHandler(className);

				AssetRendererFactory assetRendererFactory = workflowHandler.getAssetRendererFactory();

				long classPK = GetterUtil.getLong((String)workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));

				AssetRenderer assetRenderer = workflowHandler.getAssetRenderer(classPK);

				AssetEntry assetEntry = assetRendererFactory.getAssetEntry(assetRendererFactory.getClassName(), assetRenderer.getClassPK());

				List<AssetCategory> assetCategories = assetEntry.getCategories();

				returnValue = "Content Review";

				for (AssetCategory assetCategory : assetCategories) {
					String categoryName = assetCategory.getName();

					if (categoryName.equals("legal")) {
						returnValue = "Legal Review";

						return;
					}
				}
			]]>
		</script>
		<script-language>groovy</script-language>
		<transitions>
			<transition>
				<name>Legal Review</name>
				<target>legal-review</target>
				<default>false</default>
			</transition>
			<transition>
				<name>Content Review</name>
				<target>content-review</target>
				<default>false</default>
			</transition>
		</transitions>
	</condition>
	<task>
		<name>update</name>
		<metadata>
			<![CDATA[{"xy":[670,30]}]]>
		</metadata>
		<actions>
			<notification>
				<name>Creator Modification Notification</name>
				<template>Your submission was rejected by a reviewer, please modify and resubmit.</template>
				<template-language>text</template-language>
				<notification-type>email</notification-type>
				<notification-type>user-notification</notification-type>
				<execution-type>onAssignment</execution-type>
			</notification>
		</actions>
		<assignments>
			<user />
		</assignments>
		<transitions>
			<transition>
				<name>resubmit</name>
				<target>determine-branch</target>
				<default>true</default>
			</transition>
		</transitions>
	</task>
	<task>
		<name>content-review</name>
		<metadata>
			<![CDATA[{"xy":[447,119]}]]>
		</metadata>
		<actions>
			<notification>
				<name>Review Notification</name>
				<template>You have a new submission waiting for your review in the workflow.</template>
				<template-language>text</template-language>
				<notification-type>email</notification-type>
				<notification-type>user-notification</notification-type>
				<execution-type>onAssignment</execution-type>
			</notification>
		</actions>
		<assignments>
			<roles>
				<role>
					<role-type>organization</role-type>
					<name>Organization Administrator</name>
				</role>
				<role>
					<role-type>organization</role-type>
					<name>Organization Content Reviewer</name>
				</role>
				<role>
					<role-type>organization</role-type>
					<name>Organization Owner</name>
				</role>
				<role>
					<role-type>regular</role-type>
					<name>Administrator</name>
				</role>
				<role>
					<role-type>regular</role-type>
					<name>Portal Content Reviewer</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Administrator</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Content Reviewer</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Owner</name>
				</role>
			</roles>
		</assignments>
		<task-timers>
			<task-timer>
				<name></name>
				<delay>
					<duration>1</duration>
					<scale>hour</scale>
				</delay>
				<blocking>false</blocking>
				<timer-actions>
					<timer-notification>
						<name></name>
						<template></template>
						<template-language>text</template-language>
						<notification-type>im</notification-type>
					</timer-notification>
				</timer-actions>
			</task-timer>
		</task-timers>
		<transitions>
			<transition>
				<name>approve</name>
				<target>approved</target>
				<default>true</default>
			</transition>
			<transition>
				<name>reject</name>
				<target>update</target>
				<default>false</default>
			</transition>
		</transitions>
	</task>
	<task>
		<name>legal-review</name>
		<metadata>
			<![CDATA[{"xy":[228,280]}]]>
		</metadata>
		<actions>
			<notification>
				<name>Review Notification</name>
				<template>You have a new submission waiting for your review in the workflow.</template>
				<template-language>text</template-language>
				<notification-type>email</notification-type>
				<notification-type>user-notification</notification-type>
				<execution-type>onAssignment</execution-type>
			</notification>
		</actions>
		<assignments>
			<roles>
				<role>
					<role-type>organization</role-type>
					<name>Organization Administrator</name>
				</role>
				<role>
					<role-type>organization</role-type>
					<name>Organization Legal Reviewer</name>
				</role>
				<role>
					<role-type>organization</role-type>
					<name>Organization Owner</name>
				</role>
				<role>
					<role-type>regular</role-type>
					<name>Administrator</name>
				</role>
				<role>
					<role-type>regular</role-type>
					<name>Portal Legal Reviewer</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Administrator</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Legal Reviewer</name>
				</role>
				<role>
					<role-type>site</role-type>
					<name>Site Owner</name>
				</role>
			</roles>
		</assignments>
		<transitions>
			<transition>
				<name>approve</name>
				<target>approved</target>
				<default>true</default>
			</transition>
			<transition>
				<name>reject</name>
				<target>update</target>
				<default>false</default>
			</transition>
		</transitions>
	</task>
	<state>
		<name>approved</name>
		<metadata>
			<![CDATA[
				{"xy":[680,295]}
			]]>
		</metadata>
		<actions>
			<action>
				<name>approve</name>
				<script>
					<![CDATA[
						import com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil;
						import com.liferay.portal.kernel.workflow.WorkflowConstants;

						WorkflowStatusManagerUtil.updateStatus(WorkflowConstants.getLabelStatus("approved"), workflowContext);
					]]>
				</script>
				<script-language>groovy</script-language>
				<execution-type>onEntry</execution-type>
			</action>
		</actions>
	</state>
</workflow-definition>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy