Skip to content
Snippets Groups Projects
Commit fe46dcc8 authored by Andre Loreth's avatar Andre Loreth
Browse files

#1034869: Aktivität aus Aufgabe erstellen und Aufgabe aus Aktivität erstellen

parent e30347e5
No related branches found
No related tags found
No related merge requests found
Showing
with 445 additions and 0 deletions
......@@ -3027,6 +3027,34 @@
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>PARENT_CONTEXT</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="12" />
<size v="32" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>PARENT_ID</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="1" />
<size v="36" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
</entityFields>
</entityDb>
<entityDb>
......@@ -3672,6 +3700,34 @@
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>PARENT_ID</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="1" />
<size v="36" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>PARENT_CONTEXT</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="12" />
<size v="32" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
</entityFields>
</entityDb>
<entityDb>
......
......@@ -279,6 +279,60 @@
<searchable v="false" />
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/creator/valueProcess.js</valueProcess>
</entityField>
<entityConsumer>
<name>ModuleTrees</name>
<title>Baum</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>ModuleTree_entity</entityName>
<fieldName>TreeProvider</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContextName</name>
<code>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/contextname/code.js</code>
</entityParameter>
<entityParameter>
<name>ID</name>
<code>%aditoprj%/entity/Activity_entity/entityfields/moduletrees/children/id/code.js</code>
</entityParameter>
</children>
</entityConsumer>
<entityActionField>
<name>newActivity_action</name>
<fieldType>ACTION</fieldType>
<title>Neue Aktivität</title>
<onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newactivity_action/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PLUS</iconId>
</entityActionField>
<entityActionField>
<name>newTask_action</name>
<fieldType>ACTION</fieldType>
<title>Neue Aufgabe</title>
<onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/newtask_action/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PLUS</iconId>
</entityActionField>
<entityParameter>
<name>ParentId_param</name>
<expose v="true" />
<documentation>%aditoprj%/entity/Activity_entity/entityfields/parentid_param/documentation.adoc</documentation>
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>ParentContext_param</name>
<expose v="true" />
<documentation>%aditoprj%/entity/Activity_entity/entityfields/parentcontext_param/documentation.adoc</documentation>
<description>PARAMETER</description>
</entityParameter>
<entityField>
<name>PARENT_ID</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/parent_id/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>PARENT_CONTEXT</name>
<valueProcess>%aditoprj%/entity/Activity_entity/entityfields/parent_context/valueProcess.js</valueProcess>
</entityField>
</entityFields>
<recordContainers>
<dbRecordContainer>
......@@ -330,6 +384,14 @@
<name>CREATOR.value</name>
<recordfield>ACTIVITY.CREATOR</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PARENT_CONTEXT.value</name>
<recordfield>ACTIVITY.PARENT_CONTEXT</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PARENT_ID.value</name>
<recordfield>ACTIVITY.PARENT_ID</recordfield>
</dbRecordFieldMapping>
</recordFieldMappings>
</dbRecordContainer>
</recordContainers>
......
import("system.result");
result.string("Activity");
\ No newline at end of file
import("system.result");
import("system.vars");
result.string(vars.get("$field.ACTIVITYID"));
\ No newline at end of file
import("system.neon");
import("system.vars");
var params = {
"ParentId_param": vars.get("$field.ACTIVITYID"),
"ParentContext_param": "Activity"
};
neon.openContext("Activity", "ActivityEdit_view", null, neon.OPERATINGSTATE_NEW, params)
\ No newline at end of file
import("system.neon");
import("system.vars");
var params = {
"ParentId_param": vars.get("$field.ACTIVITYID"),
"ParentContext_param": "Activity"
};
neon.openContext("Task", "TaskEdit_view", null, neon.OPERATINGSTATE_NEW, params)
\ No newline at end of file
import("system.vars");
import("system.result");
result.string(vars.get("$param.ParentContext_param"));
import("system.vars");
import("system.result");
result.string(vars.get("$param.ParentId_param"));
Describes the name of the parent element's context name.
This parameter is used to link a new activity to an existing.
(Also see `ParentId_param`)
\ No newline at end of file
Describes the ID of the parent element's context name.
This parameter is used to link a new activity to an existing.
(Also see `ParentContextName_param`)
\ No newline at end of file
<?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.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.0">
<name>ModuleTree_entity</name>
<title>Tree Entity</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<entityFields>
<entityProvider>
<name>#PROVIDER</name>
<recordContainer>jdito</recordContainer>
</entityProvider>
<entityField>
<name>TITLE</name>
</entityField>
<entityField>
<name>DESCRIPTION</name>
</entityField>
<entityField>
<name>ICON</name>
</entityField>
<entityProvider>
<name>TreeProvider</name>
<fieldType>DEPENDENCY_IN</fieldType>
<targetContextField>TYPE</targetContextField>
<targetIdField>UID</targetIdField>
<recordContainer>jdito</recordContainer>
<dependencies>
<entityDependency>
<name>7da88ffb-4292-4fe2-88e2-dda2dc4aa625</name>
<entityName>Task_entity</entityName>
<fieldName>ModuleTrees</fieldName>
<isConsumer v="false" />
</entityDependency>
<entityDependency>
<name>70e2ea81-1e08-47a6-ac89-3164bdbd9e02</name>
<entityName>Activity_entity</entityName>
<fieldName>ModuleTrees</fieldName>
<isConsumer v="false" />
</entityDependency>
</dependencies>
</entityProvider>
<entityField>
<name>PARENT_ID</name>
</entityField>
<entityField>
<name>UID</name>
</entityField>
<entityField>
<name>PARENT_CONTEXT</name>
</entityField>
<entityField>
<name>TYPE</name>
</entityField>
<entityParameter>
<name>ContextName</name>
<expose v="true" />
<mandatory v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>ID</name>
<expose v="true" />
<mandatory v="true" />
<description>PARAMETER</description>
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
<name>jdito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<contentProcess>%aditoprj%/entity/ModuleTree_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<recordFields>
<element>UID.value</element>
<element>TYPE.value</element>
<element>PARENT_ID.value</element>
<element>PARENT_CONTEXT.value</element>
<element>TITLE.value</element>
<element>DESCRIPTION.value</element>
<element>ICON.value</element>
</recordFields>
</jDitoRecordContainer>
</recordContainers>
</entity>
import("system.vars");
import("Sql_lib")
import("system.result");
import("system.db");
var fixedContextName = vars.get("$param.ContextName");
var fixedID = vars.get("$param.ID");
let resArray = [];
// Query root element
var root = queryRootElement(fixedContextName, fixedID);
if (root !== null) {
// Push root element
resArray.push(root);
// Query children of root
var children = queryChildrenElements(fixedContextName, fixedID);
if (children !== null) {
// Push each children
for(let i = 0; i < children.length; i++) {
resArray.push(children[i]);
}
result.object(resArray);
}
}
/**
* Queries the children of the given parent element.
* This function will recursively go through each level of children.
*
* @param pContextName Context name of the parent element.
* @param pID ID of the parent element.
*/
function queryChildrenElements (pContextName, pID) {
var taskResult = db.table("select TASKID, PARENT_ID, PARENT_CONTEXT, SUBJECT, DESCRIPTION from TASK where PARENT_ID = '" + pID +"' and PARENT_CONTEXT = '" + pContextName + "'");
var activityResult = db.table("select ACTIVITYID, PARENT_ID, PARENT_CONTEXT, SUBJECT, INFO from ACTIVITY where PARENT_ID = '" + pID +"' and PARENT_CONTEXT = '" + pContextName + "'");
var res = []
for (let i = 0; i < taskResult.length; i++) {
// Augment data
taskResult[i] = augmentData(taskResult[i], "Task");
res.push(taskResult[i]);
// Query children
let children = queryChildrenElements("Task", taskResult[i][0]);
for (let i = 0; i < children.length; i++) {
res.push(children[i]);
}
}
for (let i = 0; i < activityResult.length; i++) {
// Augment data
activityResult[i] = augmentData(activityResult[i], "Activity");
res.push(activityResult[i]);
// Query children
let children = queryChildrenElements("Activity", activityResult[i][0]);
for (let i = 0; i < children.length; i++) {
res.push(children[i]);
}
}
return res;
}
/**
* Queries the root element.
*
* @param pContextName Context name of the root element.
* @param pID ID of the root element.
*/
function queryRootElement (pContextName, pID) {
var resultArray;
if (pContextName === "Task") {
resultArray = db.table("select TASKID, PARENT_ID, PARENT_CONTEXT, SUBJECT, DESCRIPTION from TASK where TASKID = '" + pID + "'");
if (resultArray.length === 0) {
return null;
}
return augmentData(resultArray[0], "Task");
} else if (pContextName === "Activity") {
resultArray = db.table("select ACTIVITYID, PARENT_ID, PARENT_CONTEXT, SUBJECT, INFO from ACTIVITY where ACTIVITYID = '" + pID +"'");
if (resultArray.length === 0) {
return null;
}
return augmentData(resultArray[0], "Activity");
} else {
return null;
}
}
/**
* Augments the given row to match the required result signature.
*
* @param pDataRow Requires the following format:
* UID, PARENT_ID, PARENT_CONTEXT, TITLE, DESCRIPTION
* @param pType The type of the row which needs adjustment.
* @return Returns the following format:
* UID, TYPE, PARENT_ID, PARENT_CONTEX, TITL, DESCRIPTION, ICON
*
*/
function augmentData (pDataRow, pType) {
if (pDataRow === null || pDataRow === undefined)
return null;
if (pDataRow.length === 0)
return null;
if (pType !== "Task" && pType !== "Activity")
return null;
// PARENT_ID check
if (pDataRow[2] === "")
pDataRow[2] = null;
// PARENT_CONTEXT check
if (pDataRow[3] === "")
pDataRow[3] = null;
// Insert type
pDataRow.splice(1, 0, pType);
// Insert icon
pDataRow.splice(6, 0, pType === "Task" ? "VAADIN:TASKS" : pType === "Activity" ? "NEON:HISTORY": null);
return pDataRow;
}
\ No newline at end of file
......@@ -186,6 +186,11 @@
<description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
</entityParameter>
<entityParameter>
<name>CommCategory_param</name>
<code>%aditoprj%/entity/Person_entity/entityfields/communications/children/commcategory_param/code.js</code>
<description>TODO: expose auf false. aktuell wird der Code nicht ausgeführt, wenn Expose false ist.</description>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
......
......@@ -170,6 +170,59 @@
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>ModuleTrees</name>
<title>Baum</title>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>ModuleTree_entity</entityName>
<fieldName>TreeProvider</fieldName>
</dependency>
<children>
<entityParameter>
<name>ID</name>
<code>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/id/code.js</code>
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>ContextName</name>
<code>%aditoprj%/entity/Task_entity/entityfields/moduletrees/children/contextname/code.js</code>
</entityParameter>
</children>
</entityConsumer>
<entityField>
<name>PARENT_CONTEXT</name>
<valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_context/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>PARENT_ID</name>
<valueProcess>%aditoprj%/entity/Task_entity/entityfields/parent_id/valueProcess.js</valueProcess>
</entityField>
<entityParameter>
<name>ParentId_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityParameter>
<name>ParentContext_param</name>
<expose v="true" />
<description>PARAMETER</description>
</entityParameter>
<entityActionField>
<name>newActivity_action</name>
<fieldType>ACTION</fieldType>
<title>Neue Aktivität</title>
<onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newactivity_action/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PLUS</iconId>
</entityActionField>
<entityActionField>
<name>newTask_action</name>
<fieldType>ACTION</fieldType>
<title>Neue Aufgabe</title>
<onActionProcess>%aditoprj%/entity/Task_entity/entityfields/newtask_action/onActionProcess.js</onActionProcess>
<iconId>VAADIN:PLUS</iconId>
</entityActionField>
</entityFields>
<recordContainers>
<dbRecordContainer>
......@@ -250,6 +303,14 @@
<name>STATUS.displayValue</name>
<expression>%aditoprj%/entity/Task_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PARENT_CONTEXT.value</name>
<recordfield>TASK.PARENT_CONTEXT</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PARENT_ID.value</name>
<recordfield>TASK.PARENT_ID</recordfield>
</dbRecordFieldMapping>
</recordFieldMappings>
</dbRecordContainer>
</recordContainers>
......
import("system.result");
result.string("Task");
\ No newline at end of file
import("system.result");
import("system.vars");
result.string(vars.get("$field.TASKID"));
\ No newline at end of file
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