diff --git a/entity/RoleChildren_entity/RoleChildren_entity.aod b/entity/RoleChildren_entity/RoleChildren_entity.aod index 78d1c42ce37696577d1a50d3388f4f22ea0ab274..d7607769b005785094830bb2842252bab257de12 100644 --- a/entity/RoleChildren_entity/RoleChildren_entity.aod +++ b/entity/RoleChildren_entity/RoleChildren_entity.aod @@ -45,6 +45,10 @@ <fieldName>Roles</fieldName> </dependency> </entityConsumer> + <entityParameter> + <name>RoleType_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js b/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js index 9732fa101c6800e06be36ac08d1f4925b50fc40a..a76ad51dc5d86201281871b40f73bcd967bf8c44 100644 --- a/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/RoleChildren_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("system.neon"); import("Sql_lib"); import("system.db"); import("system.vars"); @@ -6,15 +7,21 @@ import("system.util"); var alias = SqlUtils.getSystemAlias(); var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param"); +var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param"); var children = []; +if (selectedRoleType == "" && selectedRoleName != "") { + selectedRoleType = "CUSTOM"; + selectedRoleName = selectedRoleType + "_" + selectedRoleName; +} + // roles can only be assigned to CUSTOM roles -> selected role has to be a viable CUSTOM role -if (selectedRoleName && selectedRoleName.indexOf("CUSTOM_") != -1) { +if (selectedRoleName && selectedRoleType == "CUSTOM") { var childRoles = newSelect("ID, CHILD_ROLE", alias) - .from("ASYS_ROLES_CHILDREN") - .where("ASYS_ROLES_CHILDREN.PARENT_ROLE", selectedRoleName) - .table(); - + .from("ASYS_ROLES_CHILDREN") + .where("ASYS_ROLES_CHILDREN.PARENT_ROLE", selectedRoleName) + .table(); + for each (let childRole in childRoles) { children.push([childRole[0], childRole[1], selectedRoleName]); } diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js b/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js index 60f0bfa215505465723f41d8a605a430a1ccd9da..6dd14e23f2bba2a6e29ac7cccb7031b3acf7e9d0 100644 --- a/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js +++ b/entity/RoleChildren_entity/recordcontainers/jdito/onInsert.js @@ -1,14 +1,19 @@ +import("system.neon"); import("system.util"); import("system.db"); import("Sql_lib"); import("system.result"); import("system.vars"); -var parentRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param") +var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param") +var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param"); -if (parentRoleName && parentRoleName.indexOf("CUSTOM_") != -1) { - var alias = SqlUtils.getSystemAlias(); - var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"]; - var uid = vars.get("$field.UID") - db.insertData("ASYS_ROLES_CHILDREN", ["CHILD_ROLE", "PARENT_ROLE", "ID"], null, [childRole, parentRoleName, uid], alias); -} \ No newline at end of file +if (selectedRoleType == "" && selectedRoleName != "") { + selectedRoleType = "CUSTOM"; + selectedRoleName = selectedRoleType + "_" + selectedRoleName; +} + +var alias = SqlUtils.getSystemAlias(); +var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"]; +var uid = vars.get("$field.UID") +db.insertData("ASYS_ROLES_CHILDREN", ["CHILD_ROLE", "PARENT_ROLE", "ID"], null, [childRole, selectedRoleName, uid], alias); \ No newline at end of file diff --git a/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js b/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js index 3d8ff7063349243d3784541b4dcd994510fb0dab..ef5e24b81d4997315d826c016dfd7e5ab07725f8 100644 --- a/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/RoleChildren_entity/recordcontainers/jdito/onUpdate.js @@ -4,9 +4,10 @@ import("Sql_lib"); import("system.result"); import("system.vars"); -var parentRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param") +var selectedRoleName = vars.exists("$param.RoleId_param") && vars.get("$param.RoleId_param"); +var selectedRoleType = vars.exists("$param.RoleType_param") && vars.get("$param.RoleType_param"); -if (parentRoleName && parentRoleName.indexOf("CUSTOM_") != -1) { +if (selectedRoleName && selectedRoleType == "CUSTOM") { var alias = SqlUtils.getSystemAlias(); var childRole = vars.get("$local.rowdata")["CHILD_ROLE.value"]; diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod index 8e6196406f40514531865d2024fb067803b9d508..57a20f634775b73314799a6573e7612d88fdd734 100644 --- a/entity/Role_entity/Role_entity.aod +++ b/entity/Role_entity/Role_entity.aod @@ -143,6 +143,10 @@ <name>RoleId_param</name> <valueProcess>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/children/roleid_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>RoleType_param</name> + <valueProcess>%aditoprj%/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityActionField> diff --git a/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js b/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6d8c8166db1934be3da3e2bfe29b83e92c36992e --- /dev/null +++ b/entity/Role_entity/entityfields/rolechildrens/children/roletype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.ROLETYPE")); \ No newline at end of file