Skip to content
Snippets Groups Projects
Commit 05b34412 authored by Simon Leipold's avatar Simon Leipold Committed by Sebastian Listl
Browse files

[Projekt: Entwicklung - Neon][TicketNr.: 1082107][Rollen | Reiter sollen...

[Projekt: Entwicklung - Neon][TicketNr.: 1082107][Rollen | Reiter sollen Berechtigungen und Mitarbeiter anzeigen]
parent aba3bcc1
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@
<title>Role</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/EmployeeRole_entity/documentation.adoc</documentation>
<grantCreate v="true" />
<grantUpdate v="true" />
<titlePlural>Roles</titlePlural>
<recordContainer>jdito</recordContainer>
......
......@@ -351,6 +351,10 @@
<name>EmployeeContactIdWhitelist_param</name>
<expose v="true" />
</entityParameter>
<entityParameter>
<name>EmployeeWithRole_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......
......@@ -26,26 +26,57 @@ else
users = users.map(function (user)
{
return [
user[tools.NAME],
user[tools.TITLE],
user[tools.PARAMS][tools.ISACTIVE],
user[tools.PARAMS][tools.FIRSTNAME],
user[tools.PARAMS][tools.LASTNAME],
user[tools.PARAMS][tools.EMAIL],
user[tools.PARAMS][tools.EMAIL],
user[tools.DESCRIPTION],
user[tools.PARAMS][tools.CONTACTID], //8
user[tools.PARAMS].department,
"", //password
"", //confirm_password
user[tools.ROLENAMES], //for filtering
EmployeeUtils.sliceUserId(user[tools.NAME]),
user[tools.PARAMS][tools.PHONE_ADDRESS]
user[tools.NAME],
user[tools.TITLE],
user[tools.PARAMS][tools.ISACTIVE],
user[tools.PARAMS][tools.FIRSTNAME],
user[tools.PARAMS][tools.LASTNAME],
user[tools.PARAMS][tools.EMAIL],
user[tools.PARAMS][tools.EMAIL],
user[tools.DESCRIPTION],
user[tools.PARAMS][tools.CONTACTID], //8
user[tools.PARAMS].department,
"", //password
"", //confirm_password
user[tools.ROLENAMES], //for filtering
EmployeeUtils.sliceUserId(user[tools.NAME]),
user[tools.PARAMS][tools.PHONE_ADDRESS]
];
});
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
var filterFields = ["UID", "TITLE", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "", "DESCRIPTION", "CONTACT_ID", "DEPARTMENT", "", "", "ROLE_FILTER", "$$$LOOKUPFIELD$$$"];
var filterFns = {
......@@ -72,7 +103,9 @@ var filterFns = {
if (pOperator == "CONTAINS")
{
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 pRow.some(function (fieldValue)
......
......@@ -143,6 +143,20 @@
<name>FilterRolesWithoutPermission</name>
<usePermissions v="false" />
</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>
<recordContainers>
<jDitoRecordContainer>
......
import("system.result");
import("system.vars");
result.string(vars.get("$field.ROLENAME"));
\ No newline at end of file
......@@ -18,5 +18,9 @@
<name>7edde309-9804-4d46-8ac0-d7642f66b584</name>
<view>EmployeeRoleGenericEdit_view</view>
</neonViewReference>
<neonViewReference>
<name>beabcd93-3636-43e4-ad98-f4177336d2b2</name>
<view>EmployeeRolePreviewFilter_view</view>
</neonViewReference>
</references>
</neonContext>
......@@ -48,5 +48,10 @@
</entityFieldLink>
</fields>
</genericViewTemplate>
<neonViewReference>
<name>80b4f2c5-ce49-4c7a-8f07-6054c2b7e5af</name>
<entityField>EmployeeRoles</entityField>
<view>EmployeeRolePreviewFilter_view</view>
</neonViewReference>
</children>
</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 @@
<entityField>TheirPermissions</entityField>
<view>PermissionDetailFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>2baa9221-374a-4ac9-8e9f-09ac70d189b3</name>
<entityField>EmployeeWithRole</entityField>
<view>EmployeeFilter_view</view>
</neonViewReference>
</children>
</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