From 04417d6cd8aeaedf7cc4ebb5783e59d9fb4c8245 Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Tue, 14 Jul 2020 12:09:44 +0200
Subject: [PATCH] 1059861 Workflow category field

---
 .../Data_alias/basic/2020.1.2/changelog.xml   |  1 +
 .liquibase/Data_alias/changelog.xml           |  1 +
 .../KeywordEntry_entity.aod                   |  6 +++++
 .../WorkflowDefinition_entity.aod             | 23 ++++++++++++++++
 .../recordcontainers/jdito/contentProcess.js  | 10 ++++---
 .../WorkflowDefinitionFilter_view.aod         | 27 +------------------
 process/KeywordRegistry_basic/process.js      |  4 ++-
 7 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/.liquibase/Data_alias/basic/2020.1.2/changelog.xml b/.liquibase/Data_alias/basic/2020.1.2/changelog.xml
index 056553c25f..98f643b714 100644
--- a/.liquibase/Data_alias/basic/2020.1.2/changelog.xml
+++ b/.liquibase/Data_alias/basic/2020.1.2/changelog.xml
@@ -3,4 +3,5 @@
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
     <include file="AlterDocumentTemplatePlaceOfUseDatatype/changelog.xml" relativeToChangelogFile="true"/>
     <include file="AddNullableToDateNew.xml" relativeToChangelogFile="true" />
+    <include file="insert_workflowCategory_keyword.xml" relativeToChangelogFile="true"/>
 </databaseChangeLog>
diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index 50c63b65a6..a8cc53b406 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -13,6 +13,7 @@
     <include relativeToChangelogFile="true" file="basic/2020.0.3/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.1.0/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2020.1.1/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="basic/2020.1.2/changelog.xml"/>
     
     <!--enable this only when you definetly want to overwrite the existing data with demo records:--> 
     <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>-->
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 1d23aa80c1..2d0edd64d5 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -577,6 +577,12 @@
           <fieldName>KeywordVisitRecommendationPriority</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>54410e7f-e5e6-4dd1-8f60-7864ed907aed</name>
+          <entityName>WorkflowDefinition_entity</entityName>
+          <fieldName>CategoryKeyword</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
index e76fbb0c2f..1cd52f7035 100644
--- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
+++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
@@ -35,6 +35,7 @@
           <name>openModeler</name>
           <title>Open modeler</title>
           <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
           <iconId>VAADIN:EXTERNAL_LINK</iconId>
           <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openmodeler/stateProcess.js</stateProcess>
         </entityActionField>
@@ -42,6 +43,7 @@
           <name>createModel</name>
           <title>Create model</title>
           <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js</onActionProcess>
+          <isObjectAction v="false" />
           <iconId>NEON:PLUS</iconId>
         </entityActionField>
       </children>
@@ -49,11 +51,14 @@
     <entityField>
       <name>CATEGORY</name>
       <title>Category</title>
+      <consumer>CategoryKeyword</consumer>
+      <groupable v="true" />
     </entityField>
     <entityField>
       <name>ISACTIVE</name>
       <title>Active</title>
       <contentType>BOOLEAN</contentType>
+      <groupable v="true" />
       <dropDownProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/isactive/dropDownProcess.js</dropDownProcess>
       <stateProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/isactive/stateProcess.js</stateProcess>
     </entityField>
@@ -214,6 +219,20 @@
       <iconId>VAADIN:EDIT</iconId>
       <tooltip>Edit workflow</tooltip>
     </entityActionField>
+    <entityConsumer>
+      <name>CategoryKeyword</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/categorykeyword/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
@@ -224,6 +243,7 @@
       <contentProcess>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <onInsert>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js</onInsert>
       <onUpdate>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/onUpdate.js</onUpdate>
+      <onDelete>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/onDelete.js</onDelete>
       <recordFieldMappings>
         <jDitoRecordFieldMapping>
           <name>UID.value</name>
