From 240ba1f85c851122cd7934a3b1de32bdb105648c Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Tue, 28 Jul 2020 15:05:34 +0200
Subject: [PATCH] Filter presets moved to initFilterProcess

---
 .../AnyContact_entity/AnyContact_entity.aod   |  2 +-
 entity/AnyContact_entity/initFilterProcess.js | 19 ++++++++++++
 entity/AnyContact_entity/onInit.js            | 23 --------------
 entity/Contact_entity/Contact_entity.aod      |  2 +-
 entity/Contact_entity/initFilterProcess.js    | 19 ++++++++++++
 entity/Contact_entity/onInit.js               | 23 --------------
 .../Organisation_entity.aod                   |  3 +-
 entity/Organisation_entity/afterUiInit.js     |  7 +++++
 .../Organisation_entity/initFilterProcess.js  | 19 ++++++++++++
 entity/Organisation_entity/onInit.js          | 30 ------------------
 entity/Person_entity/Person_entity.aod        |  3 +-
 entity/Person_entity/afterUiInit.js           |  7 +++++
 entity/Person_entity/initFilterProcess.js     | 19 ++++++++++++
 entity/Person_entity/onInit.js                | 30 ------------------
 entity/Task_entity/Task_entity.aod            |  3 +-
 entity/Task_entity/afterUiInit.js             |  6 ++++
 entity/Task_entity/initFilterProcess.js       | 19 ++++++++++++
 entity/Task_entity/onInit.js                  | 31 -------------------
 .../WorkflowDefinition_entity.aod             |  1 -
 entity/WorkflowDefinition_entity/onInit.js    | 20 ------------
 .../WorkflowInstance_entity.aod               |  1 +
 .../initFilterProcess.js                      | 17 ++++++++++
 22 files changed, 141 insertions(+), 163 deletions(-)
 create mode 100644 entity/AnyContact_entity/initFilterProcess.js
 delete mode 100644 entity/AnyContact_entity/onInit.js
 create mode 100644 entity/Contact_entity/initFilterProcess.js
 delete mode 100644 entity/Contact_entity/onInit.js
 create mode 100644 entity/Organisation_entity/afterUiInit.js
 create mode 100644 entity/Organisation_entity/initFilterProcess.js
 delete mode 100644 entity/Organisation_entity/onInit.js
 create mode 100644 entity/Person_entity/afterUiInit.js
 create mode 100644 entity/Person_entity/initFilterProcess.js
 delete mode 100644 entity/Person_entity/onInit.js
 create mode 100644 entity/Task_entity/afterUiInit.js
 create mode 100644 entity/Task_entity/initFilterProcess.js
 delete mode 100644 entity/Task_entity/onInit.js
 delete mode 100644 entity/WorkflowDefinition_entity/onInit.js
 create mode 100644 entity/WorkflowInstance_entity/initFilterProcess.js

diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod
index b9e852b3b2a..c9855622f5a 100644
--- a/entity/AnyContact_entity/AnyContact_entity.aod
+++ b/entity/AnyContact_entity/AnyContact_entity.aod
@@ -4,7 +4,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/AnyContact_entity/documentation.adoc</documentation>
   <contentTitleProcess>%aditoprj%/entity/AnyContact_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/AnyContact_entity/onInit.js</onInit>
+  <initFilterProcess>%aditoprj%/entity/AnyContact_entity/initFilterProcess.js</initFilterProcess>
   <imageProcess>%aditoprj%/entity/AnyContact_entity/imageProcess.js</imageProcess>
   <recordContainer>db</recordContainer>
   <entityFields>
diff --git a/entity/AnyContact_entity/initFilterProcess.js b/entity/AnyContact_entity/initFilterProcess.js
new file mode 100644
index 00000000000..695577262bd
--- /dev/null
+++ b/entity/AnyContact_entity/initFilterProcess.js
@@ -0,0 +1,19 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var statusInactive = $KeywordRegistry.contactStatus$inactive();
+var filter = {
+    type: "group",
+    operator: "AND",
+    childs: [{
+        type: "row",
+        name: "STATUS",
+        operator: "NOT_EQUAL",
+        contenttype: "TEXT",
+        key: statusInactive,
+        value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive)
+    }]
+};
+
+result.string(JSON.stringify(filter));
\ No newline at end of file
diff --git a/entity/AnyContact_entity/onInit.js b/entity/AnyContact_entity/onInit.js
deleted file mode 100644
index a75a8d405e2..00000000000
--- a/entity/AnyContact_entity/onInit.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import("system.neon");
-import("Keyword_lib");
-import("system.vars");
-import("KeywordRegistry_basic");
-
-var statusFilterElement = {
-        "type":"row",
-        "name":"STATUS",
-        "operator":"NOT_EQUAL",
-        "key":$KeywordRegistry.contactStatus$inactive(),
-        "contenttype": "TEXT"
-};
-    
-statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key);
-    
-var filter = {
-        "type":"group",
-        "operator":"AND",
-        "childs": [statusFilterElement]
-};
-    
-filter = JSON.stringify(filter);
-neon.setFilter("#ENTITY", filter);
\ No newline at end of file
diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod
index 82c35b3c618..ad05310a9dd 100644
--- a/entity/Contact_entity/Contact_entity.aod
+++ b/entity/Contact_entity/Contact_entity.aod
@@ -8,8 +8,8 @@
   <grantUpdateProcess>%aditoprj%/entity/Contact_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/Contact_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Contact_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/Contact_entity/onInit.js</onInit>
   <onValidation>%aditoprj%/entity/Contact_entity/onValidation.js</onValidation>
