Skip to content
Snippets Groups Projects
Commit a7bd28c1 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

Merge branch '#1082107_EmployeeRoleOverview' into '2021.1.2'

[Projekt: Entwicklung - Neon][TicketNr.: 1082107][Rollen | Reiter sollen Berechtigungen und Mitarbeiter anzeigen]

See merge request xrm/basic!1158
parents b3e10097 05b34412
No related branches found
No related tags found
No related merge requests found
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<title>Role</title> <title>Role</title>
<majorModelMode>DISTRIBUTED</majorModelMode> <majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/EmployeeRole_entity/documentation.adoc</documentation> <documentation>%aditoprj%/entity/EmployeeRole_entity/documentation.adoc</documentation>
<grantCreate v="true" />
<grantUpdate v="true" /> <grantUpdate v="true" />
<titlePlural>Roles</titlePlural> <titlePlural>Roles</titlePlural>
<recordContainer>jdito</recordContainer> <recordContainer>jdito</recordContainer>
......
...@@ -351,6 +351,10 @@ ...@@ -351,6 +351,10 @@
<name>EmployeeContactIdWhitelist_param</name> <name>EmployeeContactIdWhitelist_param</name>
<expose v="true" /> <expose v="true" />
</entityParameter> </entityParameter>
<entityParameter>
<name>EmployeeWithRole_param</name>
<expose v="true" />
</entityParameter>
</entityFields> </entityFields>
<recordContainers> <recordContainers>
<jDitoRecordContainer> <jDitoRecordContainer>
......
...@@ -26,26 +26,57 @@ else ...@@ -26,26 +26,57 @@ else
users = users.map(function (user) users = users.map(function (user)
{ {
return [ return [
user[tools.NAME], user[tools.NAME],
user[tools.TITLE], user[tools.TITLE],
user[tools.PARAMS][tools.ISACTIVE], user[tools.PARAMS][tools.ISACTIVE],
user[tools.PARAMS][tools.FIRSTNAME], user[tools.PARAMS][tools.FIRSTNAME],
user[tools.PARAMS][tools.LASTNAME], user[tools.PARAMS][tools.LASTNAME],
user[tools.PARAMS][tools.EMAIL], user[tools.PARAMS][tools.EMAIL],
user[tools.PARAMS][tools.EMAIL], user[tools.PARAMS][tools.EMAIL],
user[tools.DESCRIPTION], user[tools.DESCRIPTION],
user[tools.PARAMS][tools.CONTACTID], //8 user[tools.PARAMS][tools.CONTACTID], //8
user[tools.PARAMS].department, user[tools.PARAMS].department,
"", //password "", //password
"", //confirm_password "", //confirm_password
user[tools.ROLENAMES], //for filtering user[tools.ROLENAMES], //for filtering
EmployeeUtils.sliceUserId(user[tools.NAME]), EmployeeUtils.sliceUserId(user[tools.NAME]),
user[tools.PARAMS][tools.PHONE_ADDRESS] user[tools.PARAMS][tools.PHONE_ADDRESS]
]; ];
}); });
var filter = vars.get("$local.filter"); var filter = vars.get("$local.filter");
// only show employees of the selected role in the role context
if (vars.get("$param.EmployeeWithRole_param"))
{
var employeeWithRoleFilter = {
type:"row",
name:"ROLE_FILTER",
operator:"EQUAL",
value:vars.get("$param.EmployeeWithRole_param"),
key:vars.get("$param.EmployeeWithRole_param"),
contenttype:"TEXT"
};
if (filter.filter != null)
{
// if the filter already has atleast one child condition, add the employeeWithRole condition
filter.filter = {
type:"group",
operator:"AND",
childs:[employeeWithRoleFilter, filter.filter]
};
}
else
{
// otherwise you have to set a new filter object with only one child condition - the employeeWithRole condition
filter.filter = {
type:"group",
operator:"AND",
childs:[employeeWithRoleFilter]
};
}
}
//TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method //TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method
var filterFields = ["UID", "TITLE", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "", "DESCRIPTION", "CONTACT_ID", "DEPARTMENT", "", "", "ROLE_FILTER", "$$$LOOKUPFIELD$$$"]; var filterFields = ["UID", "TITLE", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "", "DESCRIPTION", "CONTACT_ID", "DEPARTMENT", "", "", "ROLE_FILTER", "$$$LOOKUPFIELD$$$"];
var filterFns = { var filterFns = {
...@@ -72,7 +103,9 @@ var filterFns = { ...@@ -72,7 +103,9 @@ var filterFns = {
if (pOperator == "CONTAINS") if (pOperator == "CONTAINS")
{ {
pRow = [pRow[1], pRow[3], pRow[4], pRow[5]]; pRow = [pRow[1], pRow[3], pRow[4], pRow[5]];
var filterValues = pFilterValue.split(" ").filter(function (val) {return val.trim();}); var filterValues = pFilterValue.split(" ").filter(function (val) {
return val.trim();
});
return filterValues.every(function (filterValue) return filterValues.every(function (filterValue)
{ {
return pRow.some(function (fieldValue) return pRow.some(function (fieldValue)
......
...@@ -143,6 +143,20 @@ ...@@ -143,6 +143,20 @@
<name>FilterRolesWithoutPermission</name> <name>FilterRolesWithoutPermission</name>
<usePermissions v="false" /> <usePermissions v="false" />
</entityProvider> </entityProvider>
<entityConsumer>
<name>EmployeeWithRole</name>
<dependency>
<name>dependency</name>
<entityName>Employee_entity</entityName>
<fieldName>Employees</fieldName>
</dependency>
<children>
<entityParameter>
<name>EmployeeWithRole_param</name>
<valueProcess>%aditoprj%/entity/Role_entity/entityfields/employeewithrole/children/employeewithrole_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields> </entityFields>
<recordContainers> <recordContainers>
<jDitoRecordContainer> <jDitoRecordContainer>
......
import("system.result");
import("system.vars");
result.string(vars.get("$field.ROLENAME"));
\ No newline at end of file
...@@ -18,5 +18,9 @@ ...@@ -18,5 +18,9 @@
<name>7edde309-9804-4d46-8ac0-d7642f66b584</name> <name>7edde309-9804-4d46-8ac0-d7642f66b584</name>
<view>EmployeeRoleGenericEdit_view</view> <view>EmployeeRoleGenericEdit_view</view>
</neonViewReference> </neonViewReference>
<neonViewReference>
<name>beabcd93-3636-43e4-ad98-f4177336d2b2</name>
<view>EmployeeRolePreviewFilter_view</view>
</neonViewReference>
</references> </references>
</neonContext> </neonContext>
...@@ -48,5 +48,10 @@ ...@@ -48,5 +48,10 @@
</entityFieldLink> </entityFieldLink>
</fields> </fields>
</genericViewTemplate> </genericViewTemplate>
<neonViewReference>
<name>80b4f2c5-ce49-4c7a-8f07-6054c2b7e5af</name>
<entityField>EmployeeRoles</entityField>
<view>EmployeeRolePreviewFilter_view</view>
</neonViewReference>
</children> </children>
</neonView> </neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>EmployeeRolePreviewFilter_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<noneLayout>
<name>layout</name>
</noneLayout>
</layout>
<children>
<tableViewTemplate>
<name>EmployeeRolesTable</name>
<isCreatable v="false" />
<isDeletable v="false" />
<isEditable v="false" />
<title>Roles</title>
<columns>
<neonTableColumn>
<name>bb9468d2-18c2-4a5c-9b71-51ea34d32583</name>
<entityField>ROLE</entityField>
</neonTableColumn>
<neonTableColumn>
<name>22eff75c-01dd-4bb9-9706-a202e9178176</name>
<entityField>#UID</entityField>
</neonTableColumn>
</columns>
</tableViewTemplate>
</children>
</neonView>
...@@ -24,5 +24,10 @@ ...@@ -24,5 +24,10 @@
<entityField>TheirPermissions</entityField> <entityField>TheirPermissions</entityField>
<view>PermissionDetailFilter_view</view> <view>PermissionDetailFilter_view</view>
</neonViewReference> </neonViewReference>
<neonViewReference>
<name>2baa9221-374a-4ac9-8e9f-09ac70d189b3</name>
<entityField>EmployeeWithRole</entityField>
<view>EmployeeFilter_view</view>
</neonViewReference>
</children> </children>
</neonView> </neonView>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment