From 41688b6bfad808b5de76a86c22f7eef4fc912cb0 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Tue, 19 Feb 2019 11:01:26 +0100 Subject: [PATCH] fix activity-relations --- .../ActivityLink_entity.aod | 27 +++++++------------ .../entityfields/activity_id/valueProcess.js | 4 +++ .../activitylinkid/valueProcess.js | 7 +++++ .../object_rowid/displayValueProcess.js | 7 +++++ .../recordcontainers/db/conditionProcess.js | 9 ++++--- entity/Activity_entity/Activity_entity.aod | 10 +++---- .../links/children/activityid_param/code.js | 4 +++ .../recordcontainers/db/conditionProcess.js | 1 + .../ActivityLinkFilter_view.aod | 1 + 9 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js create mode 100644 entity/ActivityLink_entity/entityfields/activitylinkid/valueProcess.js create mode 100644 entity/ActivityLink_entity/entityfields/object_rowid/displayValueProcess.js create mode 100644 entity/Activity_entity/entityfields/links/children/activityid_param/code.js diff --git a/entity/ActivityLink_entity/ActivityLink_entity.aod b/entity/ActivityLink_entity/ActivityLink_entity.aod index be409330d53..bf6bac7e1b7 100644 --- a/entity/ActivityLink_entity/ActivityLink_entity.aod +++ b/entity/ActivityLink_entity/ActivityLink_entity.aod @@ -10,9 +10,11 @@ </entityProvider> <entityField> <name>ACTIVITYLINKID</name> + <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/activitylinkid/valueProcess.js</valueProcess> </entityField> <entityField> <name>OBJECT_TYPE</name> + <title>Object type</title> <consumer>Contexts</consumer> <linkedContext>Context</linkedContext> <displayValueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess> @@ -22,22 +24,12 @@ <title>Beziehung</title> <consumer>Objects</consumer> <linkedContextProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess> + <displayValueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>ACTIVITY_ID</name> + <valueProcess>%aditoprj%/entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js</valueProcess> </entityField> - <entityParameter> - <name>ObjectRowid_param</name> - <expose v="true" /> - <triggerRecalculation v="true" /> - <description>PARAMETER</description> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> - <expose v="true" /> - <triggerRecalculation v="true" /> - <description>PARAMETER</description> - </entityParameter> <entityProvider> <name>Link</name> <fieldType>DEPENDENCY_IN</fieldType> @@ -54,11 +46,7 @@ </dependencies> <children> <entityParameter> - <name>ObjectRowid_param</name> - <expose v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> + <name>ActivityId_param</name> <expose v="true" /> </entityParameter> </children> @@ -88,6 +76,11 @@ <fieldName>#PROVIDER</fieldName> </dependency> </entityConsumer> + <entityParameter> + <name>ActivityId_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js b/entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js new file mode 100644 index 00000000000..3d7f987d124 --- /dev/null +++ b/entity/ActivityLink_entity/entityfields/activity_id/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.ActivityId_param")) \ No newline at end of file diff --git a/entity/ActivityLink_entity/entityfields/activitylinkid/valueProcess.js b/entity/ActivityLink_entity/entityfields/activitylinkid/valueProcess.js new file mode 100644 index 00000000000..86ef789e064 --- /dev/null +++ b/entity/ActivityLink_entity/entityfields/activitylinkid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/ActivityLink_entity/entityfields/object_rowid/displayValueProcess.js b/entity/ActivityLink_entity/entityfields/object_rowid/displayValueProcess.js new file mode 100644 index 00000000000..4bec272246c --- /dev/null +++ b/entity/ActivityLink_entity/entityfields/object_rowid/displayValueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.db"); +import("system.result"); +import("Context_lib"); + +if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) + result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID")))); \ No newline at end of file diff --git a/entity/ActivityLink_entity/recordcontainers/db/conditionProcess.js b/entity/ActivityLink_entity/recordcontainers/db/conditionProcess.js index af5991c0cd5..f5f56bc8bb2 100644 --- a/entity/ActivityLink_entity/recordcontainers/db/conditionProcess.js +++ b/entity/ActivityLink_entity/recordcontainers/db/conditionProcess.js @@ -1,10 +1,13 @@ +import("system.logging"); +import("system.vars"); import("system.db"); import("system.result"); import("Sql_lib"); +logging.log("GET: " + vars.get("$param.ActivityId_param")) + var cond = SqlCondition.begin() - .andPrepareVars("ACTIVITYLINK.OBJECT_ROWID", "$param.ObjectRowid_param") - .andPrepareVars("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectType_param"); + .andPrepareVars("ACTIVITYLINK.ACTIVITY_ID", "$param.ActivityId_param"); //TODO: use a preparedCondition when available #1030812 #1034026 -result.string(db.translateCondition(cond.build("1 = 1"))); \ No newline at end of file +result.string(db.translateCondition(cond.build("1 = 0"))); \ No newline at end of file diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index 529db43dc53..52c7b770790 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -147,7 +147,6 @@ </entityField> <entityParameter> <name>ActivityId_param</name> - <expose v="true" /> <mandatory v="false" /> <description>PARAMETER</description> </entityParameter> @@ -184,12 +183,9 @@ </dependency> <children> <entityParameter> - <name>ObjectRowid_param</name> - <code>%aditoprj%/entity/Activity_entity/entityfields/links/children/objectrowid_param/code.js</code> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> - <code>%aditoprj%/entity/Activity_entity/entityfields/links/children/objecttype_param/code.js</code> + <name>ActivityId_param</name> + <code>%aditoprj%/entity/Activity_entity/entityfields/links/children/activityid_param/code.js</code> + <expose v="true" /> </entityParameter> </children> </entityConsumer> diff --git a/entity/Activity_entity/entityfields/links/children/activityid_param/code.js b/entity/Activity_entity/entityfields/links/children/activityid_param/code.js new file mode 100644 index 00000000000..a8267b62060 --- /dev/null +++ b/entity/Activity_entity/entityfields/links/children/activityid_param/code.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.ACTIVITYID")); \ No newline at end of file diff --git a/entity/Activity_entity/recordcontainers/db/conditionProcess.js b/entity/Activity_entity/recordcontainers/db/conditionProcess.js index f8ca95a041f..9c8391b37c4 100644 --- a/entity/Activity_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Activity_entity/recordcontainers/db/conditionProcess.js @@ -9,6 +9,7 @@ if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars. var activityLinkCond = SqlCondition.begin().andPrepareVars("ACTIVITYLINK.OBJECT_ROWID", "$param.RowId_param") .andPrepareVars("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectId_param"); + // TODO: more performant way than IN. Maybe a join?? cond.and(db.translateStatement(activityLinkCond.buildSql("ACTIVITY.ACTIVITYID in (select ACTIVITYLINK.ACTIVITY_ID from ACTIVITYLINK", "1=2", ")"))) } diff --git a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod index 597ac9502a5..d7491b7ecf0 100644 --- a/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod +++ b/neonView/ActivityLinkFilter_view/ActivityLinkFilter_view.aod @@ -11,6 +11,7 @@ <children> <tableViewTemplate> <name>ActivityLinkFilter_template</name> + <autoNewRow v="true" /> <entityField>#ENTITY</entityField> <columns> <neonTableColumn> -- GitLab