Skip to content
Snippets Groups Projects
Commit 69be15b6 authored by S.Listl's avatar S.Listl Committed by Sebastian Listl
Browse files

WorkflowTask and WorkflowInstance improved

(cherry picked from commit 60a6486f)
parent b8305e9e
No related branches found
No related tags found
No related merge requests found
Showing
with 204 additions and 11 deletions
......@@ -315,10 +315,21 @@
</entityField>
<entityProvider>
<name>EmployeesByUserId</name>
<dependencies>
<entityDependency>
<name>1d000ca2-f27e-47d2-95e2-ee14771c4ced</name>
<entityName>WorkflowTask_entity</entityName>
<fieldName>Employees</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityProvider>
<name>EmployeesByShortUserId</name>
<lookupIdfield>SHORT_UID</lookupIdfield>
<dependencies>
<entityDependency>
<name>2b6d7d96-365d-44a0-a457-4d7a08ae18a5</name>
<name>8b02831c-e831-4314-8ea3-d913c3394db2</name>
<entityName>ObjectProxy_entity</entityName>
<fieldName>Employees</fieldName>
<isConsumer v="false" />
......
......@@ -144,7 +144,7 @@
<dependency>
<name>dependency</name>
<entityName>Employee_entity</entityName>
<fieldName>EmployeesByUserId</fieldName>
<fieldName>EmployeesByShortUserId</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
......
......@@ -55,6 +55,7 @@
</entityField>
<entityConsumer>
<name>Instances</name>
<selectionMode>MULTI</selectionMode>
<dependency>
<name>dependency</name>
<entityName>WorkflowInstance_entity</entityName>
......
......@@ -3,7 +3,7 @@
<name>WorkflowInstance_entity</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<title>Workflow instance</title>
<grantUpdate v="false" />
<contentTitleProcess>%aditoprj%/entity/WorkflowInstance_entity/contentTitleProcess.js</contentTitleProcess>
<titlePlural>Workflow instances</titlePlural>
<recordContainer>jdito</recordContainer>
<entityFields>
......@@ -34,6 +34,7 @@
<title>Key</title>
<consumer>WorkflowDefinitions</consumer>
<mandatory v="true" />
<stateProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/key/stateProcess.js</stateProcess>
</entityField>
<entityField>
<name>ISACTIVE</name>
......@@ -44,11 +45,13 @@
<entityField>
<name>PROCESSDEFINITION_ID</name>
<title>Workflow definition</title>
<state>READONLY</state>
</entityField>
<entityField>
<name>START_TIME</name>
<title>Start date</title>
<contentType>DATE</contentType>
<state>READONLY</state>
</entityField>
<entityParameter>
<name>WorkflowDefinitionKey_param</name>
......@@ -66,6 +69,7 @@
<entityField>
<name>PROCESSDEFINITION_VERSION</name>
<title>Version</title>
<state>READONLY</state>
</entityField>
<entityField>
<name>PROCESSVARIABLES</name>
......@@ -75,7 +79,14 @@
<dependency>
<name>dependency</name>
<entityName>WorkflowTask_entity</entityName>
<fieldName>InstanceTasks</fieldName>
</dependency>
<children>
<entityParameter>
<name>WorkflowInstanceId_param</name>
<valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/tasks/children/workflowinstanceid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>WorkflowDefinitions</name>
......@@ -97,7 +108,7 @@
</entityParameter>
<entityField>
<name>NAME</name>
<title>Process</title>
<title>Name</title>
</entityField>
<entityField>
<name>STARTUSER_ID</name>
......@@ -110,6 +121,32 @@
<name>TargetIdFilter_param</name>
<expose v="true" />
</entityParameter>
<entityActionField>
<name>toggleActive</name>
<title>${WORKFLOW_SUSPEND}</title>
<onActionProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PAUSE</iconId>
<iconIdProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/iconIdProcess.js</iconIdProcess>
<titleProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/toggleactive/titleProcess.js</titleProcess>
</entityActionField>
<entityConsumer>
<name>FinishedTasks</name>
<dependency>
<name>dependency</name>
<entityName>WorkflowTask_entity</entityName>
<fieldName>FinishedInstanceTasks</fieldName>
</dependency>
<children>
<entityParameter>
<name>WorkflowInstanceId_param</name>
<valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/workflowinstanceid_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>IncludeServiceTasks_param</name>
<valueProcess>%aditoprj%/entity/WorkflowInstance_entity/entityfields/finishedtasks/children/includeservicetasks_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......@@ -118,11 +155,15 @@
<isSortable v="true" />
<contentProcess>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<onInsert>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onInsert.js</onInsert>
<onUpdate>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
<onDelete>%aditoprj%/entity/WorkflowInstance_entity/recordcontainers/jdito/onDelete.js</onDelete>
<recordFieldMappings>
<jDitoRecordFieldMapping>
<name>UID.value</name>
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>NAME.value</name>
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>KEY.value</name>
</jDitoRecordFieldMapping>
......
import("system.vars");
import("system.result");
result.string(vars.get("$field.NAME"));
\ No newline at end of file
import("system.result");
result.string(true);
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.neon");
import("system.vars");
import("system.result");
result.string(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW
? neon.COMPONENTSTATE_EDITABLE
: neon.COMPONENTSTATE_READONLY
);
import("system.vars");
import("system.result");
result.string(vars.get("$field.UID"));
\ No newline at end of file
import("system.vars");
import("system.result");
if (vars.get("$field.ISACTIVE") != "true")
result.string("VAADIN:PLAY");
\ No newline at end of file
import("system.logging");
import("system.neon");
import("system.workflow");
import("system.vars");
logging.log(workflow.getFinishedActivities(vars.get("$field.UID")))
//workflow.setProcessInstanceActive(vars.get("$field.UID"), vars.get("$field.ISACTIVE") != "true");
//neon.refreshAll();
\ No newline at end of file
import("system.translate");
import("system.vars");
import("system.result");
if (vars.get("$field.ISACTIVE") != "true")
result.string(translate.text("Resume"));
\ No newline at end of file
......@@ -49,6 +49,7 @@ wfInstances = wfInstances.map(function (instance)
{
return [
instance.id,
instance.name || instance.processDefinitionName,
instance.key,
instance.active,
instance.processDefinitionId,
......
......@@ -8,7 +8,9 @@ import("system.process");
var variables = JSON.parse(vars.getString("$param.ProcessVariables_param"));
var targetIdFilter = vars.get("$param.TargetIdFilter_param") ? JSON.parse(vars.getString("$param.TargetIdFilter_param")) : null;
var processKey = vars.get("$local.rowdata")["KEY.value"];
var rowdata = vars.get("$local.rowdata");
var processKey = rowdata["KEY.value"];
var instanceName = rowdata["NAME.value"];
if (Array.isArray(variables.targetId) && variables.targetId.length > 0)
_startForIds(variables.targetId.slice(), variables);
......@@ -46,7 +48,9 @@ function _startForIds (pTargetIds, pVariables)
pTargetIds.forEach(function (id)
{
pVariables.targetId = id;
workflow.startProcessByKey(processKey, pVariables);
var instanceId = workflow.startProcessByKey(processKey, pVariables);
if (instanceName)
workflow.setProcessInstanceName(instanceId, instanceName);
});
}
import("system.vars");
import("system.workflow");
var processInstanceId = vars.get("$local.uid");
var rowdata = vars.get("$local.rowdata");
vars.get("$local.changed").forEach(function (field)
{
var value = rowdata[field];
switch (field)
{
case "NAME.value":
if (value)
workflow.setProcessInstanceName(processInstanceId, value);
break;
case "ISACTIVE.value":
workflow.setProcessInstanceActive(processInstanceId, value == "true");
break;
}
});
\ No newline at end of file
......@@ -6,6 +6,7 @@
<grantCreate v="false" />
<grantUpdateProcess>%aditoprj%/entity/WorkflowTask_entity/grantUpdateProcess.js</grantUpdateProcess>
<grantDelete v="false" />
<imageProcess>%aditoprj%/entity/WorkflowTask_entity/imageProcess.js</imageProcess>
<titlePlural>Tasks</titlePlural>
<recordContainer>jdito</recordContainer>
<entityFields>
......@@ -39,6 +40,8 @@
</entityField>
<entityField>
<name>PROCESSINSTANCE_ID</name>
<linkedContext>WorkflowInstance</linkedContext>
<displayValueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/processinstance_id/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>CREATE_TIME</name>
......@@ -69,9 +72,28 @@
</entityField>
<entityProvider>
<name>InstanceTasks</name>
<dependencies>
<entityDependency>
<name>5913327f-1bb4-48b8-846e-639274290cee</name>
<entityName>WorkflowInstance_entity</entityName>
<fieldName>Tasks</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
<children>
<entityParameter>
<name>OnlyFinishedTasks_param</name>
<expose v="false" />
</entityParameter>
<entityParameter>
<name>IncludeServiceTasks_param</name>
<expose v="false" />
</entityParameter>
</children>
</entityProvider>
<entityParameter>
<name>WorkflowInstanceId_param</name>
<expose v="true" />
</entityParameter>
<entityField>
<name>DESCRIPTION</name>
......@@ -86,6 +108,7 @@
<entityField>
<name>ASSIGNEE</name>
<title>Responsible</title>
<consumer>Employees</consumer>
</entityField>
<entityField>
<name>DUEDATE</name>
......@@ -133,6 +156,45 @@
<name>PRIORITY</name>
<title>Priority</title>
</entityField>
<entityField>
<name>ICON</name>
<colorProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/icon/colorProcess.js</colorProcess>
<contentType>IMAGE</contentType>
</entityField>
<entityConsumer>
<name>Employees</name>
<dependency>
<name>dependency</name>
<entityName>Employee_entity</entityName>
<fieldName>EmployeesByUserId</fieldName>
</dependency>
</entityConsumer>
<entityParameter>
<name>OnlyFinishedTasks_param</name>
<expose v="true" />
</entityParameter>
<entityProvider>
<name>FinishedInstanceTasks</name>
<dependencies>
<entityDependency>
<name>d5d39281-0183-42fa-960a-01347cddc85a</name>
<entityName>WorkflowInstance_entity</entityName>
<fieldName>FinishedTasks</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
<children>
<entityParameter>
<name>OnlyFinishedTasks_param</name>
<valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/finishedinstancetasks/children/onlyfinishedtasks_param/valueProcess.js</valueProcess>
<expose v="false" />
</entityParameter>
</children>
</entityProvider>
<entityParameter>
<name>IncludeServiceTasks_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......@@ -205,6 +267,9 @@
<jDitoRecordFieldMapping>
<name>PRIORITY.value</name>
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>ICON.value</name>
</jDitoRecordFieldMapping>
</recordFieldMappings>
</jDitoRecordContainer>
</recordContainers>
......
......@@ -3,7 +3,7 @@ import("Employee_lib");
import("system.vars");
import("system.result");
result.string(vars.get("$field.ASSIGNEE") == EmployeeUtils.getCurrentUserId()
result.string(vars.get("$field.ASSIGNEE") || vars.get("$field.ISACTIVE") != "true"
? neon.COMPONENTSTATE_DISABLED
: neon.COMPONENTSTATE_EDITABLE
);
\ No newline at end of file
......@@ -8,10 +8,9 @@ var params = {
"TaskTitle_param" : vars.get("$field.NAME")
};
if (formDefinition)
neon.openContext("WorkflowTask", null, uids, neon.OPERATINGSTATE_EDIT, params);
neon.openContext("WorkflowTask", "WorkflowTaskForm_view", uids, neon.OPERATINGSTATE_EDIT, params);
else
{
workflow.completeTask(vars.get("$field.UID"), {});
//if you try to open the task now, it will display "Task done"
neon.openContext("WorkflowTask", "WorkflowTaskPreview_view", uids, neon.OPERATINGSTATE_VIEW, params);
neon.refreshAll();
}
\ No newline at end of file
......@@ -2,4 +2,10 @@ import("system.neon");
import("system.vars");
import("system.result");
result.string(vars.get("$field.PROCESSINSTANCE_ID") ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
var state = neon.COMPONENTSTATE_EDITABLE;
if (vars.get("$field.ISACTIVE") != "true")
state = neon.COMPONENTSTATE_DISABLED;
else if (!vars.get("$field.PROCESSINSTANCE_ID"))
state = neon.COMPONENTSTATE_INVISIBLE;
result.string(state);
\ No newline at end of file
import("system.result");
result.string(true);
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment