diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod index dc33aff6f6f00543fe24e16daee87b59094b507e..88bf81393497716ef1aff171175fafd687c31d4a 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 6da1b8813f6e8ecff62b82479153d7c2e4606b68..c958e5020b2a616f9e298e015218843effc2f145 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 39f346f5c668b7003d1499b74960e4e98842687b..9fc1e645aeb101610c4a37985388a857ac79896a 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 0000000000000000000000000000000000000000..b72cd89fbc0097d16557db7a9e998909e127710f --- /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 0000000000000000000000000000000000000000..52bd0deb2169ccfd1f5d531869b4e2fe4304d298 --- /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