From 31a0d0ecb37d9f2484cf00e877a2c6d165634aa5 Mon Sep 17 00:00:00 2001 From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local> Date: Wed, 25 Sep 2019 11:20:23 +0200 Subject: [PATCH] Workflow management --- .../WorkflowDefinition_entity.aod | 17 ++++++++++++++ .../entityfields/diagram/valueProcess.js | 7 ++++++ .../entityfields/fileupload/onValidation.js | 10 +++++++++ .../recordcontainers/jdito/contentProcess.js | 5 ++++- .../WorkflowInstance_entity.aod | 4 ++++ .../WorkflowDefinition/WorkflowDefinition.aod | 4 ++++ .../WorkflowInstance/WorkflowInstance.aod | 11 ++++++++++ .../WorkflowDefinitionDiagram_view.aod | 18 +++++++++++++++ .../WorkflowDefinitionFilter_view.aod | 1 + .../WorkflowDefinitionMain_view.aod | 10 +++++++++ .../WorkflowDefinitionPreview_view.aod | 1 + .../WorkflowInstanceFilter_view.aod | 22 +++++++++++++++++++ .../WorkflowInstancePreview_view.aod | 10 +++++++++ process/JditoFilter_lib/process.js | 2 +- process/Workflow_lib/process.js | 4 ++++ 15 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js create mode 100644 entity/WorkflowDefinition_entity/entityfields/fileupload/onValidation.js create mode 100644 neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod create mode 100644 neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod create mode 100644 neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod index 0c35d7ee8ef..dfeca41ef02 100644 --- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -18,6 +18,8 @@ <children> <entityActionField> <name>importWorkflow</name> + <isMenuAction v="false" /> + <isObjectAction v="false" /> </entityActionField> </children> </entityActionGroup> @@ -33,6 +35,7 @@ <entityField> <name>FILEUPLOAD</name> <contentType>FILE</contentType> + <onValidation>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/fileupload/onValidation.js</onValidation> </entityField> <entityConsumer> <name>Instances</name> @@ -53,10 +56,21 @@ <name>NAME</name> <title>Name</title> </entityField> + <entityActionField> + <name>startNewInstance</name> + <title>Start workflow</title> + <iconId>VAADIN:PLAY</iconId> + </entityActionField> + <entityField> + <name>DIAGRAM</name> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js</valueProcess> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> <name>jdito</name> + <isFilterable v="true" /> <contentProcess>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <onInsert>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js</onInsert> <recordFieldMappings> @@ -65,9 +79,11 @@ </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>NAME.value</name> + <isFilterable v="true" /> </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>CATEGORY.value</name> + <isFilterable v="true" /> </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>KEY.value</name> @@ -77,6 +93,7 @@ </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>ISACTIVE.value</name> + <isFilterable v="true" /> </jDitoRecordFieldMapping> </recordFieldMappings> </jDitoRecordContainer> diff --git a/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js new file mode 100644 index 00000000000..7d8f58e356d --- /dev/null +++ b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("system.workflow"); + +if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET) + result.string(workflow.getProcessDiagram(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/entityfields/fileupload/onValidation.js b/entity/WorkflowDefinition_entity/entityfields/fileupload/onValidation.js new file mode 100644 index 00000000000..867d24c7332 --- /dev/null +++ b/entity/WorkflowDefinition_entity/entityfields/fileupload/onValidation.js @@ -0,0 +1,10 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); +import("Document_lib"); +import("MimeType_lib"); + +var mimetype = DocumentUtil.getMimeTypeFromUpload(vars.get("$local.value")); + +if (mimetype != MimeTypes.XML()) + result.string("yeeeeeet"); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js index f858d71640f..48ccb38fca8 100644 --- a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js @@ -1,7 +1,8 @@ +import("system.vars"); import("system.result"); import("Workflow_lib"); import("system.workflow"); - +import("JditoFilter_lib"); var workflowDefObj = WorkflowDefinitionUtils.getDeployedDefinitions(); var workflowDefs = []; @@ -18,4 +19,6 @@ for (let i = 0, l = workflowDefObj.length; i < l; i++) ]); } +workflowDefs = JditoFilterUtils.filterRecords(["UID", "NAME", "CATEGORY", "KEY", "VERSION", "ACTIVE"], workflowDefs, vars.get("$local.filter").filter); + result.object(workflowDefs); \ No newline at end of file diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod index 71db007610e..492ca5a5c69 100644 --- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod +++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod @@ -23,6 +23,10 @@ </entityDependency> </dependencies> </entityProvider> + <entityParameter> + <name>WorkflowDefinitionId_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/neonContext/WorkflowDefinition/WorkflowDefinition.aod b/neonContext/WorkflowDefinition/WorkflowDefinition.aod index 1d0fcb58176..7270f1a656f 100644 --- a/neonContext/WorkflowDefinition/WorkflowDefinition.aod +++ b/neonContext/WorkflowDefinition/WorkflowDefinition.aod @@ -25,5 +25,9 @@ <name>c3f4a104-c72f-40c2-a7a3-e2dcb3df35d1</name> <view>WorkflowDefinitionPreview_view</view> </neonViewReference> + <neonViewReference> + <name>92c166cc-ccb3-4ce0-8cb8-315925350fb8</name> + <view>WorkflowDefinitionDiagram_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/WorkflowInstance/WorkflowInstance.aod b/neonContext/WorkflowInstance/WorkflowInstance.aod index 8a865caa694..166a101fd70 100644 --- a/neonContext/WorkflowInstance/WorkflowInstance.aod +++ b/neonContext/WorkflowInstance/WorkflowInstance.aod @@ -2,5 +2,16 @@ <neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> <name>WorkflowInstance</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>WorkflowInstanceFilter_view</filterview> <entity>WorkflowInstance_entity</entity> + <references> + <neonViewReference> + <name>db8314f5-c171-4793-968f-ee32891467f8</name> + <view>WorkflowInstanceFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f80251a2-25e3-41f3-a933-6663e733ed7a</name> + <view>WorkflowInstancePreview_view</view> + </neonViewReference> + </references> </neonContext> diff --git a/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod b/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod new file mode 100644 index 00000000000..b74e1c472c7 --- /dev/null +++ b/neonView/WorkflowDefinitionDiagram_view/WorkflowDefinitionDiagram_view.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowDefinitionDiagram_view</name> + <title>Diagram</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <pictureViewTemplate> + <name>Diagram</name> + <pictureField>DIAGRAM</pictureField> + <entityField>#ENTITY</entityField> + </pictureViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod index 745c817d7ff..5d978a33632 100644 --- a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod +++ b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod @@ -2,6 +2,7 @@ <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> <name>WorkflowDefinitionFilter_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> <layout> <boxLayout> <name>layout</name> diff --git a/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod index 083dda24d5c..3f1788cc60b 100644 --- a/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod +++ b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod @@ -14,5 +14,15 @@ <entityField>#ENTITY</entityField> <view>WorkflowDefinitionPreview_view</view> </neonViewReference> + <neonViewReference> + <name>17dd244c-fe9b-4df6-a6c0-7ebcfea04ec8</name> + <entityField>Instances</entityField> + <view>WorkflowInstanceFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>ffea2e5b-1f53-42ee-b845-9f06e4d23b30</name> + <entityField>#ENTITY</entityField> + <view>WorkflowDefinitionDiagram_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod index 0e301c9834b..98ff813a0dc 100644 --- a/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod +++ b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod @@ -11,6 +11,7 @@ <cardViewTemplate> <name>Card</name> <titleField>NAME</titleField> + <subtitleField>CATEGORY</subtitleField> <entityField>#ENTITY</entityField> </cardViewTemplate> </children> diff --git a/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod new file mode 100644 index 00000000000..c3724e16f21 --- /dev/null +++ b/neonView/WorkflowInstanceFilter_view/WorkflowInstanceFilter_view.aod @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowInstanceFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>c5d2c47a-5b20-49c9-b49c-5aee951ce2db</name> + <entityField>UID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod new file mode 100644 index 00000000000..c786a1ca2ef --- /dev/null +++ b/neonView/WorkflowInstancePreview_view/WorkflowInstancePreview_view.aod @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowInstancePreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + </headerFooterLayout> + </layout> +</neonView> diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js index a5641323c48..8f8b15f3a86 100644 --- a/process/JditoFilter_lib/process.js +++ b/process/JditoFilter_lib/process.js @@ -131,7 +131,7 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter, pCustomC if (!pFilter) return pRecords; - var filter = new JditoFilterHelper(pColumns, pFilter, pCustomCheckFns, pCheckFnThisArg); + var filter = new JditoFilterHelper(pColumns, pFilter, pCustomCheckFns || {}, pCheckFnThisArg); return pRecords.filter(function (row) { diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js index 2d1fcbf93d2..4fa7dc51ec6 100644 --- a/process/Workflow_lib/process.js +++ b/process/Workflow_lib/process.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.workflow"); @@ -14,6 +15,9 @@ WorkflowDefinitionUtils.getDeployedDefinitions = function (pCategory, pActive) var workflowDefs = workflow.getProcessDefinitions(loadConfig); workflowDefs = JSON.parse(workflowDefs); +// logging.log(JSON.stringify(workflowDefs, null, "\t")) +// workflow.startProcessByKey("offerVerification", []) + return workflowDefs; } -- GitLab