From 2a5c73d5674387e0ca87f5daf0a44c00021d1057 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Mon, 11 Feb 2019 17:24:34 +0100 Subject: [PATCH] Object relation fixes --- .../ObjectRelation_entity.aod | 1 + .../object1_rowid/displayValueProcess.js | 28 +++++++++++++++++++ .../object1_type/displayValueProcess.js | 16 +++++++---- .../entityfields/object1_type/valueProcess.js | 4 +-- .../object2_type/displayValueProcess.js | 17 ++--------- .../entityfields/object2_type/valueProcess.js | 2 +- .../children/objecttype_param/code.js | 2 +- .../children/objecttype_param/code.js | 4 +-- entity/Object_entity/Object_entity.aod | 6 ++++ .../recordcontainers/jdito/contentProcess.js | 15 ++-------- entity/Object_entity/titleProcess.js | 4 +++ process/Context_lib/process.js | 15 +--------- 12 files changed, 61 insertions(+), 53 deletions(-) create mode 100644 entity/ObjectRelation_entity/entityfields/object1_rowid/displayValueProcess.js create mode 100644 entity/Object_entity/titleProcess.js diff --git a/entity/ObjectRelation_entity/ObjectRelation_entity.aod b/entity/ObjectRelation_entity/ObjectRelation_entity.aod index 92c31b34c5..657cdec7d2 100644 --- a/entity/ObjectRelation_entity/ObjectRelation_entity.aod +++ b/entity/ObjectRelation_entity/ObjectRelation_entity.aod @@ -25,6 +25,7 @@ <linkedContextProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_rowid/linkedContextProcess.js</linkedContextProcess> <stateProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_rowid/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_rowid/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/object1_rowid/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>AB_OBJECTRELATIONID</name> diff --git a/entity/ObjectRelation_entity/entityfields/object1_rowid/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/object1_rowid/displayValueProcess.js new file mode 100644 index 0000000000..94cfeeb560 --- /dev/null +++ b/entity/ObjectRelation_entity/entityfields/object1_rowid/displayValueProcess.js @@ -0,0 +1,28 @@ +import("system.logging"); +import("system.neon"); +import("system.vars"); +import("system.result"); +import("system.db"); +import("Context_lib"); + +var recordstate = vars.get("$sys.recordstate"); +if (recordstate == neon.OPERATINGSTATE_NEW) +{ + if (vars.exists("$param.AnyObjectRowid_param") && vars.get("$param.AnyObjectRowid_param")) + { + result.string(db.cell(ContextUtils.getNameSql(vars.get("$param.AnyObjectType_param"), vars.get("$param.AnyObjectRowid_param")))); + } + else if (vars.exists("$param.Object1Rowid_param") && vars.get("$param.Object1Rowid_param")) + { + result.string(vars.get("$param.Object1Rowid_param")); + } +} +else if (recordstate == neon.OPERATINGSTATE_EDIT) +{ + logging.log("edit") + if (vars.exists("$field.OBJECT1_ROWID") && vars.get("$field.OBJECT1_ROWID") && vars.exists("$field.OBJECT1_TYPE") && vars.get("$field.OBJECT1_TYPE")) + { + logging.log(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT1_TYPE"), vars.get("$field.OBJECT1_ROWID")))) + result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT1_TYPE"), vars.get("$field.OBJECT1_ROWID")))); + } +} \ No newline at end of file diff --git a/entity/ObjectRelation_entity/entityfields/object1_type/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/object1_type/displayValueProcess.js index 8a80d4be7e..b6e7d799d8 100644 --- a/entity/ObjectRelation_entity/entityfields/object1_type/displayValueProcess.js +++ b/entity/ObjectRelation_entity/entityfields/object1_type/displayValueProcess.js @@ -1,18 +1,24 @@ -import("system.logging"); import("system.result"); import("system.neon"); import("system.vars"); +import("system.project"); var recordstate = vars.get("$sys.recordstate"); -if (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT) +if (recordstate == neon.OPERATINGSTATE_NEW) { if (vars.exists("$param.AnyObjectType_param") && vars.get("$param.AnyObjectType_param")) { - logging.log(vars.get("$param.AnyObjectType_param")); - result.string("disp: " + vars.get("$param.AnyObjectType_param")); + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$param.AnyObjectType_param"))[1]); } else if (vars.exists("$param.Object1Type_param") && vars.get("$param.Object1Type_param")) { - result.string("disp: " + vars.get("$param.Object1Type_param")); + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$param.Object1Type_param"))[1]); + } +} +else +{ + if (vars.exists("$field.OBJECT1_TYPE") && vars.get("$field.OBJECT1_TYPE")) + { + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT1_TYPE"))[1]); } } \ No newline at end of file diff --git a/entity/ObjectRelation_entity/entityfields/object1_type/valueProcess.js b/entity/ObjectRelation_entity/entityfields/object1_type/valueProcess.js index 4ad606ce75..86b9f8b6ba 100644 --- a/entity/ObjectRelation_entity/entityfields/object1_type/valueProcess.js +++ b/entity/ObjectRelation_entity/entityfields/object1_type/valueProcess.js @@ -1,14 +1,12 @@ -import("system.logging"); import("system.result"); import("system.neon"); import("system.vars"); var recordstate = vars.get("$sys.recordstate"); -if (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT) +if (recordstate == neon.OPERATINGSTATE_NEW) { if (vars.exists("$param.AnyObjectType_param") && vars.get("$param.AnyObjectType_param")) { - logging.log(vars.get("$param.AnyObjectType_param")); result.string(vars.get("$param.AnyObjectType_param")); } else if (vars.exists("$param.Object1Type_param") && vars.get("$param.Object1Type_param")) diff --git a/entity/ObjectRelation_entity/entityfields/object2_type/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/object2_type/displayValueProcess.js index e53f4ab610..ba3a5abf21 100644 --- a/entity/ObjectRelation_entity/entityfields/object2_type/displayValueProcess.js +++ b/entity/ObjectRelation_entity/entityfields/object2_type/displayValueProcess.js @@ -1,19 +1,8 @@ -import("system.project"); import("system.result"); -import("system.neon"); import("system.vars"); +import("system.project"); -var recordstate = vars.get("$sys.recordstate"); -if (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT) -{ - if (vars.exists("$param.Object1Type_param") && vars.get("$param.Object1Type_param")) - { - // TODO: maybe use the Context_entity when jdito can call other entities over consumers. - result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$param.Object1Type_param"))[1]); - } -} -else +if (vars.exists("$field.OBJECT2_TYPE") && vars.get("$field.OBJECT2_TYPE")) { - if (vars.get("$field.OBJECT1_TYPE")) - result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT1_TYPE"))[1]); + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT2_TYPE"))[1]); } \ No newline at end of file diff --git a/entity/ObjectRelation_entity/entityfields/object2_type/valueProcess.js b/entity/ObjectRelation_entity/entityfields/object2_type/valueProcess.js index 57711c82d2..55e043e903 100644 --- a/entity/ObjectRelation_entity/entityfields/object2_type/valueProcess.js +++ b/entity/ObjectRelation_entity/entityfields/object2_type/valueProcess.js @@ -3,7 +3,7 @@ import("system.neon"); import("system.vars"); var recordstate = vars.get("$sys.recordstate"); -if (recordstate == neon.OPERATINGSTATE_NEW || recordstate == neon.OPERATINGSTATE_EDIT) +if (recordstate == neon.OPERATINGSTATE_NEW) { if (vars.exists("$param.Object2Type_param") && vars.get("$param.Object2Type_param")) { diff --git a/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js b/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js index b3edc8d512..3b6f82bbce 100644 --- a/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js +++ b/entity/ObjectRelation_entity/entityfields/objects1/children/objecttype_param/code.js @@ -2,5 +2,5 @@ import("system.logging"); import("system.vars"); import("system.result"); -logging.log("type: " + vars.get("$field.OBJECT1_TYPE")) +logging.log("set type: " + vars.get("$field.OBJECT1_TYPE")) result.string(vars.get("$field.OBJECT1_TYPE")) \ No newline at end of file diff --git a/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js b/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js index 4ed3a2ece0..e4c1084f9a 100644 --- a/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js +++ b/entity/ObjectRelation_entity/entityfields/objects2/children/objecttype_param/code.js @@ -1,6 +1,4 @@ -import("system.logging"); import("system.vars"); import("system.result"); -logging.log("type2: " + vars.get("$field.OBJECT1_TYPE")) -result.string(vars.get("$field.OBJECT1_TYPE")) \ No newline at end of file +result.string(vars.get("$field.OBJECT2_TYPE")) \ No newline at end of file diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index 291e591054..09a765c262 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -2,6 +2,7 @@ <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>Object_entity</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <titleProcess>%aditoprj%/entity/Object_entity/titleProcess.js</titleProcess> <recordContainer>jdito</recordContainer> <entityFields> <entityProvider> @@ -29,6 +30,8 @@ <entityParameter> <name>ObjectRowId_param</name> <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="false" /> <description>PARAMETER</description> </entityParameter> <entityProvider> @@ -53,11 +56,13 @@ <entityParameter> <name>ObjectRowId_param</name> <expose v="true" /> + <triggerRecalculation v="true" /> <mandatory v="true" /> </entityParameter> <entityParameter> <name>ObjectType_param</name> <expose v="true" /> + <triggerRecalculation v="true" /> <mandatory v="true" /> </entityParameter> </children> @@ -89,6 +94,7 @@ <entityParameter> <name>ObjectType_param</name> <expose v="true" /> + <triggerRecalculation v="true" /> <mandatory v="true" /> </entityParameter> </children> diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js index 56ed060e51..e5a6d3fab4 100644 --- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js @@ -3,26 +3,17 @@ import("system.vars"); import("system.logging"); import("system.result"); import("Context_lib"); -logging.log("huuihuihihi"); + +logging.log(vars.get("$param.ObjectType_param").toSource()) if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) { if (vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param")) { - logging.log(vars.get("$param.ObjectType_param")) - logging.log(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"))) - logging.log(db.table(vars.get("$param.ObjectRowId_param"), ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param"))).toSource()) - result.object(db.table(vars.get("$param.ObjectRowId_param"), ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), vars.get("$param.ObjectRowId_param")))); - } else { - logging.log(vars.get("$param.ObjectType_param").toSource()) - } - logging.log(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"))) - logging.log(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"))).toSource()) + result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param")))) } else { - logging.log(vars.get("$param.ObjectType_param").toSource()) - logging.log(vars.get("$param.ObjectRowId_param").toSource()) result.object([]); } diff --git a/entity/Object_entity/titleProcess.js b/entity/Object_entity/titleProcess.js new file mode 100644 index 0000000000..db324a8efc --- /dev/null +++ b/entity/Object_entity/titleProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.TITLE")) \ No newline at end of file diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index e174274981..272ebfddfe 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -36,19 +36,6 @@ ContextUtils.getContextName = function(pContextId) return pContextId; } -/** - * Get all contexts of the project. - * - * @return {String[][]} [ ["contextid", "contextName" ], [..., ...], ...] - */ -ContextUtils.getContexts = function() -{ - // TODO: The name is currently also the id. This may change. - return project.getDataModelNames(project.DATAMODEL_KIND_CONTEXT).map(function(contextName) { - return [contextName, ContextUtils.getContextName(contextName)]; - }); -} - /** * TODO: !!!temporary function until you can get fields from another Entity!!! */ @@ -93,7 +80,7 @@ ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField) ContextUtils.getNameSql = function(pContextId, pRowId) { var selectMap = ContextUtils._getSelectMap() - return SqlCondition.begin().andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][2], pRowId).buildSql("select " + selectMap[contextId][0] + " from " + selectMap[contextId][1], "1=2"); + return SqlCondition.begin().andPrepare(selectMap[pContextId][1] + "." + selectMap[pContextId][2], pRowId).buildSql("select " + selectMap[pContextId][0] + " from " + selectMap[pContextId][1], "1=2"); } /** -- GitLab