Skip to content
Snippets Groups Projects
Commit 93fd6c24 authored by S.Listl's avatar S.Listl
Browse files

Employee and EmployeeRole

parent 9bfe1b83
No related branches found
No related tags found
No related merge requests found
Showing
with 306 additions and 19 deletions
......@@ -32,6 +32,7 @@
<node name="Attribute" kind="10077" />
<node name="KeywordEntry" kind="10077" />
<node name="KeywordAttribute" kind="10077" />
<node name="Employee" kind="10077" />
<node name="INTERNAL_ADMINISTRATOR" kind="159" />
</node>
</node>
......
......@@ -99,6 +99,12 @@
<fieldName>Attributes</fieldName>
<isConsumer v="false" />
</entityDependency>
<entityDependency>
<name>cb20be7b-35aa-43c7-bf98-3a31010b33d6</name>
<entityName>Employee_entity</entityName>
<fieldName>Attributes</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityParameter>
......
<?xml version="1.0" encoding="UTF-8"?>
<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.0">
<name>EmployeeRole_entity</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<recordContainer>jdito</recordContainer>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>UID</name>
<title>Role</title>
<possibleItemsProcess>%aditoprj%/entity/EmployeeRole_entity/entityfields/uid/possibleItemsProcess.js</possibleItemsProcess>
</entityField>
<entityParameter>
<name>UserTitle_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityProvider>
<name>EmployeeRoles</name>
<fieldType>DEPENDENCY_IN</fieldType>
<dependencies>
<entityDependency>
<name>3bcec57a-7165-4773-9253-5ecab26ee3f4</name>
<entityName>Employee_entity</entityName>
<fieldName>EmployeeRoles</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
<children>
<entityParameter>
<name>UserTitle_param</name>
<expose v="true" />
</entityParameter>
</children>
</entityProvider>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
<name>jdito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<contentProcess>%aditoprj%/entity/EmployeeRole_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<onInsert>%aditoprj%/entity/EmployeeRole_entity/recordcontainers/jdito/onInsert.js</onInsert>
<recordFields>
<element>UID.value</element>
</recordFields>
</jDitoRecordContainer>
</recordContainers>
</entity>
import("system.result");
import("system.tools");
var roles = [];
var allRoles = tools.getAllRoles([tools.ROLE_INTERNAL, tools.ROLE_PROJECT, tools.ROLE_XMPP]);
for (let roleId in allRoles)
roles.push([roleId, allRoles[roleId][0]])
result.object(roles);
\ No newline at end of file
import("system.result");
import("system.vars");
import("system.tools");
var roles = [];
var userTitle = vars.exists("$param.UserTitle_param") && vars.get("$param.UserTitle_param");
if (userTitle)
roles = tools.getRoles(userTitle).map(function (role) {return [role]});
result.object(roles);
\ No newline at end of file
import("system.result");
import("system.vars");
import("system.tools");
var userTitle = vars.exists("$param.UserTitle_param") && vars.get("$param.UserTitle_param");
var role = vars.get("$field.UID");
if (userTitle)
{
var user = tools.getUser(userTitle);
var roles = tools.getRoles(userTitle);
var roleObj = {};
roles = [role].concat(roles)
.filter(function (role)
{
roleObj[role] = true;
return !(role in roleObj);
});
user[tools.ROLES] = roles;
tools.updateUser(user);
}
\ No newline at end of file
......@@ -3,6 +3,7 @@
<name>Employee_entity</name>
<title>Employee</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<onValidation>%aditoprj%/entity/Employee_entity/onValidation.js</onValidation>
<iconId>VAADIN:GROUP</iconId>
<recordContainer>jdito</recordContainer>
<entityFields>
......@@ -11,23 +12,30 @@
</entityProvider>
<entityField>
<name>UID</name>
<searchable v="false" />
</entityField>
<entityField>
<name>TITLE</name>
<title>Title</title>
<title>Login</title>
<mandatory v="true" />
<onValidation>%aditoprj%/entity/Employee_entity/entityfields/title/onValidation.js</onValidation>
</entityField>
<entityField>
<name>CONTACT_ID</name>
<title>Person</title>
<consumer>Contacts</consumer>
<mandatory v="false" />
<onValidation>%aditoprj%/entity/Employee_entity/entityfields/contact_id/onValidation.js</onValidation>
</entityField>
<entityField>
<name>FIRSTNAME</name>
<title>Firstname</title>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/firstname/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>LASTNAME</name>
<title>Lastname</title>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/lastname/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>ISACTIVE</name>
......@@ -38,30 +46,114 @@
</entityField>
<entityField>
<name>EMAIL_ADDRESS</name>
<title>Email address</title>
<title>Email</title>
<mandatory v="true" />
</entityField>
<entityField>
<name>PASSWORD</name>
<title>Password</title>
<contentType>PASSWORD</contentType>
<searchable v="false" />
</entityField>
<entityField>
<name>CONFIRM_PASSWORD</name>
<title>Confirm password</title>
<contentType>PASSWORD</contentType>
<onValidation>%aditoprj%/entity/Employee_entity/entityfields/confirm_password/onValidation.js</onValidation>
<searchable v="false" />
</entityField>
<entityActionField>
<name>setPassword</name>
<fieldType>ACTION</fieldType>
<title>Set Password</title>
<title>Set password</title>
<onActionProcess>%aditoprj%/entity/Employee_entity/entityfields/setpassword/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PASSWORD</iconId>
</entityActionField>
<entityParameter>
<name>passwordChange_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>onlyActives_param</name>
<description>PARAMETER</description>
</entityParameter>
<entityConsumer>
<name>Contacts</name>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>Person_entity</entityName>
<fieldName>#PROVIDER</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>Attributes</name>
<title>Attributes</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>AttributeRelation_entity</entityName>
<fieldName>RelationsForSpecificObject</fieldName>
</dependency>
<children>
<entityParameter>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityFieldGroup>
<name>NAME_fieldGroup</name>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/name_fieldgroup/valueProcess.js</valueProcess>
<title>Name</title>
<description>FIELDGROUP</description>
<fields>
<element>FIRSTNAME</element>
<element>LASTNAME</element>
</fields>
</entityFieldGroup>
<entityField>
<name>IMAGE</name>
<contentType>IMAGE</contentType>
<searchable v="false" />
<state>READONLY</state>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/image/valueProcess.js</valueProcess>
<onValueChangeTypes>
<element>MASK</element>
</onValueChangeTypes>
</entityField>
<entityField>
<name>DEPARTMENT</name>
<title>Department</title>
</entityField>
<entityField>
<name>DESCRIPTION</name>
<title>Description</title>
<contentType>LONG_TEXT</contentType>
</entityField>
<entityField>
<name>ROLES</name>
</entityField>
<entityConsumer>
<name>EmployeeRoles</name>
<title>Roles</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>EmployeeRole_entity</entityName>
<fieldName>EmployeeRoles</fieldName>
</dependency>
<children>
<entityParameter>
<name>UserTitle_param</name>
<valueProcess>%aditoprj%/entity/Employee_entity/entityfields/employeeroles/children/usertitle_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......@@ -78,6 +170,9 @@
<element>FIRSTNAME.value</element>
<element>LASTNAME.value</element>
<element>EMAIL_ADDRESS.value</element>
<element>DESCRIPTION.value</element>
<element>CONTACT_ID.value</element>
<element>CONTACT_ID.displayValue</element>
</recordFields>
</jDitoRecordContainer>
</recordContainers>
......
import("system.vars");
import("system.result");
result.string(vars.get("$field.CONTACT_ID"));
\ No newline at end of file
import("system.result");
import("Context_lib");
result.string(ContextUtils.getCurrentContextId());
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$field.TITLE"));
\ No newline at end of file
import("system.result");
import("system.db");
import("system.neon");
import("system.vars");
import("Sql_lib");
var contactId = vars.get("$field.CONTACT_ID");
if ((vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
&& contactId)
{
var firstname = db.cell(SqlCondition.begin()
.andPrepare("CONTACT.CONTACTID", contactId)
.buildSql("select FIRSTNAME from PERSON join CONTACT on CONTACT.PERSON_ID = PERSON.PERSONID")
);
result.string(firstname);
}
\ No newline at end of file
import("system.db");
import("system.result");
import("system.neon");
import("system.vars");
import("Person_lib");
import("Sql_lib");
if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
{
var personId = db.cell(SqlCondition.begin()
.andPrepareVars("CONTACT.CONTACTID", "$field.CONTACT_ID")
.buildSql("select PERSON_ID from CONTACT")
);
result.string(PersUtils.getImage(personId, (vars.getString("$field.FIRSTNAME") + " " + vars.getString("$field.LASTNAME")).trim()));
}
import("system.result");
import("system.db");
import("system.neon");
import("system.vars");
import("Sql_lib");
var contactId = vars.get("$field.CONTACT_ID");
if ((vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)
&& contactId)
{
var lastname = db.cell(SqlCondition.begin()
.andPrepare("CONTACT.CONTACTID", contactId)
.buildSql("select LASTNAME from PERSON join CONTACT on CONTACT.PERSON_ID = PERSON.PERSONID")
);
result.string(lastname);
}
\ No newline at end of file
import("system.vars");
import("system.result");
result.string((vars.get("$field.FIRSTNAME") + " " + vars.get("$field.LASTNAME")).trim());
\ No newline at end of file
import("system.translate");
import("system.result");
import("system.vars");
import("Entity_lib");
if (vars.get("$field.PASSWORD") != ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONFIRM_PASSWORD")))
if (vars.get("$field.PASSWORD") != vars.get("$field.CONFIRM_PASSWORD"))
result.string(translate.text("Password and confirmation must be the same!"));
\ No newline at end of file
import("system.logging");
import("system.vars");
import("system.result");
import("system.tools");
......@@ -12,13 +13,19 @@ users = users.map(function (user)
{
user = tools.getUser(user);
return [
user.title,
user.title,
user.params.isActive,
user.params.firstname,
user.params.lastname,
user.params.email
user[tools.TITLE],
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.DESCRIPTION],
user[tools.PARAMS][tools.CONTACTID],
user[tools.PARAMS][tools.CONTACTID]
];
});
var filter = vars.exists("$local.filter") && vars.get("$local.filter");
//logging.log(filter)
result.object(users);
\ No newline at end of file
......@@ -2,10 +2,12 @@ import("system.vars");
import("system.tools");
var user = {};
var parameters = []; //this has to be an array
parameters[tools.FIRSTNAME] = vars.get("$field.FIRSTNAME");
parameters[tools.LASTNAME] = vars.get("$field.LASTNAME");
parameters[tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS");
var params = []; //this has to be an array
params[tools.FIRSTNAME] = vars.get("$field.FIRSTNAME");
params[tools.LASTNAME] = vars.get("$field.LASTNAME");
params[tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS");
params[tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS");
params[tools.CONTACTID] = vars.get("$field.CONTACT_ID");
user[tools.TITLE] = vars.get("$field.TITLE");
user[tools.PARAMS] = params;
......
import("system.logging");
import("system.vars");
import("system.tools");
var user = tools.getUser(vars.get("$field.TITLE"));
user.params[tools.FIRSTNAME] = vars.get("$field.FIRSTNAME");
user.params[tools.LASTNAME] = vars.get("$field.LASTNAME");
user.params[tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS");
user[tools.PARAMS][tools.FIRSTNAME] = vars.get("$field.FIRSTNAME");
user[tools.PARAMS][tools.LASTNAME] = vars.get("$field.LASTNAME");
user[tools.PARAMS][tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS");
user[tools.PARAMS][tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS");
user[tools.PARAMS][tools.CONTACTID] = vars.get("$field.CONTACT_ID");
if (vars.exists("$param.passwordChange_param") && vars.get("$param.passwordChange_param")
&& vars.get("$field.PASSWORD") == vars.get("$field.CONFIRM_PASSWORD"))
......
......@@ -2655,6 +2655,18 @@
<entry>
<key>${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3</key>
</entry>
<entry>
<key>The title already exists!</key>
</entry>
<entry>
<key>Password</key>
</entry>
<entry>
<key>Confirm password</key>
</entry>
<entry>
<key>Set password</key>
</entry>
<entry>
<key>Email</key>
</entry>
......@@ -2673,6 +2685,12 @@
<entry>
<key>{$OBJECTLINK_OBJECT}</key>
</entry>
<entry>
<key>Roles</key>
</entry>
<entry>
<key>standard phone</key>
</entry>
</keyValueMap>
<font name="Dialog" style="0" size="11" />
<sqlModels>
......
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