@@ -238,6 +258,9 @@
           <isFilterable v="true" />
           <isLookupFilter v="true" />
         </jDitoRecordFieldMapping>
+        <jDitoRecordFieldMapping>
+          <name>CATEGORY.displayValue</name>
+        </jDitoRecordFieldMapping>
         <jDitoRecordFieldMapping>
           <name>KEY.value</name>
           <isFilterable v="true" />
diff --git a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js
index aff0261cf5..bec4b9a0b8 100644
--- a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js
@@ -5,6 +5,7 @@ import("system.result");
 import("Workflow_lib");
 import("system.workflow");
 import("JditoFilter_lib");
+import("KeywordData_lib");
 
 //immediately invoked function is used so that a return statement can be utilized to end the function at any point
 result.object((function ()
@@ -16,7 +17,9 @@ result.object((function ()
     var excludeVersion = vars.get("$param.CurrentVersion_param");
     var context = vars.get("$param.Context_param");
     var idvalues = vars.get("$local.idvalues");
-
+    
+    var categoryMap = KeywordData.getKeyIdMap($KeywordRegistry.workflowCategory());
+    
     var workflowDefs;
 
     if (idvalues)
@@ -48,6 +51,7 @@ result.object((function ()
             def.id,
             def.name,
             def.category,
+            categoryMap[def.category] || "",
             def.key,
             def.version,
             def.active,
@@ -73,14 +77,14 @@ result.object((function ()
     {
         filterFn = function (currDef)
         {
-            return newestVersions[currDef[3]] == currDef[4] && (possibleKeysMap ? possibleKeysMap[currDef[3]] : true);
+            return newestVersions[currDef[4]] == currDef[5] && (possibleKeysMap ? possibleKeysMap[currDef[4]] : true);
         };
     }
     else
     {
         filterFn = function (currDef)
         {
-            return excludeVersion != currDef[4];
+            return excludeVersion != currDef[5];
         };
     }
 
diff --git a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
index a4e33a131b..41ffef9629 100644
--- a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
+++ b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod
@@ -9,32 +9,6 @@
     </groupLayout>
   </layout>
   <children>
-    <tableViewTemplate>
-      <name>Table</name>
-      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
-      <entityField>#ENTITY</entityField>
-      <linkedColumns>
-        <element>NAME</element>
-      </linkedColumns>
-      <columns>
-        <neonTableColumn>
-          <name>6a40b78d-422e-4b3f-9d94-c330cf51996d</name>
-          <entityField>NAME</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>5d90aabb-74a9-40f2-bb57-6bf9e5302ed3</name>
-          <entityField>CATEGORY</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>faf08eb7-7076-4872-975d-c38a399a1b98</name>
-          <entityField>VERSION</entityField>
-        </neonTableColumn>
-        <neonTableColumn>
-          <name>1e1ed75f-a1de-4abb-b81e-6033de520f32</name>
-          <entityField>ISACTIVE</entityField>
-        </neonTableColumn>
-      </columns>
-    </tableViewTemplate>
     <tilesViewTemplate>
       <name>Tiles</name>
       <iconField>DIAGRAM</iconField>
@@ -42,6 +16,7 @@
       <subtitleField>KEY</subtitleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <infoTopField>VERSION_TITLE</infoTopField>
+      <infoBottomField>CATEGORY</infoBottomField>
       <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
       <isCreatable v="true" />
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index b533491816..2ae7c40b6e 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -284,4 +284,6 @@ $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated = function(){return $Ke
 
 $KeywordRegistry.visitRecommendationPrioSource = function(){return $KeywordRegistry._autoPad("VisitRecommendationPrioSource");};
 $KeywordRegistry.visitRecommendationPrioSource$visitFrequency = function(){return $KeywordRegistry._autoPad("VISITFREQUENCY");};
-$KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");};
\ No newline at end of file
+$KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");};
+
+$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";};
\ No newline at end of file
-- 
GitLab