From f3c83460ee297579c7531810892767445b724b60 Mon Sep 17 00:00:00 2001 From: Simon Leipold <s.leipold@adito.de> Date: Wed, 17 Feb 2021 16:41:58 +0100 Subject: [PATCH] 1072396 PermissionAction 'update' invisible for entity actions --- .../PermissionAction_entity.aod | 8 ++++++++ .../entityfields/action/dropDownProcess.js | 20 +++++++++++++++---- .../PermissionDetail_entity.aod | 8 ++++++++ .../entitytitle_param/valueProcess.js | 4 ++++ .../children/fieldtype_param/valueProcess.js | 4 ++++ 5 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 entity/PermissionDetail_entity/entityfields/permissionactions/children/entitytitle_param/valueProcess.js create mode 100644 entity/PermissionDetail_entity/entityfields/permissionactions/children/fieldtype_param/valueProcess.js diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod index dc33aff6f6..88bf813934 100644 --- a/entity/PermissionAction_entity/PermissionAction_entity.aod +++ b/entity/PermissionAction_entity/PermissionAction_entity.aod @@ -62,6 +62,14 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityParameter> + <name>Field_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>EntityTitle_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js b/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js index 6da1b8813f..c958e5020b 100644 --- a/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js +++ b/entity/PermissionAction_entity/entityfields/action/dropDownProcess.js @@ -1,3 +1,4 @@ +import("system.project"); import("system.vars"); import("system.result"); @@ -19,10 +20,21 @@ switch (accesstype) { ] break; case "F": - actions = [ - ["view", "view"], - ["update", "update"] - ] + actions = [["view", "view"]]; + var entityStructure = project.getEntityStructure(vars.get("$param.EntityTitle_param")); + var selectedField = ""; + + for (var field in entityStructure.fields) { + if (field == vars.get("$param.Field_param")) { + selectedField = entityStructure.fields[field]; + break; + } + } + + // show 'update' if selected field is not an action + if (selectedField.fieldType != "ACTION") { + actions.push(["update", "update"]); + } } result.object(actions); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod index 39f346f5c6..9fc1e645ae 100644 --- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -194,6 +194,14 @@ <name>FullPermissions_param</name> <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/permissionactions/children/fullpermissions_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>Field_param</name> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/permissionactions/children/fieldtype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>EntityTitle_param</name> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/permissionactions/children/entitytitle_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityField> diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/entitytitle_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/entitytitle_param/valueProcess.js new file mode 100644 index 0000000000..b72cd89fbc --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/entitytitle_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.ENTITY")); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/fieldtype_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/fieldtype_param/valueProcess.js new file mode 100644 index 0000000000..52bd0deb21 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/fieldtype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.FIELD")); \ No newline at end of file -- GitLab