From 3b646d7fc237257b4674b97ed9e8ac576744cea6 Mon Sep 17 00:00:00 2001 From: "j.goderbauer" <j.goderbauer@adito.de> Date: Wed, 23 Jan 2019 07:30:33 +0100 Subject: [PATCH] =?UTF-8?q?[Projekt:=20Entwicklung=20-=20Neon][TicketNr.:?= =?UTF-8?q?=201030169][Einf=C3=BChrung=20von=20Aktivit=C3=A4ten=20und=20Ta?= =?UTF-8?q?sk]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entity/Document_entity/Document_entity.aod | 9 +++++ entity/Task_entity/Task_entity.aod | 27 ++++++++++++++- .../children/assignmentname_param/code.js | 3 ++ .../children/assignmentrowid_param/code.js | 4 +++ .../children/assignmenttable_param/code.js | 3 ++ .../recordcontainers/db/onDBInsert.js | 15 ++++++++ .../_____LANGUAGE_de/_____LANGUAGE_de.aod | 1 + neonContext/Task_context/Task_context.aod | 5 +++ neonView/TaskMain_view/TaskMain_view.aod | 34 +++++++++++++++++++ .../TaskPreview_view/TaskPreview_view.aod | 9 ++--- process/Sql_lib/process.js | 25 ++++++++++++++ 11 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js create mode 100644 entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js create mode 100644 entity/Task_entity/recordcontainers/db/onDBInsert.js create mode 100644 neonView/TaskMain_view/TaskMain_view.aod diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod index 28d4eccb4ac..8e6c9d0d6f8 100644 --- a/entity/Document_entity/Document_entity.aod +++ b/entity/Document_entity/Document_entity.aod @@ -8,6 +8,15 @@ <entityFields> <entityIncomingField> <name>#INCOMING</name> + <recordContainer>jdito</recordContainer> + <dependencies> + <entityDependency> + <name>6bbed1fb-7f22-420d-988e-7f9413c0b294</name> + <entityName>Task_entity</entityName> + <fieldName>MainDocument_dfo</fieldName> + <isOutgoing v="false" /> + </entityDependency> + </dependencies> </entityIncomingField> <entityField> <name>NAME</name> diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 539ef213f4c..4f64821ffc4 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -49,7 +49,7 @@ <name>EDITOR_RELATION_ID</name> <title>{$TASK_EDITOR}</title> <linkedContext>Pers_context</linkedContext> - <outgoingField>EditorPers_dfo</outgoingField> + <outgoingField>PersEditor_dfo</outgoingField> </entityField> <entityField> <name>START_DATE</name> @@ -126,11 +126,36 @@ <fieldName>#INCOMING</fieldName> </dependency> </entityOutgoingField> + <entityOutgoingField> + <name>MainDocument_dfo</name> + <title>Documents</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Document_entity</entityName> + <fieldName>#INCOMING</fieldName> + </dependency> + <children> + <entityParameter> + <name>AssignmentName_param</name> + <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js</code> + </entityParameter> + <entityParameter> + <name>AssignmentRowId_param</name> + <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js</code> + </entityParameter> + <entityParameter> + <name>AssignmentTable_param</name> + <code>%aditoprj%/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js</code> + </entityParameter> + </children> + </entityOutgoingField> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> <alias>Data_alias</alias> + <onDBInsert>%aditoprj%/entity/Task_entity/recordcontainers/db/onDBInsert.js</onDBInsert> <linkInformation> <linkInformation> <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name> diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js new file mode 100644 index 00000000000..3e4bf7585b2 --- /dev/null +++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentname_param/code.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("DOCUMENT"); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js new file mode 100644 index 00000000000..291121452f7 --- /dev/null +++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmentrowid_param/code.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.TASKID"));//TODO: sys.uid or similar? \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js new file mode 100644 index 00000000000..14275d9477b --- /dev/null +++ b/entity/Task_entity/entityfields/maindocument_dfo/children/assignmenttable_param/code.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("TASK"); \ No newline at end of file diff --git a/entity/Task_entity/recordcontainers/db/onDBInsert.js b/entity/Task_entity/recordcontainers/db/onDBInsert.js new file mode 100644 index 00000000000..664a8805970 --- /dev/null +++ b/entity/Task_entity/recordcontainers/db/onDBInsert.js @@ -0,0 +1,15 @@ +import("system.db"); +import("system.vars"); +import("system.neon"); +import("Sql_lib"); + +if (!vars.get("$field.CODE")) +{ + var maskingHelper = new SqlMaskingUtils(); + var newCodeNumber = db.cell("select " + maskingHelper.max("TASK.CODE") + " from TASK"); + newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) + if (isNaN(newCodeNumber)) + throw new TypeError();//TODO:add Message + + neon.setFieldValue("$field.CODE", ++newCodeNumber); +} \ No newline at end of file diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 2198463d021..e8d42b1531b 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -1705,6 +1705,7 @@ </entry> <entry> <key>private</key> + <value>privat</value> </entry> <entry> <key>waiting</key> diff --git a/neonContext/Task_context/Task_context.aod b/neonContext/Task_context/Task_context.aod index 42222db0928..afaf210f1dd 100644 --- a/neonContext/Task_context/Task_context.aod +++ b/neonContext/Task_context/Task_context.aod @@ -5,6 +5,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/neonContext/Task_context/documentation.adoc</documentation> <icon>VAADIN:TASKS</icon> + <mainview>TaskMain_view</mainview> <filterview>TaskFilter_view</filterview> <editview>TaskEdit_view</editview> <preview>TaskPreview_view</preview> @@ -22,5 +23,9 @@ <name>b9bd19b5-2a67-47a4-83cd-41ba30e81888</name> <view>TaskEdit_view</view> </neonViewReference> + <neonViewReference> + <name>83309ef0-d1c0-4f74-bb44-41fd8e054b4b</name> + <view>TaskMain_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod new file mode 100644 index 00000000000..4073f67d0a5 --- /dev/null +++ b/neonView/TaskMain_view/TaskMain_view.aod @@ -0,0 +1,34 @@ +<?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.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1"> + <name>TaskMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>c8294ae1-65d8-4cee-a003-931a4759c619</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>c8294ae1-65d8-4cee-a003-931a4759c619</name> + <entityField>#ENTITY</entityField> + <view>TaskPreview_view</view> + </neonViewReference> + <genericViewTemplate> + <name>details</name> + <entityField>#ENTITY</entityField> + <title>details</title> + <fields> + <entityFieldLink> + <name>fea59f13-750b-427d-bf33-cc1bead95446</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>6846f680-84ef-46da-a0ea-6797044cf693</name> + <entityField>MainDocument_dfo</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/TaskPreview_view/TaskPreview_view.aod b/neonView/TaskPreview_view/TaskPreview_view.aod index 78d974291b0..2eaf021b12e 100644 --- a/neonView/TaskPreview_view/TaskPreview_view.aod +++ b/neonView/TaskPreview_view/TaskPreview_view.aod @@ -17,6 +17,7 @@ </cardViewTemplate> <genericViewTemplate> <name>extendedData</name> + <showDrawer v="true" /> <entityField>#ENTITY</entityField> <fields> <entityFieldLink> @@ -39,6 +40,10 @@ <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name> <entityField>PRIORITY</entityField> </entityFieldLink> + <entityFieldLink> + <name>d9e4daef-84df-415c-9be7-3238c2760c07</name> + <entityField>PROTECTIONLEVEL</entityField> + </entityFieldLink> <entityFieldLink> <name>5bcbaa89-0826-4ef8-872d-bd68dbd8ef77</name> <entityField>TYPE</entityField> @@ -51,10 +56,6 @@ <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name> <entityField>EDITOR_RELATION_ID</entityField> </entityFieldLink> - <entityFieldLink> - <name>590d0c95-9cc6-44f7-9b64-37a3990531d2</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index bd7e326623e..5ca5911262d 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -505,6 +505,31 @@ SqlMaskingUtils.prototype.trim = function(field) { return resultStr; } +/** +* returns the max-value sql expressions depending on the database behind the given alias +* note that this function does not verifiy if the field (and type) usage is valid at all +* +* @param {String} field expression +* +* @return {String} sql-part that can be used in a select +*/ +SqlMaskingUtils.prototype.max = function(field) +{ + return "max(" + field + ")"; +} + +/** +* returns the min-value sql expressions depending on the database behind the given alias +* note that this function does not verifiy if the field (and type) usage is valid at all +* +* @param {String} field expression +* +* @return {String} sql-part that can be used in a select +*/ +SqlMaskingUtils.prototype.min = function(field) +{ + return "min(" + field + ")"; +} /** * masks the function cast of standard sql -- GitLab