+  <initFilterProcess>%aditoprj%/entity/Contact_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:USERS</iconId>
   <titlePlural>Contacts</titlePlural>
   <recordContainer>db</recordContainer>
diff --git a/entity/Contact_entity/initFilterProcess.js b/entity/Contact_entity/initFilterProcess.js
new file mode 100644
index 00000000000..695577262bd
--- /dev/null
+++ b/entity/Contact_entity/initFilterProcess.js
@@ -0,0 +1,19 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var statusInactive = $KeywordRegistry.contactStatus$inactive();
+var filter = {
+    type: "group",
+    operator: "AND",
+    childs: [{
+        type: "row",
+        name: "STATUS",
+        operator: "NOT_EQUAL",
+        contenttype: "TEXT",
+        key: statusInactive,
+        value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive)
+    }]
+};
+
+result.string(JSON.stringify(filter));
\ No newline at end of file
diff --git a/entity/Contact_entity/onInit.js b/entity/Contact_entity/onInit.js
deleted file mode 100644
index ad4324c7682..00000000000
--- a/entity/Contact_entity/onInit.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import("system.neon");
-import("Keyword_lib");
-import("system.vars");
-import("KeywordRegistry_basic");
-
-var statusFilterElement = {
-        "type":"row",
-        "name":"STATUS",
-        "operator":"NOT_EQUAL",
-        "key":$KeywordRegistry.contactStatus$inactive(),
-        "contenttype": vars.get("$property.STATUS.contentType")
-};
-    
-statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key);
-    
-var filter = {
-        "type":"group",
-        "operator":"AND",
-        "childs": [statusFilterElement]
-};
-    
-filter = JSON.stringify(filter);
-neon.setFilter("#ENTITY", filter);
\ No newline at end of file
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 26fe1fdb3d8..cbd7cb44ef5 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -7,8 +7,9 @@
   <title>Company</title>
   <grantDeleteProcess>%aditoprj%/entity/Organisation_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Organisation_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/Organisation_entity/onInit.js</onInit>
+  <afterUiInit>%aditoprj%/entity/Organisation_entity/afterUiInit.js</afterUiInit>
   <afterOperatingState>%aditoprj%/entity/Organisation_entity/afterOperatingState.js</afterOperatingState>
+  <initFilterProcess>%aditoprj%/entity/Organisation_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:BUILDING</iconId>
   <imageProcess>%aditoprj%/entity/Organisation_entity/imageProcess.js</imageProcess>
   <titlePlural>Companies</titlePlural>
diff --git a/entity/Organisation_entity/afterUiInit.js b/entity/Organisation_entity/afterUiInit.js
new file mode 100644
index 00000000000..d529418d07b
--- /dev/null
+++ b/entity/Organisation_entity/afterUiInit.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+import("Attribute_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
\ No newline at end of file
diff --git a/entity/Organisation_entity/initFilterProcess.js b/entity/Organisation_entity/initFilterProcess.js
new file mode 100644
index 00000000000..26ce7fa02bb
--- /dev/null
+++ b/entity/Organisation_entity/initFilterProcess.js
@@ -0,0 +1,19 @@
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("system.result");
+
+var statusInactive = $KeywordRegistry.contactStatus$inactive();
+var filter = {
+    type: "group",
+    operator: "AND",
+    childs: [{
+        type: "row",
+        name: "STATUS",
+        operator: "NOT_EQUAL",
+        contenttype: "TEXT",
+        key: statusInactive,
+        value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive)
+    }]
+};
+    
+result.string(JSON.stringify(filter));
\ No newline at end of file
diff --git a/entity/Organisation_entity/onInit.js b/entity/Organisation_entity/onInit.js
deleted file mode 100644
index b9717583554..00000000000
--- a/entity/Organisation_entity/onInit.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-import("system.neon");
-import("system.vars");
-import("Context_lib");
-import("Attribute_lib");
-
-var statusFilterElement = {
-        "type":"row",
-        "name":"STATUS",
-        "operator":"NOT_EQUAL",
-        "key":$KeywordRegistry.contactStatus$inactive(),
-        "contenttype": "TEXT"
-};
-    
-statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key);
-    
-var filter = {
-        "type":"group",
-        "operator":"AND",
-        "childs": [statusFilterElement]
-};
-    
-filter = JSON.stringify(filter);
-neon.setFilter("#ENTITY", filter);
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
-}
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index cbabea32766..907d1408a4c 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -10,9 +10,10 @@
   </siblings>
   <grantDeleteProcess>%aditoprj%/entity/Person_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/Person_entity/onInit.js</onInit>
