From 348656df5d2503a93c92012f8a702d30e2d89dda Mon Sep 17 00:00:00 2001
From: Simon Leipold <s.leipold@adito.de>
Date: Tue, 20 Aug 2019 14:35:41 +0200
Subject: [PATCH] Permissions - bugs caused by neon.refresh fixed + refactoring

---
 entity/PermissionAction_entity/onValidation.js              | 2 +-
 .../entityfields/entity/onValueChange.js                    | 2 +-
 .../entityfields/permissionactions/onValidation.js          | 2 +-
 .../recordcontainers/jdito/contentProcess.js                | 6 +++---
 .../recordcontainers/jdito/onDelete.js                      | 1 -
 .../recordcontainers/jdito/onUpdate.js                      | 1 -
 .../PermissionDetailPreview_view.aod                        | 4 ++--
 7 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/entity/PermissionAction_entity/onValidation.js b/entity/PermissionAction_entity/onValidation.js
index be4d539d44..4561e8413e 100644
--- a/entity/PermissionAction_entity/onValidation.js
+++ b/entity/PermissionAction_entity/onValidation.js
@@ -5,5 +5,5 @@ import("system.result");
 var actionTitle = vars.get("$field.ACTION");
 
 if (actionTitle == "null" || actionTitle == undefined || actionTitle == null || actionTitle == "") {
-    result.string(translate.text("Empty actions are not allowed!"));
+    result.string(translate.text("Empty actions are invalid!"));
 }
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/entity/onValueChange.js b/entity/PermissionDetail_entity/entityfields/entity/onValueChange.js
index 11440115d2..c3f90074fe 100644
--- a/entity/PermissionDetail_entity/entityfields/entity/onValueChange.js
+++ b/entity/PermissionDetail_entity/entityfields/entity/onValueChange.js
@@ -1,3 +1,3 @@
 import("system.neon");
 
-neon.refresh();
\ No newline at end of file
+neon.refresh(["$field.FIELD"]);
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
index 2da1099bbc..4299926003 100644
--- a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
+++ b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js
@@ -32,7 +32,7 @@ for each (let row in insertedRows) {
 }
 
 if (deletedRows.length == actionsAsStringArray.length && changedRows.length == 0 && insertedRows.length == 0) {
-    result.string(translate.text("Permissions without actions are not allowed!"));
+    result.string(translate.text("Permissions without actions are invalid!"));
 }
 
 if (PermissionUtil.permissionExists(permId)) {
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
index b0aa5ab559..e8b93be464 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js
@@ -106,7 +106,7 @@ if (selectedPermission == null) {
     }
 }
 
-result.object(res.sort(sortResultsAfterCondition).sort(sortResultsAfterAccessTypes));
+result.object(res.sort(sortResultsByCondition).sort(sortResultsByAccessTypes));
 
 function prepareResultArray(pEntry, pRes) {
     var rootPermission = "";
@@ -162,7 +162,7 @@ function sortActions(actions, accesstype) {
 }
 
 // sorts result array: Entity -> Records -> Fields
-function sortResultsAfterAccessTypes(a, b) {
+function sortResultsByAccessTypes(a, b) {
     if (a[6] == b[6] && a[6] != "F" && a[6] != "R")
         return 0;
     else if (a[6] == "E")
@@ -186,7 +186,7 @@ function sortResultsAfterAccessTypes(a, b) {
 }
 
 // sorts result array: default permission -> conditional permission
-function sortResultsAfterCondition(a, b) {
+function sortResultsByCondition(a, b) {
     var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}";
     if (a[4] == "" || a[4] == noCond) {
         return -1;
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
index 54100375b1..56cc8b74a1 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js
@@ -52,5 +52,4 @@ if (PermissionUtil.setIsEmpty(parentPermSetId)) {
     db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete empty permissionset
 }
 
-neon.refreshAll();
 tools.clearPermissionCache();
\ No newline at end of file
diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
index cacdde1e35..105a129772 100644
--- a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
+++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js
@@ -32,5 +32,4 @@ if (diff.length > 0) {
 PermissionUtil.updateIfDiff(permissionid, permCond, "COND", "ASYS_PERMISSION"); // updates COND if the new cond is different to COND in DB
 PermissionUtil.updateIfDiff(permissionid, permCondType, "CONDTYPE", "ASYS_PERMISSION"); // updates CONDTYPE if the new condtype is different to CONDTYPE in DB
 
-neon.refreshAll(); 
 tools.clearPermissionCache();
\ No newline at end of file
diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
index 6e25ef4aaf..bfb6897c91 100644
--- a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
+++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod
@@ -3,9 +3,9 @@
   <name>PermissionDetailPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
-    <noneLayout>
+    <headerFooterLayout>
       <name>layout</name>
-    </noneLayout>
+    </headerFooterLayout>
   </layout>
   <children>
     <cardViewTemplate>
-- 
GitLab