+  <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit>
   <onValidation>%aditoprj%/entity/Person_entity/onValidation.js</onValidation>
   <afterOperatingState>%aditoprj%/entity/Person_entity/afterOperatingState.js</afterOperatingState>
+  <initFilterProcess>%aditoprj%/entity/Person_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:USERS</iconId>
   <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess>
   <usePermissions v="false" />
diff --git a/entity/Person_entity/afterUiInit.js b/entity/Person_entity/afterUiInit.js
new file mode 100644
index 00000000000..d529418d07b
--- /dev/null
+++ b/entity/Person_entity/afterUiInit.js
@@ -0,0 +1,7 @@
+import("system.neon");
+import("system.vars");
+import("Context_lib");
+import("Attribute_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
\ No newline at end of file
diff --git a/entity/Person_entity/initFilterProcess.js b/entity/Person_entity/initFilterProcess.js
new file mode 100644
index 00000000000..26ce7fa02bb
--- /dev/null
+++ b/entity/Person_entity/initFilterProcess.js
@@ -0,0 +1,19 @@
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+import("system.result");
+
+var statusInactive = $KeywordRegistry.contactStatus$inactive();
+var filter = {
+    type: "group",
+    operator: "AND",
+    childs: [{
+        type: "row",
+        name: "STATUS",
+        operator: "NOT_EQUAL",
+        contenttype: "TEXT",
+        key: statusInactive,
+        value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive)
+    }]
+};
+    
+result.string(JSON.stringify(filter));
\ No newline at end of file
diff --git a/entity/Person_entity/onInit.js b/entity/Person_entity/onInit.js
deleted file mode 100644
index 1958e327f28..00000000000
--- a/entity/Person_entity/onInit.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-import("system.neon");
-import("system.vars");
-import("Context_lib");
-import("Attribute_lib");
-
-var statusFilterElement = {
-        "type":"row",
-        "name":"STATUS",
-        "operator":"NOT_EQUAL",
-        "key":$KeywordRegistry.contactStatus$inactive(),
-        "contenttype": "TEXT"
-};
-    
-statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key);
-    
-var filter = {
-        "type":"group",
-        "operator":"AND",
-        "childs": [statusFilterElement]
-};
-    
-filter = JSON.stringify(filter);
-neon.setFilter("#ENTITY", filter);   
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
-}
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 14cdb187858..64f381e93f9 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -6,8 +6,9 @@
   <title>Task</title>
   <grantDeleteProcess>%aditoprj%/entity/Task_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/Task_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/Task_entity/onInit.js</onInit>
+  <afterUiInit>%aditoprj%/entity/Task_entity/afterUiInit.js</afterUiInit>
   <onValidation>%aditoprj%/entity/Task_entity/onValidation.js</onValidation>
+  <initFilterProcess>%aditoprj%/entity/Task_entity/initFilterProcess.js</initFilterProcess>
   <iconId>VAADIN:TASKS</iconId>
   <iconIdProcess>%aditoprj%/entity/Task_entity/iconIdProcess.js</iconIdProcess>
   <titlePlural>Tasks</titlePlural>
diff --git a/entity/Task_entity/afterUiInit.js b/entity/Task_entity/afterUiInit.js
new file mode 100644
index 00000000000..2f108ba4469
--- /dev/null
+++ b/entity/Task_entity/afterUiInit.js
@@ -0,0 +1,6 @@
+import("system.neon");
+import("system.vars");
+import("ActivityTask_lib");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    TaskUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID");
\ No newline at end of file
diff --git a/entity/Task_entity/initFilterProcess.js b/entity/Task_entity/initFilterProcess.js
new file mode 100644
index 00000000000..39b6e0b2e29
--- /dev/null
+++ b/entity/Task_entity/initFilterProcess.js
@@ -0,0 +1,19 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var statusEnded = $KeywordRegistry.taskStatus$ended();
+var filter = {
+    type: "group",
+    operator: "AND",
+    childs: [{
+        type: "row",
+        name: "STATUS",
+        operator: "NOT_EQUAL",
+        contenttype: "TEXT",
+        key: statusEnded,
+        value: KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), statusEnded)
+    }]
+};
+
+result.string(JSON.stringify(filter));
\ No newline at end of file
diff --git a/entity/Task_entity/onInit.js b/entity/Task_entity/onInit.js
deleted file mode 100644
index 0a610862cbb..00000000000
--- a/entity/Task_entity/onInit.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import("system.neon");
-import("system.vars");
-import("system.neon");
-import("ActivityTask_lib");
-import("Keyword_lib");
-import("KeywordRegistry_basic");
-
-var recordState = vars.get("$sys.recordstate");
-if(recordState == neon.OPERATINGSTATE_NEW)
-{
-    TaskUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID");
-}
-else if (recordState != neon.OPERATINGSTATE_SEARCH)
-{
-    var statusFilterElement = {
-        "type":"row",
-        "name":"STATUS",
-        "operator":"NOT_EQUAL",
-        "key":$KeywordRegistry.taskStatus$ended(),
-        "contenttype": "TEXT"
-    };
-    statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), statusFilterElement.key);
-    
-    var filter = {
-        "type":"group",
-        "operator":"AND",
-        "childs": [statusFilterElement]
-    };
-    filter = JSON.stringify(filter);
-    neon.setFilter("#ENTITY", filter);
-}
\ No newline at end of file
diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
index 1cd52f7035f..db719f1fd0c 100644
--- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
+++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod
@@ -7,7 +7,6 @@
   <grantCreateProcess>%aditoprj%/entity/WorkflowDefinition_entity/grantCreateProcess.js</grantCreateProcess>
   <grantDelete v="false" />
   <contentTitleProcess>%aditoprj%/entity/WorkflowDefinition_entity/contentTitleProcess.js</contentTitleProcess>
-  <onInit>%aditoprj%/entity/WorkflowDefinition_entity/onInit.js</onInit>
   <iconId>VAADIN:DROP</iconId>
   <titlePlural>Workflow definitions</titlePlural>
   <recordContainer>jdito</recordContainer>
diff --git a/entity/WorkflowDefinition_entity/onInit.js b/entity/WorkflowDefinition_entity/onInit.js
deleted file mode 100644
index 7199fd35b05..00000000000
--- a/entity/WorkflowDefinition_entity/onInit.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import("system.neon");
-import("system.vars");
-import("system.translate");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET)
-{
-    var filterOnlyUnfinished = {
-        type : "group",
-        operator : "AND",
-        childs : [{
-            type : "row",
-            name : "ISFINISHED",
-            operator : "EQUAL",
-            value : translate.text("No"),
-            key : "false",
-            contenttype : "BOOLEAN"
-        }]
-    };
-    neon.setFilter("Instances", JSON.stringify(filterOnlyUnfinished));
-}
\ No newline at end of file
diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
index 37c5a337ba3..765793b9f37 100644
--- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
+++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod
@@ -5,6 +5,7 @@
   <documentation>%aditoprj%/entity/WorkflowInstance_entity/documentation.adoc</documentation>
   <title>Workflow instance</title>
   <contentTitleProcess>%aditoprj%/entity/WorkflowInstance_entity/contentTitleProcess.js</contentTitleProcess>
+  <initFilterProcess>%aditoprj%/entity/WorkflowInstance_entity/initFilterProcess.js</initFilterProcess>
   <titlePlural>Workflow instances</titlePlural>
   <recordContainer>jdito</recordContainer>
   <entityFields>
diff --git a/entity/WorkflowInstance_entity/initFilterProcess.js b/entity/WorkflowInstance_entity/initFilterProcess.js
new file mode 100644
index 00000000000..80a38560e27
--- /dev/null
+++ b/entity/WorkflowInstance_entity/initFilterProcess.js
@@ -0,0 +1,17 @@
+import("system.result");
+import("system.translate");
+
+var filterOnlyUnfinished = {
+    type : "group",
+    operator : "AND",
+    childs : [{
+        type : "row",
+        name : "ISFINISHED",
+        operator : "EQUAL",
+        value : translate.text("No"),
+        key : "false",
+        contenttype : "BOOLEAN"
+    }]
+};
+
+result.string(JSON.stringify(filterOnlyUnfinished));
\ No newline at end of file
-- 
GitLab