diff --git a/.liquibase/Data_alias/basic/2020.1.0/ExportTemplate/create_ExportTemplateTables.xml b/.liquibase/Data_alias/basic/2020.1.0/ExportTemplate/create_ExportTemplateTables.xml index 395d53acca0f37ec1a60dd814a6bbe496bcba984..8db11d6d41cd74caa351d90fa3b7ec99178d41da 100644 --- a/.liquibase/Data_alias/basic/2020.1.0/ExportTemplate/create_ExportTemplateTables.xml +++ b/.liquibase/Data_alias/basic/2020.1.0/ExportTemplate/create_ExportTemplateTables.xml @@ -12,8 +12,8 @@ <column name="FIELDDELIMITER" type="VARCHAR(36)"/> <column name="ISOLANGUAGE" type="CHAR(3)"/> <column name="DESCRIPTION" type="VARCHAR(1337)"/> - <column name="DATE_EDIT" type="TIMESTAMP(9)"/> - <column name="DATE_NEW" type="TIMESTAMP(9)"/> + <column name="DATE_EDIT" type="DATETIME"/> + <column name="DATE_NEW" type="DATETIME"/> <column name="USER_EDIT" type="VARCHAR(50)"/> <column name="USER_NEW" type="VARCHAR(50)"/> </createTable> diff --git a/.liquibase/Data_alias/basic/2020.1.0/changelog.xml b/.liquibase/Data_alias/basic/2020.1.0/changelog.xml index acdab8c9648ae6b5cc3b6ae8ac7eefb2df311e4e..1a5cbcf126384fba33f6967c58d77ee72ab40449 100644 --- a/.liquibase/Data_alias/basic/2020.1.0/changelog.xml +++ b/.liquibase/Data_alias/basic/2020.1.0/changelog.xml @@ -10,4 +10,5 @@ <include relativeToChangelogFile="true" file="changeType_productGroupCodeId.xml" /> <include relativeToChangelogFile="true" file="add_WorkflowSignal_variables.xml"/> <include relativeToChangelogFile="true" file="AlterTablesForTranslation/changelog.xml"/> + <include relativeToChangelogFile="true" file="update_Salutation_headline.xml"/> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/update_Salutation_headline.xml b/.liquibase/Data_alias/basic/2020.1.0/update_Salutation_headline.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1fb36eafde4081e707538fc607fd5f10b699b82 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/update_Salutation_headline.xml @@ -0,0 +1,38 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id="45b6a4a0-f623-412f-ad57-d2fa1db09f62"> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Dr. Ing. {fn} {ln}"/> + <where>SALUTATIONID = '0500939e-5820-457d-a95f-6835b9501df9'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Prof. Dr. {fn} {ln}"/> + <where>SALUTATIONID = '1f19ba34-8346-4620-a10e-fb39fdd0be9b'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Präsident {fn} {ln}"/> + <where>SALUTATIONID = '4b9af3f4-f34a-4170-a28c-ffdbca80c4d3'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Professor {fn} {ln}"/> + <where>SALUTATIONID = '5d9ad542-27b8-4dec-bcbd-a2c7d223f012'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Prof. {fn} {ln}"/> + <where>SALUTATIONID = '75f4f04f-1877-425d-8d5d-56604d0040b2'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Dr. {fn} {ln}"/> + <where>SALUTATIONID = '76fe57c0-cf68-4240-ba6d-eb7d52f46317'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn Bürgermeister {fn} - {ln}"/> + <where>SALUTATIONID = '8feaf27b-1fae-4d8c-a742-9cd023f46409'</where> + </update> + <update tableName="SALUTATION"> + <column name="HEADLINE" value="Herrn {fn} {ln}"/> + <where>SALUTATIONID = 'c98c8644-9e00-4715-a775-827a364f5cef'</where> + </update> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/activity.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/activity.xml index 0841eef8f6460bdc336baaaceb6eab057d601e87..8262731b75b6a2217d60e0be416960aadf233864 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/activity.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/activity.xml @@ -174,7 +174,7 @@ <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/> <column name="DIRECTION" value="o"/> <column name="ENTRYDATE" valueDate="2018-08-04T02:02:52"/> - <column name="INFO" value="Messeeinladung und besondere Eintrittkarten zukommen lassen. Hat sich sehr gefreut"/> + <column name="INFO" value="<p>Messeeinladung und besondere Eintrittkarten zukommen lassen. Hat sich sehr gefreut</p> "/> <column name="RESPONSIBLE" value="Admin"/> <column name="SUBJECT" value="Einladung Messe"/> <column name="USER_NEW" value="Admin"/> @@ -412,7 +412,7 @@ <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/> <column name="DIRECTION" value="i"/> <column name="ENTRYDATE" valueDate="2018-08-12T02:02:52"/> - <column name="INFO" value="Terminvorschlag gesendet. Aufgabe gestellt"/> + <column name="INFO" value="<p>Terminvorschlag gesendet. Aufgabe gestellt</p> "/> <column name="RESPONSIBLE" value="Admin"/> <column name="SUBJECT" value="Präsentation: Terminvorschlag"/> <column name="USER_NEW" value="Admin"/> @@ -484,7 +484,7 @@ <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/> <column name="DIRECTION" value="o"/> <column name="ENTRYDATE" valueDate="2018-06-03T02:41:22"/> - <column name="INFO" value="Angebot nachfassen, wir liegen vor Wettbewerb"/> + <column name="INFO" value="<p>Angebot nachfassen, wir liegen vor Wettbewerb</p> "/> <column name="RESPONSIBLE" value="Admin"/> <column name="SUBJECT" value="Angebot nachfassen"/> <column name="USER_NEW" value="Admin"/> @@ -700,7 +700,7 @@ <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/> <column name="DIRECTION" value="i"/> <column name="ENTRYDATE" valueDate="2018-02-22T03:41:22"/> - <column name="INFO" value="erworben von Roboterabteilung"/> + <column name="INFO" value="<p>erworben von Roboterabteilung</p> "/> <column name="RESPONSIBLE" value="Admin"/> <column name="SUBJECT" value="Kauf der Maschine von KUKA, Augsburg"/> <column name="USER_NEW" value="Admin"/> @@ -711,7 +711,7 @@ <column name="DATE_NEW" valueDate="2019-05-13T01:16:36"/> <column name="DIRECTION" value="o"/> <column name="ENTRYDATE" valueDate="2018-06-03T02:41:22"/> - <column name="INFO" value="Spezifikation ausgefüllt und abgeschickt"/> + <column name="INFO" value="<p>Spezifikation ausgefüllt und abgeschickt</p> "/> <column name="RESPONSIBLE" value="Admin"/> <column name="SUBJECT" value="Muster"/> <column name="USER_NEW" value="Admin"/> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml index 41dac3bf114796915ea3eb8883eb5d96d67517ec..fef08cdf38b829dd95120db15d3fdc5ac0357aab 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml @@ -63,29 +63,30 @@ <column name="ZIP" value="80807"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Eichenallee"/> + <column name="ADDRESS" value="Freiberger Str."/> <column name="ADDRESSID" value="1a20347c-ab56-41cb-a7dc-bd61de7e2106"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="45"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Dresden"/> <column name="CONTACT_ID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:46:28"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80228"/> + <column name="ZIP" value="01159"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Dotterblumenstrasse"/> + <column name="ADDRESS" value="Regensburger Straße"/> <column name="ADDRESSID" value="25360df5-104e-4903-8440-f848d025a24b"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> + <column name="BUILDINGNO" value="45"/> <column name="CITY" value="Ingolstadt"/> <column name="CONTACT_ID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:49:41"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="85051"/> + <column name="ZIP" value="85055"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hildburghausen"/> @@ -103,7 +104,7 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Grassstraße"/> + <column name="ADDRESS" value="Landshuter Str."/> <column name="ADDRESSID" value="2a03d8cb-ffb7-4d04-b8b2-e55354380fb7"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="32"/> @@ -111,12 +112,12 @@ <column name="CONTACT_ID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:42:01"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> <column name="ZIP" value="84144"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Baustraße"/> + <column name="ADDRESS" value="Bolzstraße"/> <column name="ADDRESSID" value="35e93f95-d723-46d6-955f-9192e41e3d83"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="64"/> @@ -129,7 +130,7 @@ <column name="ZIP" value="70173"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Leasingstrasse"/> + <column name="ADDRESS" value="Torstraße"/> <column name="ADDRESSID" value="36723051-8a5f-47d3-8185-71c82d463eb3"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="78"/> @@ -139,7 +140,7 @@ <column name="DATE_NEW" valueDate="2019-05-17T09:44:21"/> <column name="PROVINCE" value="Deutschland"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="10409"/> + <column name="ZIP" value="10115"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Neustadt"/> @@ -157,17 +158,17 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Stahlstraße"/> + <column name="ADDRESS" value="Königstraße"/> <column name="ADDRESSID" value="4eb7039a-1515-4545-86b4-85426a67fcd5"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="24"/> + <column name="BUILDINGNO" value="4"/> <column name="CITY" value="Hamburg"/> <column name="CONTACT_ID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Hamburg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="20095"/> + <column name="ZIP" value="22767 "/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Büsingstrasse"/> @@ -184,22 +185,22 @@ <column name="ZIP" value="85230"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Muster-Straße"/> + <column name="ADDRESS" value="Sandstraße"/> <column name="ADDRESSID" value="6a3f6232-7a66-4a72-8d2d-66a3a9f1b9ea"/> <column name="ADDRIDENTIFIER" value="Tor 1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="3"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Nürnberg"/> <column name="CONTACT_ID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-13T01:16:38"/> <column name="DISTRICT" value="Oberbayern"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80807"/> + <column name="ZIP" value="90443"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Hafenstraße"/> + <column name="ADDRESS" value="Friedrichshafen"/> <column name="ADDRESSID" value="7d116e5e-0c6b-475b-91e7-7cae94b65321"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="12"/> @@ -209,7 +210,7 @@ <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/> <column name="PROVINCE" value="Deutschland"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="88045"/> + <column name="ZIP" value="88046"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Grosse Praesidenten Str."/> @@ -253,17 +254,17 @@ <column name="ZIP" value="18074"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Kronenstraße"/> + <column name="ADDRESS" value="Fliederstraße"/> <column name="ADDRESSID" value="8923fff3-4294-4892-b3f3-8470ae89555e"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="45"/> - <column name="CITY" value="Landshut"/> + <column name="BUILDINGNO" value="4"/> + <column name="CITY" value="Leonberg"/> <column name="CONTACT_ID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:40:30"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Baden-Württemberg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="84028"/> + <column name="ZIP" value="71229"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hauptstraße"/> @@ -308,19 +309,19 @@ <column name="ZIP" value="80456"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Rudower Strasse"/> + <column name="ADDRESS" value="Oeder Weg"/> <column name="ADDRESSID" value="90726b19-f23c-42dd-847a-7eacf4c71d18"/> <column name="ADDRIDENTIFIER" value="Tor 1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="6"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Frankfurt am Main"/> <column name="CONTACT_ID" value="fd082db5-be43-4219-a705-588f9c06e59b"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-13T01:16:38"/> <column name="DISTRICT" value="Oberbayern"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="54595"/> + <column name="ZIP" value="60318"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hildburghausen"/> @@ -378,7 +379,7 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Großstraße"/> + <column name="ADDRESS" value="Am Alten Viehmarkt"/> <column name="ADDRESSID" value="da05619e-47c6-4144-a698-f0f830d9f755"/> <column name="ADDR_TYPE" value="DELIVERADDR"/> <column name="BUILDINGNO" value="6"/> @@ -391,7 +392,7 @@ <column name="ZIP" value="84028"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Lagerstraße"/> + <column name="ADDRESS" value="Karlstraße"/> <column name="ADDRESSID" value="dd1a1831-b05a-41a7-a4e9-d73be9d77934"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="2"/> @@ -417,32 +418,32 @@ <column name="ZIP" value="28103"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Birkenstrasse"/> + <column name="ADDRESS" value="Julius-Leber-Straße"/> <column name="ADDRESSID" value="e1aef1b7-569b-46be-bc50-f02332a42ef1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="78"/> - <column name="CITY" value="Augsburg"/> + <column name="BUILDINGNO" value="5"/> + <column name="CITY" value="Hamburg"/> <column name="CONTACT_ID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:50:42"/> - <column name="PROVINCE" value="Bayern"/> + <column name="PROVINCE" value="Hamburg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="86130"/> + <column name="ZIP" value="22765"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Grabweg"/> + <column name="ADDRESS" value="Blumenstraße"/> <column name="ADDRESSID" value="ea50cb02-7d4d-433d-9cd3-c262d5a0bb27"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="17a"/> - <column name="CITY" value="Neumünster"/> + <column name="BUILDINGNO" value="11"/> + <column name="CITY" value="Regensburg"/> <column name="CONTACT_ID" value="449080f6-b714-4189-a261-37439d0d4010"/> <column name="COUNTRY" value="DE"/> <column name="DATE_EDIT" valueDate="2019-06-07T02:49:33"/> <column name="DATE_NEW" valueDate="2019-05-17T10:04:16"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Bayern"/> <column name="USER_EDIT" value="Admin"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="24534"/> + <column name="ZIP" value="93055"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Spresstrasse"/> @@ -459,7 +460,7 @@ <column name="ZIP" value="33739"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Lützowplatz"/> + <column name="ADDRESS" value="Gotthardstraße"/> <column name="ADDRESSID" value="f54606ee-ecdd-4859-ad7d-aa096c5e9596"/> <column name="ADDRIDENTIFIER" value="Tor 4"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> @@ -473,7 +474,7 @@ <column name="PROVINCE" value="Bayern"/> <column name="USER_EDIT" value="Admin"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80807"/> + <column name="ZIP" value="80689"/> </insert> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/salutation.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/salutation.xml index e7537efd60b1b160c4b39e5000410371a5caa391..157efcc8d25bb71741a87f6b4ab0de8c26f8f8d4 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/salutation.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/salutation.xml @@ -3,7 +3,7 @@ <changeSet author="autogenerated" id="fd073db7-3e03-4f39-8d7b-d28692863574"> <delete tableName="salutation"/> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Dr. Ing. {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Dr. Ing. {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Dr. Ing. {ln}"/> <column name="SALUTATION" value="Herr"/> @@ -42,7 +42,7 @@ <column name="SORT" valueNumeric="18"/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Prof. Dr. {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Prof. Dr. {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Professor"/> <column name="SALUTATION" value="Herr"/> @@ -101,7 +101,7 @@ <column name="TITLE" value="Dr. Ing."/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Präsident {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Präsident {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Präsident"/> <column name="SALUTATION" value="Herr"/> @@ -151,7 +151,7 @@ <column name="TITLE" value="Dr. Ing."/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Professor {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Professor {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Professor"/> <column name="SALUTATION" value="Herr"/> @@ -197,7 +197,7 @@ <column name="SORT" valueNumeric="4"/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Prof. {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Prof. {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Professor"/> <column name="SALUTATION" value="Herr"/> @@ -217,7 +217,7 @@ <column name="TITLE" value="Dr. Ing."/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Dr. {fn} {ln}"/> + <column name="HEADLINE" value="Herrn Dr. {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Dr. {ln}"/> <column name="SALUTATION" value="Herr"/> @@ -236,7 +236,7 @@ <column name="SORT" valueNumeric="16"/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr Bürgermeister {fn} - {ln}"/> + <column name="HEADLINE" value="Herrn Bürgermeister {fn} - {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr Bürgermeister"/> <column name="SALUTATION" value="Herr"/> @@ -265,7 +265,7 @@ <column name="SORT" valueNumeric="8"/> </insert> <insert tableName="salutation"> - <column name="HEADLINE" value="Herr {fn} {ln}"/> + <column name="HEADLINE" value="Herrn {fn} {ln}"/> <column name="ISOLANGUAGE" value="deu"/> <column name="LETTERSALUTATION" value="Sehr geehrter Herr {ln}"/> <column name="SALUTATION" value="Herr"/> diff --git a/.liquibase/_____SYSTEMALIAS/basic/2020.0.2/changelog.xml b/.liquibase/_____SYSTEMALIAS/basic/2020.0.2/changelog.xml deleted file mode 100644 index 953f0a414ac0746d874fea860fc99e189b9f06d5..0000000000000000000000000000000000000000 --- a/.liquibase/_____SYSTEMALIAS/basic/2020.0.2/changelog.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="" id=""> - - </changeSet> -</databaseChangeLog> diff --git a/.liquibase/_____SYSTEMALIAS/basic/Workflow/webserviceUser_flowableIdmService.xml b/.liquibase/_____SYSTEMALIAS/basic/Workflow/webserviceUser_flowableIdmService.xml new file mode 100644 index 0000000000000000000000000000000000000000..0a2ee09d6b8b500b6cedb743a27d400a0529bd1e --- /dev/null +++ b/.liquibase/_____SYSTEMALIAS/basic/Workflow/webserviceUser_flowableIdmService.xml @@ -0,0 +1,86 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id=""> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="BASIC"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:21:02"/> + <column name="ID" value="e8bad787-35c6-44e4-8fc2-7bb76b8d104c"/> + <column name="PROPVAL" value="1589448062175"/> + <column name="PROPKEY" value="lastModified"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:18:32"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="BASIC"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:18:32"/> + <column name="ID" value="9e9282e3-eceb-4daa-ab9e-8bc10d0826c5"/> + <column name="PROPVAL" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="PROPKEY" value="name"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:18:32"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="BASIC"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:18:55"/> + <column name="ID" value="e684981a-0dad-4c70-a1ba-3728e9b8d634"/> + <column name="PROPVAL" value="flowableIdmService"/> + <column name="PROPKEY" value="title"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:18:32"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="BASIC"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:19:46"/> + <column name="ID" value="40dc0beb-3e8c-443f-9f2d-d6e3791578e2"/> + <column name="PROPVAL" value="flowableIdm@domain.local"/> + <column name="PROPKEY" value="email"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:19:46"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="ROLE"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:21:02"/> + <column name="ID" value="7a4b30eb-945e-40d2-85b9-012b0e39a7d0"/> + <column name="PROPVAL" value="INTERNAL_WEBSERVICE"/> + <column name="PROPKEY" value="roleNames"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:21:02"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="BASIC"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:19:23"/> + <column name="ID" value="212c7c61-dc52-49ed-a019-2b22ac4d921e"/> + <column name="PROPVAL" value="flowableIdm@domain.local"/> + <column name="PROPKEY" value="calendarID"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:19:23"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="PASSWORD"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:20:55"/> + <column name="ID" value="bc51d51a-e38d-4d18-8c7b-8d5e7e8f0efc"/> + <column name="PROPVAL" value="SHA256S:5DD06838D4B56748E038A6B1CA04A51DE3678CA3E02FFB5489AAF79D9F179EAD:37E8982A02AB059E474538FE69760CA0434AA1D5F33810CDF247851D29344238"/> + <column name="PROPKEY" value="password"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:20:55"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="GROUPID" value="PASSWORD"/> + <column name="NAME" value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:20:55"/> + <column name="ID" value="03f02f1c-ce3d-4a87-83a4-090bf430f6ca"/> + <column name="PROPVAL" value="1589448055732"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="DATE_NEW" valueDate="2020-05-14T11:20:55"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_6283cfd9-cf4d-4711-95a1-9b0d74526e01" /> + </whereParams> + </delete> + </rollback> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee index 3be0dfa1a18f8d33f1c593c88e952b6a264a1ab3..f6b1d7441cd9c9098fcd3cb7a243f1d8246809b3 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee +++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee @@ -1,24 +1,29 @@ -FCC: imap://daniel.tran%40mailbox.org@imap.mailbox.org/Sent X-Identity-Key: id1 X-Account-Key: account1 -To: test@test.de -From: Daniel Tran <daniel.tran@mailbox.org> Subject: Angebotsanfrage -Message-ID: <7a91719a-d935-2527-39b9-af1bd6f2279d@mailbox.org> -Date: Mon, 23 Mar 2020 15:32:05 +0100 +From: Johannes Goderbauer <j.goderbauer@adito.de> +Message-ID: <c23553b0-50b9-baf7-00e4-ff7e1170e6cd@adito.de> +Date: Tue, 26 May 2020 10:47:18 +0200 X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0; attachmentreminder=0; deliveryformat=4 -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 - Thunderbird/68.4.1 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 + Thunderbird/68.2.2 MIME-Version: 1.0 -Content-Type: multipart/related; - boundary="------------00BB79588E3CE6482B5F269C" -Content-Language: de-DE +Content-Type: multipart/mixed; + boundary="----=_Part_6533_1502248680.1571231060707" -This is a multi-part message in MIME format. ---------------00BB79588E3CE6482B5F269C -Content-Type: text/html; charset=utf-8 -Content-Transfer-Encoding: 8bit +------=_Part_6533_1502248680.1571231060707 +Content-Type: multipart/alternative; + boundary="----=_Part_6534_297348878.1571231060707" + +------=_Part_6534_297348878.1571231060707 +Content-Type: multipart/related; + boundary="----=_Part_6535_946016905.1571231060707" + +------=_Part_6535_946016905.1571231060707 +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline <html> <head> @@ -29,113 +34,151 @@ Content-Transfer-Encoding: 8bit <div dir="ltr" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif"> - <p>{@letterSalutation@}</p> - besten Dank für Ihre Anfrage.<br> - Im Folgenden bieten wir Ihnen gerne die gewünschten + {@letterSalutation@}, + <p/> + besten Dank f=C3=BCr Ihre Anfrage.<br> + Im Folgenden bieten wir Ihnen gerne die gew=C3=BCnschten Produkte/Dienstleistungen an.<br> - Wir freuen uns auf Ihre Bestätigung des Angebots und stehen Ihnen - bei Rückfragen gerne zur Verfügung. - <p>Mit freundlichen Grüßen</p> - <div>{@senderName@}</div> - <div><br> - {@senderFullAddress@}</div> - <div><br> - FON: {@senderPhone@}</div> - <div>E-Mail: {@senderEmail@}</div> - <div>Web: <span lang="EN-US"><a href="https://www.adito.de" - target="_blank"><span lang="DE">www.adito.de</span></a></span> - <br> -  </div> -  - <div><span lang="EN-US"><a - href="https://www.adito.de/?utm_source=signatur_startseite_logo" - target="_blank"><span style="color:windowtext; - text-decoration:none" lang="DE"><img - src="cid:part2.55E5AA4F.D41229A8@mailbox.org" - id="Bild_x0020_1" class="ms-rte-paste-setimagesize" - style="width:2.0833in; height:.5in" width="200" - height="48" border="0"></span><span lang="DE"><br> - </span></a></span><br> - ADITO Software GmbH | Geschäftsführer: Heinz Boesl, Johannes - Boesl, Tobias Mirwald<br> - Registergericht AG Landshut HRB 2403 | Ust-IdNr. DE 128946565 <br> - <br> - <span lang="EN-US"><a - href="https://www.adito.de/knowhow/blog/?utm_source=signatur_blog" - target="_blank"><span lang="DE">CRM Blog</span></a></span> | - <span lang="EN-US"><a -href="https://www.adito.de/crm-akademie/webinar.html?utm_source=signatur_webinare" - target="_blank"><span lang="DE">Webinare</span></a></span> | - <span lang="EN-US"><a -href="https://www.adito.de/crm-anbieter/crm-messen-veranstaltungen.html?utm_source=signatur_events" - target="_blank"><span lang="DE">Events</span></a> </span></div> - <div><span style="color:white">@@SPNR</span></div> - <p><br> + Wir freuen uns auf Ihre Best=C3=A4tigung des Angebots und stehen Ihnen + bei R=C3=BCckfragen gerne zur Verf=C3=BCgung. + <br/> + <br>Mit freundlichen Gr=C3=BC=C3=9Fen=20 + <br>{@senderName@} + <br/><br/> + <p> + <b>{@senderOrgname@}</b> + <br/>{@senderFullAddress@} + <br/> + <br/>FON: {@senderPhone@} + <br/>E-Mail: {@senderEmail@} + <br/>Web: <a href=3D"https://www.meineFirma.de">www.meineFirma.de</a> + </p> + <br/><br/> + <a href=3D"https://www.adito.de/?utm_source=3Dsignatur_startseite_logo"> + <img border=3D0 width=3D206 height=3D81 style=3D'width:2.1458in;height:.843= + 7in' id=3D"Grafik_x0020_1" src=3D"cid:image001.png@01D5842B.05639490"> + </a> + <br/><br/> + <p>{@senderOrgname@}| Gesch=C3=A4ftsf=C3=BChrer: Harold Smith + <br>Amtsgericht Landshut HRB 182038 + <br> + <br> + + </span> + + <a href=3D"https://www.adito.de/knowhow/blog/?utm_source=3Dsignatur_blog" t= + arget=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>CRM Blog + + </span> + + </a> + + <span lang=3DDE> |=20 + + </span> + + <a href=3D"https://www.adito.de/crm-akademie/webinar.html?utm_source=3Dsign= + atur_webinare" target=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>Webinare + + </span> + + </a> + + <span lang=3DDE> |=20</span> + + <a href=3D"https://www.adito.de/crm-anbieter/crm-messen-veranstaltungen.htm= + l?utm_source=3Dsignatur_events" target=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>Events + + </span> + + </a>=20 + + </p> - </div> </body> -</html> ---------------00BB79588E3CE6482B5F269C -Content-Type: image/png; - name="elploafdhcnceakm.png" +</html> +------=_Part_6535_946016905.1571231060707 +Content-Type: image/png; name=image001.png Content-Transfer-Encoding: base64 -Content-ID: <part2.55E5AA4F.D41229A8@mailbox.org> -Content-Disposition: inline; - filename="elploafdhcnceakm.png" - -iVBORw0KGgoAAAANSUhEUgAAAMgAAAAwCAYAAABUmTXqAAAK/klEQVR4nO2de2wcxR3Hh4ZH -S4CQECtg381viGibCCiUpLSIAGlwExzw+eY3gVIeKhQqCJQQEAWKqgYq0QeoUNJSexdCRapC -cXkUmdh7COSGhDo8pCqt0qa1jjh3O8MjBAItEJLA9Q/n3LOzs7uz57tLYD7ST/5nd36Pme/O -7uzOmZDq2Y84uTxxvXdHmZP72zi0bbHs43T1thM3VwqwtxsdmsXSeFzvEY1AXml0aBZLY1ne -20Tc3AdWIBZLEE7fEo04SpNczwrE8inHya3TCcTOIJZPN519LEQcJXLfaisQy6cYJ3dzqEAe -GPg3IYQUyYLb1HTxkmL4wh4G4iUFor+fzN2/0elYLOOL420IFcj9f9lICCE+aXtWMVEKMx/w -h41Ox2IZP+59amaoONxcidw/8C9CCJFk4UNRAlGAOwdJ20GNTstiGR8c7/ZxFYidRSyfKFxv -aLwFopjY0U3IhEanZrFUR2fvqZHiSCaQkmT480anZ7FUh5v7Y60Eopgoqeb2qY1O0WJJhuMc -QJzc+zUVCBWdjU7TYklGV++iWOKoEIhP2v5gJBAmSn4LP6LRqVos5ri5VbEFsmJdWSC9avoi -I4FIECsanarFYsadKycS19sVXyBr84QQ4pOzl6pmNBKIYqKUn9w6qdEpWyzx6eq7LLY43FyJ -3N+/qXyqJJn/mgpEgniokelaLGa4Xr+RQNynXy+fWiTn3GgqEMVEqZjKHNPIlC2WeNzlTTET -R65EHO/FyiYUiFcTzCI9jUrZYomPm7vBWCBdT19U2YRP8Qo7i1g+mcT5tGSUebvIvd2HjG1G -gthqPIsw8adGpGyxxMPxTjKePVwv8NYo6SwyBHxmvdO2WOLheHcbC6Sz7xJdc4qJbcYiAXyq -jhlbLAY4njK+vVree5iuOUnxmiSziKR4aj3Ttliiifvl7mhbFdWsAlTms4h4qR4p6/CBz/Np -9swoM223mFowJU67UVZI4+kq3XGaonyOAjxpE8uyqny3YKoi91PGI8YwU83tdGx8g1PaDiuk -M7OLwFEx/IEPeLti6EjABxTgSgn4uALxWKVJwCck4MMS8AEJwpXA75AUlyngFyrK51TmFcQQ -tB89BO1HF9L8uOjtF67nmq9eeWdFdYwCvCDJLOIDPyWq7VqgAC+PHSPl3zZpuwhiYZJaxLyo -vKIAV+rqFuZbAr+hfJwE8VbNYhzp29Eb5hSIu2riF8RHCsRjQaujkuKpkvKf+hSvkCC+Lxk/ -P7z3nNy2BDPIs8TxniFO7ndhTSd5L9KoWcSkoySIrUZtU9Fa68G3e8B/x8S3BH51Rf6DtReI -uP7//nBtzevBcPsrRyGUffotmPIpP0cBckX5Ep/yc33Kz9H3XGfvvATiGLHDXa8UNjB8hpck -K2R9ZxGficXGMTK8JHb7NHtmPQSimCgpmp0V17fPxOLycRLwnzUXCOPXDceEi+pWD8BHyzkq -JmZIKlqLKX6GArxcpvGbhTR+Rd9zjvdENQLZL8YPx0mGBfOkxMtxB994oJh4xzRGCfhm3Pbr -KpCKARHle5RAmNhc+/hw6XC98YV61UMy3F5+zriVkM8owAsUFdd2EzJBMn6ppOJHwb129xOH -VyMO4uZi/XDc8MOXeWI+8HlxB2A1KCquDRlsqxTD1XqR7HlLE4R2kAJ+rBi+G9ck4HsxhPv2 -Jjb3s5G+xwhEAeZrPlh31ytyAQdwp2L42u7nq/zw30rDvALMS0A5XJtwv4V0ZvZIns3tU2Ua -M5Lx832KizZTMT2419y+q6oWSMQPx0kQz4cNsAjlF5IN+fhsIMceGFLgd0aKCvhxcIeLrZWD -UYdukErANwePbGvaODVzaBzbTM+eXEhnZkvgVysmdoTUb0aU77EC2UzF9EKaH6eYmBFkxVTm -GAn4sK6tIoiFxZT4fNC5Q8BnFlMdx29omntIfnLrJMnEh5p2dvhMLC6kM80byLEHRtW1m5AJ -+cmtk4qQbRsWiyZPmj1v7LnRWy0c78WqBWLww3FJrAhCRBWpGnzGf6m/2uFV5eMk5Tfpi48/ -ifSjHaT4etS5OkJjqniGiyuQWD6B36FrK+7eHr+Fn6DtcxB3mdZhJDYq2vUXW36pWWudPS1V -i8PNJd+THtcA80kLFkUxtWCKXhzCH3u8AvGf4OLj9qhZJGQG2RJnBgpiCPhMvUDw61G+kwhE -Af4mpL9mRLdASCGNp+svNubvmMpsYguP1OfJrzRrzfFu3CcEwkSpCByTFi0MxdDRdxReHHD8 -Uv0VKvynjGohkPXT5k/UPZNIKlqjfDdKIJLyb+jjyZ5oWocy+cmtkySI94PrgdeYteZ66/cV -gdRiFlHN7VNDfL4RdE43IRN0HaAAd4YN9FoI5GUy6wDFxBtRV+K9TSCh8bTwE0zrUGb9tPkT -lWY1svL9SzS/XvWFcRFHvQTCRKlIsxdFpWWCYvigzlfY/api4mbtecDv0J1XC4EMkraDFMPX -P0kCKaYyXzKtQ5mNUzOHjo9AnNyycRPIioFXCSFEkrbf11IgioltSQs3lsEj25q0fmK8xZdM -bNScu2tD09w99scQUhuB9JO5+0vALfuaQMJusYqpjuNN61Bm9wyi+Yp8+P1LPJxc3lwM3q6x -tr/T9xFZMfAPQgjxSdujNRbIqM8iqkEBPqX1wfBJn+LFPhOLg0wBv1AC6lfsAFcG+azJDDKl -7TDdcmkxxc+I8t0ogfjA5+naKKT5caZ1KLOhae4h2meQihXJcJze+cbicHLrSGdPC/nVk82k -s6dlxJb3psh9z0wjhBCfnN1fa4GocZhFJGS+XPM4A75YDRNInPX+IHyGX9PFUEx1fDXKd6ME -UkhnZmvjhmybaR3K+C38CG1slH83XiuOt9JcIF7klVuSs76oKJ9TTGVPjjJFs7Mk47clGXwS -xPeSFpAQQhTDP9daIEE/ZRTyHuS1JHnI5o60ZOI5XQyVuzP3NoGo5nYaUrvnVXP7wab1IIQQ -Cbhcm2fAquSe3Np9IHG894wFsry3KUnAMRIKvH+OGHxvJfVXTGVPrrU4yjb28wX9DCI+UAwf -HN7XEGEUf6uY6FYMVysQH2lrxHD7xqmZQ6N8N0ogL5NZB0jAt7XtgHhVMXxQMvEzyfBWSflN -ivIlw8vsuFRRca3P+HWS4rLy3hHFxLqw/og3M3X28QSzx/MmBTQh7E1wqFG+JJE/wIF6CUQy -8Uil73p+rCgBB+L6boRACCFEMRyqVz0UE6UhwKOio3Jzjyd4/jAqoAnrp82fGPJNTsjgG32F -jINKiwUhbb4jqWhVlM9R6Y7TYhnlc6I2QVXOIvX93H30/fZeKpCuetVDghiMjsjpOZg4uR3m -Aump6f/xkEzckyRpH/B2Iz+ARW17gLckjT+0o0H0l4+rn0Bw9dgY90aBDAEeVT+B4GXREXXl -rkmwtPuCSfGSkJ/cOilx4s0d6Tg+VNjLPSY+LKZO+VzS+ENXTpgo+ZSfS0j4h3TjNxCEGxRj -hO+bTfJVgNrlfNOXfD7NnpfkDsLIgP8iXjROrpe43lbieFuiLfcmcb2tpKvvWyYJJ0VSXCZB -vCUBt8Q1BbhTUlwW1XY3IRMUE90ScK1k4rkRA1wjAdcoQF5t/D7jV0rAtRJwzRgfA5KJe4aP -yZ5Y9jnqGBMDXKMYrpYgnpEgehTDLgV4iwJ+4RC0H62LT9HsrEDfw1tes0a5grheW8uA5e0o -VHM79Rm/TgI+LkH8VYIYVIBq9wLOtnh7ZMTWir0jf1cg+hXgj8N3Co7mf5J/snI3OsGuAAAA -AElFTkSuQmCC ---------------00BB79588E3CE6482B5F269C-- +Content-Disposition: inline; filename=image001.png +Content-ID: <image001.png@01D5842B.05639490> + +iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ +bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp +bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 +eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0 +MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo +dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw +dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv +IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS +ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD +cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNl +SUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3Vt +ZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06 +RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYw +NEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0 +QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w +bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJ +RBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15k +NzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE +1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLL +xe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+J +nRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPs +LbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WG +o/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqH +JMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdp +tHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFL +M1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVR +EoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+ +sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtil +jmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt +3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQX +DHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75 +KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8 +dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvaw +msfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWA +aJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqv +u8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8J +KjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wD +USo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+L +pilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGs +f1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G +2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9 +Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923S +EIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7 +rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9 +ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13 +FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/A +ex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHV +SoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13 +nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGs +gWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlA +w9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapM +WsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khL +ORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNsh +LSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76f +rdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQ +f5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7 +DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQf +cfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9Ucz +DEaG0p8AAAAASUVORK5CYII= +------=_Part_6535_946016905.1571231060707-- + +------=_Part_6534_297348878.1571231060707 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +herzlichen Dank f=C3=BCr Ihre Anfrage und Ihr Interesse an unserem Produkt.= + Gerne sende ich Ihnen schon einmal die wichtigsten Informationen zu: + +------=_Part_6534_297348878.1571231060707-- + +------=_Part_6533_1502248680.1571231060707-- diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____configuration.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____configuration.xml index ff6162159e8c884b236bc8476aa4737e42c20c73..5795e4d815a48cc716357f0e1fcfd511391b38a5 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____configuration.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____configuration.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.2"> +<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.4"> <name>_____CONFIGURATION</name> <serverId>default</serverId> <definitionName>_____CONFIGURATION</definitionName> @@ -11,10 +11,8 @@ <loggingFileEnabled v="true" /> <loggingRemoteEnabled v="false" /> <mailGlobalEnabled v="true" /> - <neonVaadinClientEnabled v="true" /> <neonDisableConnectionSecurity v="false" /> <neonUseSelfSignedCertificate v="true" /> - <neonUseDummyKeystore v="true" /> <securityConnectionSSLEnabled v="true" /> <securitySSLDisableCertificateCheck v="true" /> <telephonyEnabled v="true" /> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml index 8e3679aca78ef7fd2bbbde1f50a1606830e77277..4d4a0a7d7a49bb32b08971869d8a8d73d6d342fc 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <sysDbVersion 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/sysDbVersion/1.2.0"> <name>_____SYSTEM_SYSDB_VERSION</name> - <systemDbVersion>2.8.0</systemDbVersion> + <systemDbVersion>2.8.3</systemDbVersion> </sysDbVersion> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/data_alias.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/data_alias.xml index 1eb782d8f9d3e3424e8e9bf8afa9d26174c49b96..37e7e783d6892eb1390bba54778e26d6a34ed997 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/data_alias.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/data_alias.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.2"> +<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.4"> <name>f50ee138-12d9-420d-a4f9-9b8257e207e4</name> <description>jdbc:derby://localhost:1527/basic_data</description> <serverId>default</serverId> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/defaultDbRepository.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/defaultDbRepository.xml index 52ece967854e69d918544eb401747fbbaeca8784..5eb83b66cac9ed8a68d01ce0e6c3f93523a23096 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/defaultDbRepository.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/defaultDbRepository.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.2"> +<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.4"> <name>defaultDbRepository_default</name> <serverId>default</serverId> <definitionName>defaultDbRepository</definitionName> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/mailServerIMAP.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/mailServerIMAP.xml index 783efb1f106e3917e36a2424e80e45a18a8b5da9..bed14237c350bfc9561427fe948b64c425fb8ca6 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/mailServerIMAP.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/mailServerIMAP.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.2"> +<aliasConfig xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.4" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasConfig/1.1.4"> <name>mailServerIMAP_default</name> <serverId>default</serverId> <definitionName>mailServerIMAP</definitionName> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_permissionaction.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_permissionaction.xml index ac3dc71255a55718c3fbf2dc8f5c82c72cdb37b4..3abb262430cbc72e7b4d2f4027f8adebfd43f3f1 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_permissionaction.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_permissionaction.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="s.leipold" id="3d4baf88-48c0-4ad2-9ceb-72dd8a1a9f6z"> + <changeSet author="s.leipold" id="b01f6744-e732-45a2-a550-070fb1f1f2c"> <insert tableName="ASYS_PERMISSIONACTION"> <column name="ASYS_PERMISSIONACTIONID" value="ADMIN_PERMACTION_VIEW_METADATA "/> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml index 516dc89be7d670a2555b1e87f6c2fa97959933c9..ca53b5a37ac699700f1c7a68524167d5460a1f44 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml @@ -3,11 +3,11 @@ <changeSet author="j.hoermanns" id="3d4baf88-48c0-4ad2-9ceb-72dd8a1a9f6a"> <insert tableName="ASYS_SYSTEM"> <column name="ID" value="_____SYSTEM_SYSDB_VERSION "/> - <column name="DATE_EDIT" valueDate="2019-01-21T13:24:41.668"/> + <column name="DATE_EDIT" valueDate="2020-05-14T11:06:09.420"/> <column name="DATE_NEW" valueDate="2018-05-24T14:53:57.763"/> <column name="KIND" valueNumeric="600"/> <column name="NAME" value="_____SYSTEM_SYSDB_VERSION"/> - <column name="TITLE" value="2.8.0"/> + <column name="TITLE" value="2.8.3"/> <column name="USER_EDIT" value="_____DESIGNERANONYM"/> <column name="USER_NEW" value="_____DESIGNERANONYM"/> <column name="XMLDATA" valueBlobFile="defaultBlob/_____system_sysdb_version.xml"/> diff --git a/.liquibase/_____SYSTEMALIAS/changelog.xml b/.liquibase/_____SYSTEMALIAS/changelog.xml index 6d6c244604e5ac24f9eb9e96d2e9a82c37f71364..0cff9f38ee81bb25310dd733eb038dc903af637e 100644 --- a/.liquibase/_____SYSTEMALIAS/changelog.xml +++ b/.liquibase/_____SYSTEMALIAS/changelog.xml @@ -3,4 +3,6 @@ <include relativeToChangelogFile="true" file="basic/init/init.xml"/> <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/> + + <include relativeToChangelogFile="true" file="basic/Workflow/webserviceUser_flowableIdmService.xml" context="workflow"/> </databaseChangeLog> diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 3cf0386dfd91a32515217928491ca53e6044b766..06901c17a5ee9fae60cfaf16c684d29b93499f6b 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -263,7 +263,7 @@ <customJDitoProperty> <name>translate4Log</name> <global v="false" /> - <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/language/customproperties/translate4log/property.js</property> + <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/isolanguage/customproperties/translate4log/property.js</property> </customJDitoProperty> </customProperties> </entityFieldDb> @@ -1686,7 +1686,7 @@ <name>GROUPCODEID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> + <columnType v="12" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> @@ -1746,10 +1746,11 @@ <global v="false" /> <property v="true" /> </customBooleanProperty> - <customStringProperty> + <customJDitoProperty> <name>translate4Log</name> <global v="false" /> - </customStringProperty> + <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/product/entityfields/contact_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> </customProperties> <dependencies> <entityDependency> @@ -2186,6 +2187,11 @@ <global v="false" /> <property v="true" /> </customBooleanProperty> + <customJDitoProperty> + <name>translate4Log</name> + <global v="false" /> + <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/productprice/entityfields/contact_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> </customProperties> <dependencies> <entityDependency> @@ -14925,6 +14931,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>CONTACT_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> </entities> diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/isolanguage/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/isolanguage/customproperties/translate4log/property.js new file mode 100644 index 0000000000000000000000000000000000000000..57b05c44e8fcffe05080e9a0109aec6856eda75a --- /dev/null +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/isolanguage/customproperties/translate4log/property.js @@ -0,0 +1,7 @@ +import("Keyword_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); +result.string(res); diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/object_rowid/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/object_rowid/customproperties/translate4log/property.js index 00b69dab2571dae2f6258e66897a7073cb4ade8a..aa7a1fe2a061e4d09e65eab58e503c37562cf5a6 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/object_rowid/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/object_rowid/customproperties/translate4log/property.js @@ -6,11 +6,10 @@ import("system.result"); import("Context_lib"); var params = Translate4LogParams.load(); -var val = params.value; var type = newSelect("OBJECT_TYPE") .from("SALESORDER") - .newWhere("OBJECT_ROWID", val) - .cell() + .where("SALESORDER.SALESORDERID", params.rowId) + .cell(); -result.string(db.cell(ContextUtils.getNameSql(type, val))); +result.string(db.cell(ContextUtils.getNameSql(type, params.value))); diff --git a/entity/360Degree_entity/360Degree_entity.aod b/entity/360Degree_entity/360Degree_entity.aod index 7069d6c38e61b4bf3909502e67902cd1f7ecff6b..3ca98a082b746337cb9a5350356b790754247056 100644 --- a/entity/360Degree_entity/360Degree_entity.aod +++ b/entity/360Degree_entity/360Degree_entity.aod @@ -127,7 +127,6 @@ <title>Contract</title> <onActionProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcontract/onActionProcess.js</onActionProcess> <iconId>VAADIN:FILE_TEXT</iconId> - <iconIdProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcontract/iconIdProcess.js</iconIdProcess> <stateProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js</stateProcess> </entityActionField> <entityActionField> diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index bb17b9fa7f2471bd1c69064d7f84a049d033be65..0d0a112f0c5bf19ba9ee893659b494b388606b3b 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -87,6 +87,12 @@ <fieldName>Activities</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>262fe53d-7358-40ff-8641-e08add14528a</name> + <entityName>Object_entity</entityName> + <fieldName>Activities</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityField> @@ -485,7 +491,6 @@ <children> <entityParameter> <name>LinkedObjectId_param</name> - <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/appointments/children/linkedobjectid_param/valueProcess.js</valueProcess> </entityParameter> </children> </entityConsumer> @@ -566,6 +571,7 @@ </entityField> <entityField> <name>bindata</name> + <title>data</title> <contentType>FILE</contentType> <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/bindata/stateProcess.js</stateProcess> <onValueChange>%aditoprj%/entity/Activity_entity/entityfields/bindata/onValueChange.js</onValueChange> diff --git a/entity/Activity_entity/recordcontainers/db/conditionProcess.js b/entity/Activity_entity/recordcontainers/db/conditionProcess.js index fe77ebfa1d1ce7e8056d1505bcbda07e318f163e..6b1c96c3d19779e42de1168ab94b5e132eac7264 100644 --- a/entity/Activity_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Activity_entity/recordcontainers/db/conditionProcess.js @@ -1,59 +1,56 @@ -import("system.logging"); import("Employee_lib"); import("system.vars"); import("system.db"); import("system.result"); import("Sql_lib"); -var loadNothing = false; -var cond = newWhere(); +var condition = newWhere(); if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param")) { + var activityLinkSubselect = newSelect("ACTIVITYLINK.ACTIVITYLINKID") + .from("ACTIVITYLINK") + .where("ACTIVITYLINK.ACTIVITY_ID = ACTIVITY.ACTIVITYID") + .and("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectId_param"); + var rowId = vars.get("$param.RowId_param"); - var rowIds = [rowId]; - var rowIdCond = null; if (vars.get("$param.ObjectId_param") == "Person") { - var personIdSelect = newSelect("CONTACT.CONTACTID") - .from("CONTACT") - .where("CONTACT.CONTACTID", rowId) - .and("CONTACT.PERSON_ID", newSelect("CONTACT.PERSON_ID") - .from("CONTACT") - .where("CONTACT.CONTACTID", rowId)); - rowIds = personIdSelect.array(db.COLUMN); + //in the Person context, all activites linked to the person should be shown, so it is necessary to get all contactIds of that person + var allPersonRelatedContactIds = newSelect("personContacts.CONTACTID") + .from("CONTACT") + .join("CONTACT", "CONTACT.PERSON_ID = personContacts.PERSON_ID", "personContacts") + .where("CONTACT.CONTACTID", "$param.RowId_param") + .arrayColumn(); + + if (allPersonRelatedContactIds.length === 0) + condition.and("1=2"); + else + { + activityLinkSubselect.and("ACTIVITYLINK.OBJECT_ROWID", allPersonRelatedContactIds, SqlBuilder.IN()); + condition.and(null, activityLinkSubselect, SqlBuilder.EXISTS()); + } + } + else + { + activityLinkSubselect.and("ACTIVITYLINK.OBJECT_ROWID", "$param.RowId_param"); + condition.and(null, activityLinkSubselect, SqlBuilder.EXISTS()); } - - var activityLinkSubselect = newSelect("ACTIVITYLINK.ACTIVITY_ID") - .from("ACTIVITYLINK") - .where("ACTIVITYLINK.OBJECT_ROWID", rowIds, SqlBuilder.IN()) - .and("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectId_param"); - - // TODO: more performant way than IN. Maybe a join?? - cond.and("ACTIVITY.ACTIVITYID", activityLinkSubselect, SqlBuilder.IN()); } -if(vars.getString("$param.OnlyInnate_param") == "true") +if (vars.exists("$param.ActivityIDs_param") && vars.get("$param.ActivityIDs_param")) { - var ownContactId = EmployeeUtils.getCurrentContactId(); - if (ownContactId) - cond.and("ACTIVITY.RESPONSIBLE", ownContactId); - else - loadNothing = true; -} - -if (vars.exists("$param.ActivityIDs_param") && vars.get("$param.ActivityIDs_param")) { - var acticityIDs = JSON.parse(vars.get("$param.ActivityIDs_param")); - cond.and("ACTIVITY.ACTIVITYID",acticityIDs , SqlBuilder.IN()); + var acticityIds = JSON.parse(vars.get("$param.ActivityIDs_param")); + condition.and("ACTIVITY.ACTIVITYID", acticityIds, SqlBuilder.IN()); } -if (loadNothing) -{ - resCond = "1 = 2"; -} -else +if (vars.getString("$param.OnlyInnate_param") == "true") { - //TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026 - var resCond = cond.toString(); + var ownContactId = EmployeeUtils.getCurrentContactId(); + if (ownContactId) + condition.and("ACTIVITY.RESPONSIBLE", ownContactId); + else + condition.clearWhere().and("1=2"); } -result.string(resCond); \ No newline at end of file +//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026 +result.string(condition.toString()); \ No newline at end of file diff --git a/entity/Address_entity/afterOperatingState.js b/entity/Address_entity/afterOperatingState.js index 02ce06265c7a4a2186f6b3da49e9a14bb646bd84..23f607ff7d13f5153ef6e252d1f8e6b185218040 100644 --- a/entity/Address_entity/afterOperatingState.js +++ b/entity/Address_entity/afterOperatingState.js @@ -1,3 +1,6 @@ +import("system.vars"); import("system.neon"); -neon.setFieldValue("$field.AddressSearch", ""); \ No newline at end of file +//in some cases, the field does not exist yet/not anymore when the afterOperatingState process is called +if (vars.exists("$field.AddressSearch")) + neon.setFieldValue("$field.AddressSearch", "");//why is this needed? \ No newline at end of file diff --git a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js index 510afae5b2c0dfeb0451be8d4d176fc18bb6258c..3e2e63befe862a254f918262148b84b87d920816 100644 --- a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js @@ -7,6 +7,7 @@ import("KeywordRegistry_basic"); var opentask = newSelect("count(TASKID)") .from("TASK") .where("TASK.STATUS", $KeywordRegistry.taskStatus$new()) + .and ("TASK.KIND", "TASK") .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) .cell(); diff --git a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js index a143770f57c25f94eb6c9ca911e7956949522ad9..98e88dd15849effecdb68f06183c6aedd6498ac2 100644 --- a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js @@ -7,6 +7,7 @@ import("system.result"); var overdueTaskCount = newSelect("count(TASKID)") .from("TASK") .where("TASK.MATURITY_DATE", "$sys.date", SqlBuilder.LESS()) + .and ("TASK.KIND", "TASK") .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) .and("TASK.STATUS", TaskUtils.getEndedStatuses(), SqlBuilder.NOT_IN()) .cell() diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod index 8db94a88d290b6ae25d9b37180d3c350627e4344..ea4b4e03bb85dfca064ee1c4401f5174f586b282 100644 --- a/entity/AnyContact_entity/AnyContact_entity.aod +++ b/entity/AnyContact_entity/AnyContact_entity.aod @@ -122,7 +122,6 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description> <name>PERSON_PICTURE</name> <contentType>IMAGE</contentType> <valueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/person_picture/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/AnyContact_entity/entityfields/person_picture/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>STANDARD_EMAIL_COMMUNICATION</name> diff --git a/entity/AnyContact_entity/entityfields/person_picture/displayValueProcess.js b/entity/AnyContact_entity/entityfields/person_picture/displayValueProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/AppointmentLink_entity/AppointmentLink_entity.aod b/entity/AppointmentLink_entity/AppointmentLink_entity.aod index bd96e6718e64f97200c02601e8fa738702515118..58aaa1c134d0aef45cc2e8c2b0d482ff4b95680f 100644 --- a/entity/AppointmentLink_entity/AppointmentLink_entity.aod +++ b/entity/AppointmentLink_entity/AppointmentLink_entity.aod @@ -93,17 +93,10 @@ </entityActionField> <entityParameter> <name>LinkedObjectId_param</name> - <valueProcess>%aditoprj%/entity/AppointmentLink_entity/entityfields/linkedobjectid_param/valueProcess.js</valueProcess> <expose v="true" /> <description>PARAMETER </description> </entityParameter> - <entityConsumer> - <name>AppointmentId</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> <entityParameter> <name>AppointmentState_param</name> <expose v="true" /> diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod index 441da772bfa867ea346a87ee00699eb47facb425..a88c2b6e6d636b7e7c8b39c6815377002469eb4f 100644 --- a/entity/Appointment_entity/Appointment_entity.aod +++ b/entity/Appointment_entity/Appointment_entity.aod @@ -240,9 +240,7 @@ <title>New activity</title> <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> <iconId>VAADIN:HOURGLASS</iconId> - <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/newactivity/stateProcess.js</stateProcess> <tooltip>New activity</tooltip> - <tooltipProcess>%aditoprj%/entity/Appointment_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> </entityActionField> <entityField> <name>STATUS_ACTION</name> diff --git a/entity/Appointment_entity/entityfields/begin/valueProcess.js b/entity/Appointment_entity/entityfields/begin/valueProcess.js index 2c01e234cb59893a1d1cd42da3d6828137dcba9c..eca54b63828df7f3d8624fd9f8ea12f33358e3d9 100644 --- a/entity/Appointment_entity/entityfields/begin/valueProcess.js +++ b/entity/Appointment_entity/entityfields/begin/valueProcess.js @@ -8,7 +8,7 @@ import("system.result"); */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); if(vars.get("$this.value")) result.string(vars.get("$this.value")); diff --git a/entity/Appointment_entity/entityfields/end/valueProcess.js b/entity/Appointment_entity/entityfields/end/valueProcess.js index c7b6ff0bc3c969be63c3338eb60768a41c9d7d20..b953112d2ccabc54e8eebea2d9766346addafcdd 100644 --- a/entity/Appointment_entity/entityfields/end/valueProcess.js +++ b/entity/Appointment_entity/entityfields/end/valueProcess.js @@ -8,7 +8,7 @@ import("system.result"); */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); if(vars.get("$this.value")) result.string(vars.get("$this.value")); diff --git a/entity/Appointment_entity/entityfields/newactivity/stateProcess.js b/entity/Appointment_entity/entityfields/newactivity/stateProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 4ffbcecb9997e552d82e0beec3c133749ac077c3..81ed998586bd298aa9203da5bcbb1f50c2da615f 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -323,6 +323,8 @@ <isObjectAction v="false" /> <isSelectionAction v="true" /> <iconId>VAADIN:FILE_TREE_SMALL</iconId> + <state>AUTO</state> + <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js</stateProcess> </entityActionField> </children> </entityActionGroup> diff --git a/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8d1104b5aaa31e686a00a58b47dba81fe63ead08 --- /dev/null +++ b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js @@ -0,0 +1,9 @@ +import("Attribute_lib"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +if(vars.get("$sys.selection").length == 1 && vars.get("$field.ATTRIBUTE_TYPE") == $AttributeTypes.GROUP.toString()) + result.string(neon.COMPONENTSTATE_EDITABLE) +else + result.string(neon.COMPONENTSTATE_DISABLED) \ No newline at end of file diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js index 2db6fc3da92b0707cb73c6c480ce2aa0df02be3c..9d50cc58b4426a6edc78c8f787084914be798653 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js @@ -16,7 +16,7 @@ var childType = vars.get("$param.ChildType_param"); var objectType = vars.get("$param.ObjectType_param"); var filteredIds = vars.getString("$param.FilteredAttributeIds_param") ? JSON.parse(vars.getString("$param.FilteredAttributeIds_param")) : null var attributeCountObj = vars.get("$param.AttributeCount_param") ? JSON.parse(vars.getString("$param.AttributeCount_param")) : null; -var displaySimpleName = vars.get("$param.DisplaySimpleName_param"); +var displaySimpleName = vars.getString("$param.DisplaySimpleName_param") == "true" ? true : false; var themeObjectRowId = vars.get("$param.ThemeObjectRowId_param"); diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod index 479d44ab5de6c5679e52ac87fa78d7beeaf9e407..e2e46ded6f8c1b63b5ed6aa1f2432491c0edd213 100644 --- a/entity/BulkMail_entity/BulkMail_entity.aod +++ b/entity/BulkMail_entity/BulkMail_entity.aod @@ -262,7 +262,6 @@ <title>Preview</title> <contentType>HTML</contentType> <state>INVISIBLE</state> - <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/contentpreview/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/contentpreview/valueProcess.js</valueProcess> </entityField> <entityField> diff --git a/entity/BulkMail_entity/entityfields/contentpreview/stateProcess.js b/entity/BulkMail_entity/entityfields/contentpreview/stateProcess.js deleted file mode 100644 index 255c6a981d797dac132edfcb2a23159b6abb5241..0000000000000000000000000000000000000000 --- a/entity/BulkMail_entity/entityfields/contentpreview/stateProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.neon"); -import("system.result"); - -if (vars.get("$field.contentPreview")) - result.string(neon.COMPONENTSTATE_READONLY) \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/sender/valueProcess.js b/entity/BulkMail_entity/entityfields/sender/valueProcess.js index 6d2d0aeedf3df91a3186eb64c2bb18582a2d1df4..88626d517388be0ae8c0186c2f3729d00b741eb7 100644 --- a/entity/BulkMail_entity/entityfields/sender/valueProcess.js +++ b/entity/BulkMail_entity/entityfields/sender/valueProcess.js @@ -1,5 +1,8 @@ +import("system.neon"); +import("system.vars"); import("Communication_lib"); import("system.result"); import("Employee_lib"); +if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(CommUtil.getStandardMail(EmployeeUtils.getCurrentContactId())); \ No newline at end of file diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js index d1cc3f17cb73fcb1cd437eb34c5ca4c7a8621ef0..765ab4952ebc53f5733ec38b05f5b85fef838e2e 100644 --- a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js +++ b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js @@ -1,55 +1,55 @@ -import("Workflow_lib"); -import("Binary_lib"); -import("Sql_lib"); -import("DocumentTemplate_lib"); -import("system.result"); -import("system.vars"); -import("system.entities"); -import("system.db"); -import("system.util"); -import("Document_lib"); -import("Bulkmail_lib"); - -if (vars.get("$field.templateType") != DocumentTemplate.types.EML) - var content = vars.get("$field.content"); - -var bindata = vars.get("$field.bindata"); -var rowdata = vars.get("$local.rowdata"); -var bulkMailId = rowdata["BULKMAIL.BULKMAILID"]; -var templateId = rowdata["BULKMAIL.DOCUMENTTEMPLATE_ID"]; -var bulkMailName = rowdata["BULKMAIL.NAME"]; - -var template = DocumentTemplate.getSelectedTemplate(templateId, new FileUpload(bindata), content, DocumentTemplate.types.HTML); - -if (template && template.content && BulkMailUtils.isValidTemplateType(template.type)) -{ - if (!template.filename) - template.filename = bulkMailName + ".html"; - SingleBinaryUtils.insert("BULKMAIL", "DOCUMENT", bulkMailId, template.content, template.filename); -} - -var contactIds = []; - -if (vars.get("$param.CopyBulkMailId_param")) -{ - var config = entities.createConfigForLoadingRows() - .entity("BulkMailRecipient_entity") - .provider("BulkMailRecipients") - .addParameter("BulkMailId_param", vars.get("$param.CopyBulkMailId_param")) - .fields(["CONTACT_ID"]); - - var copiedRecipients = entities.getRows(config); - - contactIds = copiedRecipients.map(function(pRecipient) - { - return pRecipient["CONTACT_ID"]; - }); -} - -if (vars.getString("$param.PresetRecipients_param")) - contactIds = contactIds.concat(JSON.parse(vars.getString("$param.PresetRecipients_param"))); - -if (contactIds && contactIds.length > 0) - BulkMailUtils.addRecipients(bulkMailId, BulkMailUtils.filterNewRecipients(bulkMailId, contactIds)); - +import("Workflow_lib"); +import("Binary_lib"); +import("Sql_lib"); +import("DocumentTemplate_lib"); +import("system.result"); +import("system.vars"); +import("system.entities"); +import("system.db"); +import("system.util"); +import("Document_lib"); +import("Bulkmail_lib"); + +if (vars.get("$field.templateType") != DocumentTemplate.types.EML) + var content = vars.get("$field.content"); + +var bindata = vars.get("$field.bindata"); +var rowdata = vars.get("$local.rowdata"); +var bulkMailId = rowdata["BULKMAIL.BULKMAILID"]; +var templateId = rowdata["BULKMAIL.DOCUMENTTEMPLATE_ID"]; +var bulkMailName = rowdata["BULKMAIL.NAME"]; + +var template = DocumentTemplate.getSelectedTemplate(templateId, new FileUpload(bindata), content, DocumentTemplate.types.HTML); + +if (template && template.content && BulkMailUtils.isValidTemplateType(template.type)) +{ + if (!template.filename) + template.filename = bulkMailName + ".html"; + SingleBinaryUtils.insert("BULKMAIL", "DOCUMENT", bulkMailId, template.content, template.filename); +} + +var contactIds = []; + +if (vars.get("$param.CopyBulkMailId_param")) +{ + var config = entities.createConfigForLoadingRows() + .entity("BulkMailRecipient_entity") + .provider("BulkMailRecipients") + .addParameter("BulkMailId_param", vars.get("$param.CopyBulkMailId_param")) + .fields(["CONTACT_ID"]); + + var copiedRecipients = entities.getRows(config); + + contactIds = copiedRecipients.map(function(pRecipient) + { + return pRecipient["CONTACT_ID"]; + }); +} + +if (vars.getString("$param.PresetRecipients_param")) + contactIds = contactIds.concat(JSON.parse(vars.getString("$param.PresetRecipients_param"))); + +if (contactIds && contactIds.length > 0) + BulkMailUtils.addRecipients(bulkMailId, BulkMailUtils.filterNewRecipients(bulkMailId, contactIds)); + WorkflowSignalSender.inserted(); \ No newline at end of file diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js b/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js index 08049ff49d5f0e1dfe9d29c1f1f330b631a59cde..d0d6d13510e00a5910eb93432d98a6163d8ce175 100644 --- a/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js @@ -1,37 +1,37 @@ -import("Workflow_lib"); -import("system.util"); -import("Binary_lib"); -import("system.neon"); -import("Sql_lib"); -import("DocumentTemplate_lib"); -import("system.result"); -import("system.vars"); -import("system.db"); -import("Document_lib"); -import("Bulkmail_lib"); - -// eml is not editable -if (vars.get("$field.templateType") != DocumentTemplate.types.EML) - var content = vars.get("$field.content"); - -var bindata = vars.get("$field.bindata"); -var rowdata = vars.get("$local.rowdata"); -var bulkMailId = rowdata["BULKMAIL.BULKMAILID"]; -var templateId = rowdata["BULKMAIL.DOCUMENTTEMPLATE_ID"]; -var bulkMailName = rowdata["BULKMAIL.NAME"]; - -var template = BulkMailUtils.getBulkMailTemplate(bulkMailId, templateId, false, false, new FileUpload(bindata)); -if (content) - template.content = util.encodeBase64String(content); - -if (template && template.content && BulkMailUtils.isValidTemplateType(template.type)) -{ - if (!template.filename) - template.filename = bulkMailName + ".html"; - - SingleBinaryUtils.set("BULKMAIL", "DOCUMENT", vars.get("$local.uid"), template.content, template.filename); - - neon.refresh(["$field.content"]); -} - +import("Workflow_lib"); +import("system.util"); +import("Binary_lib"); +import("system.neon"); +import("Sql_lib"); +import("DocumentTemplate_lib"); +import("system.result"); +import("system.vars"); +import("system.db"); +import("Document_lib"); +import("Bulkmail_lib"); + +// eml is not editable +if (vars.get("$field.templateType") != DocumentTemplate.types.EML) + var content = vars.get("$field.content"); + +var bindata = vars.get("$field.bindata"); +var rowdata = vars.get("$local.rowdata"); +var bulkMailId = rowdata["BULKMAIL.BULKMAILID"]; +var templateId = rowdata["BULKMAIL.DOCUMENTTEMPLATE_ID"]; +var bulkMailName = rowdata["BULKMAIL.NAME"]; + +var template = BulkMailUtils.getBulkMailTemplate(bulkMailId, templateId, false, false, new FileUpload(bindata)); +if (content) + template.content = util.encodeBase64String(content); + +if (template && template.content && BulkMailUtils.isValidTemplateType(template.type)) +{ + if (!template.filename) + template.filename = bulkMailName + ".html"; + + SingleBinaryUtils.set("BULKMAIL", "DOCUMENT", vars.get("$local.uid"), template.content, template.filename); + + neon.refresh(["$field.content"]); +} + WorkflowSignalSender.updated(); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js index 73033cd7e06fc00bb164ff8920be139478a10057..f5f6c5c6594a1a57fb3aaa41b59dfd0768bfc430 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js @@ -2,5 +2,8 @@ import("system.neon"); import("Campaign_lib"); import("system.vars"); -var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("local.value")); -neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); \ No newline at end of file +if(vasr.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) +{ + var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("local.value")); + neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); +} \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js index bc3712278f25894a8721b39e3ab1ce74ecab3e00..354005207ee1ef200be6f0b9b6f02d3ed51ce909 100644 --- a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js +++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js @@ -8,4 +8,4 @@ var contactId = rowdata["CAMPAIGNPARTICIPANT.CONTACT_ID"]; var campaignParticipantId = vars.get("$local.uid"); var previousCampaignstepId = ""; -CampaignUtils.createLogEntry(campaignId, campaignStepId, contactId, campaignParticipantId, previousCampaignstepId); \ No newline at end of file +CampaignUtils.createLogEntry(campaignId, campaignStepId, campaignParticipantId, previousCampaignstepId); \ No newline at end of file diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod index 81199f0672d48d253e28448fbbd21e2d9443074a..4b36e31d21405f4df2a56b34fd8bc4fd6b32b80a 100644 --- a/entity/CampaignStep_entity/CampaignStep_entity.aod +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -116,7 +116,6 @@ <entityField> <name>DATE_EDIT</name> <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js</valueProcess> - <onValueChange>%aditoprj%/entity/CampaignStep_entity/entityfields/date_edit/onValueChange.js</onValueChange> <onValueChangeTypes> <element>MASK</element> <element>PROCESS</element> diff --git a/entity/CampaignStep_entity/entityfields/date_edit/onValueChange.js b/entity/CampaignStep_entity/entityfields/date_edit/onValueChange.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Contract_entity/entityfields/contractcode/onValidation.js b/entity/Contract_entity/entityfields/contractcode/onValidation.js index 4d3cfa688f691b265b2348d492a123d2ef8f47e4..df25fe9ca414526317a2169a3ed9f3d9ec1d74ac 100644 --- a/entity/Contract_entity/entityfields/contractcode/onValidation.js +++ b/entity/Contract_entity/entityfields/contractcode/onValidation.js @@ -1,11 +1,5 @@ -import("system.vars"); -import("system.result"); import("system.neon"); -import("Contract_lib"); -import("Entity_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW - && !ContractUtils.validateContractNumber(vars.get("local.value"))) -{ - vars.set("$field.CONTRACTCODE", ContractUtils.getNextContractNumber().toString()); -} \ No newline at end of file +//reload the field on save to make sure the contractcode is really unique, otherwise the contractcode could be the same for two contracts created at +//the same time +neon.refresh(["$field.CONTRACTCODE"]); \ No newline at end of file diff --git a/entity/Countries_Entity/documentation.adoc b/entity/Countries_Entity/documentation.adoc index 6af57c1dc49b08cdba1a7586222917ca872fd5dd..e0a8f85b84d70ef1db2bd8385cf83a059bd1b11d 100644 --- a/entity/Countries_Entity/documentation.adoc +++ b/entity/Countries_Entity/documentation.adoc @@ -8,4 +8,7 @@ It could be easily extend to hold information like: * timezones (Multistring) * currencies * spoken languages -* etc \ No newline at end of file +* etc + +The data origin is: https://chromium-i18n.appspot.com/ssl-address +For more information, see: https://github.com/google/libaddressinput/wiki/AddressValidationMetadata at https://github.com/google/libaddressinput \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod index 8e7c5a1804a911cc3e7641c41f0c300c03a87e41..3e4bbba2abdc84a8a7f33554ef8178579318db16 100644 --- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod +++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod @@ -191,7 +191,6 @@ <name>Attachments</name> <targetContextField>TARGET_CONTEXT</targetContextField> <targetIdField>DOCUMENTTEMPLATEID</targetIdField> - <targetConsumerProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attachments/targetConsumerProcess.js</targetConsumerProcess> <titlePlural>Attachments</titlePlural> <recordContainer>db</recordContainer> <dependencies> @@ -411,6 +410,10 @@ <name>REPLACEMENTNAME.value</name> <recordfield>DOCUMENTTEMPLATE.REPLACEMENTNAME</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>KIND.displayValue</name> + <expression>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js b/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..c8f3819fed4e85372be055d5ad7cb4dac7723cc6 --- /dev/null +++ b/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.documentTemplateType(), "DOCUMENTTEMPLATE.KIND"); +result.string(sql); diff --git a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod index e2ce64f96ec552b3e1e6357c940ecf6436466203..b7116402fb566724a159f7c003fde69a19901b96 100644 --- a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod +++ b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod @@ -4,7 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/DuplicateScanner_entity/documentation.adoc</documentation> <title>Duplicate Configuration</title> - <iconId>VAADIN:DATABASE</iconId> + <iconId>VAADIN:COG_O</iconId> <titlePlural>Configurations</titlePlural> <recordContainer>DBRecordContainer</recordContainer> <entityFields> diff --git a/entity/Duplicates_entity/Duplicates_entity.aod b/entity/Duplicates_entity/Duplicates_entity.aod index 35d21a2faa68a5a0649dd4054e16d929988de77a..8b4c751722f526a33993a40e759fceb7a461a008 100644 --- a/entity/Duplicates_entity/Duplicates_entity.aod +++ b/entity/Duplicates_entity/Duplicates_entity.aod @@ -7,6 +7,7 @@ <siblings> <element>DuplicatesUnrelated_entity</element> </siblings> + <iconId>VAADIN:DATABASE</iconId> <recordContainer>recordContainer</recordContainer> <entityFields> <entityProvider> diff --git a/entity/Email_entity/Email_entity.aod b/entity/Email_entity/Email_entity.aod index 456f7cec906d6daf6c64a643fc544fea8c1e4e9d..b328022e7bb7911735abc0e14869cb594e133bce 100644 --- a/entity/Email_entity/Email_entity.aod +++ b/entity/Email_entity/Email_entity.aod @@ -55,7 +55,6 @@ <textInputAllowed v="true" /> <valueProcess>%aditoprj%/entity/Email_entity/entityfields/recipient/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Email_entity/entityfields/recipient/displayValueProcess.js</displayValueProcess> - <onValueChange>%aditoprj%/entity/Email_entity/entityfields/recipient/onValueChange.js</onValueChange> </entityField> <entityConsumer> <name>EmailAddresses</name> @@ -104,6 +103,14 @@ <name>NotificationMsg_param</name> <expose v="true" /> </entityParameter> + <entityField> + <name>subject</name> + <title>Subject</title> + </entityField> + <entityParameter> + <name>EmailFilename</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/Email_entity/entityfields/recipient/onValueChange.js b/entity/Email_entity/entityfields/recipient/onValueChange.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Email_entity/recordcontainers/jdito/onInsert.js b/entity/Email_entity/recordcontainers/jdito/onInsert.js index 6452af3ccd2e7b4c3f51aaaac14a19f5be2f37ca..b266465e5e7d8102995d9f786ab61d9c84080438 100644 --- a/entity/Email_entity/recordcontainers/jdito/onInsert.js +++ b/entity/Email_entity/recordcontainers/jdito/onInsert.js @@ -12,8 +12,10 @@ import("system.question"); var attachments = JSON.parse(vars.get("$param.Attachments_param")); var senderContactId = vars.get("$param.ContactId_param"); var bindata = new FileUpload(vars.get("$field.bindata")); +var emailFilename = vars.get("$param.EmailFilename"); var notificationMsg = vars.get("$param.NotificationMsg_param"); var notificationTitle = translate.text("Offer status changed"); +var subject = vars.get("$field.subject"); var eml = EmailWritingUtils.openMailTemplate( vars.get("$field.RECIPIENT"), @@ -21,7 +23,9 @@ var eml = EmailWritingUtils.openMailTemplate( vars.get("$field.DOCUMENT_TEMPLATE"), senderContactId, bindata, - attachments + attachments, + subject, + emailFilename ); diff --git a/entity/Employee_entity/recordcontainers/jdito/onDelete.js b/entity/Employee_entity/recordcontainers/jdito/onDelete.js index 0dc6052548fade830520481f16f01cc9bc9ce372..24ad2b0487705801548cc6654fe9a82e0bdb4322 100644 --- a/entity/Employee_entity/recordcontainers/jdito/onDelete.js +++ b/entity/Employee_entity/recordcontainers/jdito/onDelete.js @@ -11,7 +11,7 @@ if (EmployeeUtils.getCurrentUserName() != vars.get("$field.TITLE") && !EmployeeU { tools.deleteUser(vars.get("$field.TITLE")); - AttributeRelationQuery(EmployeeUtils.sliceUserId(vars.get("$field.UID")), null, ContextUtils.getCurrentContextId()) + new AttributeRelationQuery(EmployeeUtils.sliceUserId(vars.get("$field.UID")), null, ContextUtils.getCurrentContextId()) .deleteAllAttributes(); WorkflowSignalSender.deleted(); diff --git a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod index 84396f573ecbeabfe825ea1fb6eb34e59f81aed8..8a781b6807e97a4ded80d80874109af4024f380e 100644 --- a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod +++ b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod @@ -25,6 +25,7 @@ </entityField> <entityField> <name>FIELD</name> + <documentation>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/documentation.adoc</documentation> <title>Field</title> <mandatory v="true" /> <dropDownProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js</dropDownProcess> @@ -81,7 +82,6 @@ <dbRecordFieldMapping> <name>EXPORTTEMPLATE_ID.value</name> <recordfield>EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID</recordfield> - <expression>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js</expression> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>EXPORTTEMPLATEFIELDID.value</name> diff --git a/entity/ExportTemplateField_entity/documentation.adoc b/entity/ExportTemplateField_entity/documentation.adoc index 12a981536f07b090008f49b7462d5ec16c7c5d6c..5e0969dbcc58b6eda7bed398b37b8c2a955fdcfa 100644 --- a/entity/ExportTemplateField_entity/documentation.adoc +++ b/entity/ExportTemplateField_entity/documentation.adoc @@ -1,4 +1,9 @@ = ExportTemplateField_entity Entity to store all the Fields from the ExportTemplates, linked to the Template via the ExportTemplateId. + +The selection of Exportfields is created by using the Placeholder function "PlaceholderUtils.getPlaceholders()". +If you want to add more fields, you just have to add the function "CustomPlaceholderUtils.getPlaceholders()" to the dropDownProcess +and add the desired Fields as placeholders in the CustomPlaceholder_lib. + Own dbTable Entity is needed to make it possible to store multiple fields for one template \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/field/documentation.adoc b/entity/ExportTemplateField_entity/entityfields/field/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..6144ef2d4a9e1092004a6c876a516666207c53b7 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/field/documentation.adoc @@ -0,0 +1,5 @@ += FIELD + +The selection of Exportfields is created by using the Placeholder function "PlaceholderUtils.getPlaceholders()". +If you want to add more fields, you just have to add the function "CustomPlaceholderUtils.getPlaceholders()" to the dropDownProcess +and add the desired Fields as placeholders in the CustomPlaceholder_lib. diff --git a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js index 08ec9605693f96322c16424b5da5990bbf9a9b11..f5b8c998801e7aafdb45582d7a566614367a30a2 100644 --- a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js +++ b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js @@ -2,6 +2,12 @@ import("system.result"); import("Placeholder_lib"); import("system.text") + +//The current selection of Exportfields is created by using the Placeholder function "PlaceholderUtils.getPlaceholders()". +//if you want to add more fields, you just have to add the function "CustomPlaceholderUtils.getPlaceholders()" to the dropDownProcess +//and add the desired Fields as placeholders in the CustomPlaceholder_lib. + + var placeholders = PlaceholderUtils.getPlaceholders(null, true).map(function (placeholder){ return [placeholder.placeholderName, placeholder.title || placeholder.placeholderName]; }) diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js b/entity/ExportTemplateField_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod index 62ae13223cf74fa95420336c7956d8aa21222179..90fdce90c45d94f3c24108835f5536e84121ac77 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod +++ b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod @@ -24,6 +24,7 @@ </entityField> <entityField> <name>PLACEOFUSE</name> + <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc</documentation> <title>Place of use</title> <consumer>ContextExportTemplatePlaceOfUse</consumer> <mandatory v="true" /> @@ -89,7 +90,6 @@ <dbRecordFieldMapping> <name>EXPORTTEMPLATE_ID.value</name> <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID</recordfield> - <expression>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js</expression> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>EXPORTTEMPLATEPLACEOFUSEID.value</name> diff --git a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc index 33f229e05ddc227b08ebb4f7eb4d91dada61a9b6..a61ae5a651de0f753557aa094ba139dc5c3957a5 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc +++ b/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc @@ -1,5 +1,9 @@ = ExportTemplatePlaceOfUse_entity Entity to select all Modules where the created template should be useable (to limit the availability in the modules). -Linked via the ExportTemplateID -Own dbTable and Entity are to make it possible to store multiple fields for one template. \ No newline at end of file + +The selection of Places Of usage is created via the link to the context_entity and limiting it +by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param). + +Linked via the ExportTemplateID to ExportTemplates. +Own dbTable and Entity are to make it possible to store multiple fields for one template. diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..38a9ff1a0f6494d732d9d7fe50d771885f7496fa --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc @@ -0,0 +1,4 @@ += PlaceOfuse + +The selection of Places Of usage is created via the link to the context_entity and limiting it +by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param). \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/recordfieldmappings/exporttemplate_id.value/expression.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod index 7c94afdf0eb4902303df2f786bd5712fc80413fc..c71abcd85ffe75e618a0c6200d47d934392b62fd 100644 --- a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod +++ b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod @@ -35,7 +35,6 @@ <children> <entityParameter> <name>ExportTemplateIDs_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/exporttemplatecomsumer/children/exporttemplateids_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> <entityParameter> @@ -58,7 +57,6 @@ </entityField> <entityParameter> <name>comingFrom_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/comingfrom_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> <entityField> diff --git a/entity/ExportTemplateSelection_entity/entityfields/comingfrom_param/valueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/comingfrom_param/valueProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/ExportTemplateSelection_entity/entityfields/exporttemplatecomsumer/children/exporttemplateids_param/valueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/exporttemplatecomsumer/children/exporttemplateids_param/valueProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/ExportTemplate_entity/ExportTemplate_entity.aod b/entity/ExportTemplate_entity/ExportTemplate_entity.aod index 76b8d5beb4ef5bbba6322d4f8fc63e25f66780d4..becc0bf70eb7448cfedfb3b682ecdb0269a2b6dd 100644 --- a/entity/ExportTemplate_entity/ExportTemplate_entity.aod +++ b/entity/ExportTemplate_entity/ExportTemplate_entity.aod @@ -124,7 +124,6 @@ </entityProvider> <entityParameter> <name>comingFrom_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/comingfrom_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> <entityField> diff --git a/entity/ExportTemplate_entity/documentation.adoc b/entity/ExportTemplate_entity/documentation.adoc index 7ff3082082e4138fb3e2b25da143e3099646eb9e..740f4ae68f9ba3857df31085446ce60a2c3f4897 100644 --- a/entity/ExportTemplate_entity/documentation.adoc +++ b/entity/ExportTemplate_entity/documentation.adoc @@ -1,9 +1,26 @@ = ExportTemplate_entity -Entity to store all the ExportTemplates. -Exporttemplates are used to give the user an easy way to export Data from an table. +Entity to store all the Export templates. +Export templates are used to give the user an easy way to export Data from an table. +The template gets configured once (by an system-admin) and the user can easily use these template +via the action without having to worry about the fields and their sorting. -linked via the ExportTemplateId to: +Process: + 1. The System-admin configures a Export template with the desired specification (title, description, + places of use, separators, language, fields and sorting) + 2. The User is located in the Filterview of the context specified in the place of use of the template. + 3. Selects the records manually or uses the filter function to limit the data he wants to export + 4. And presses on the action (Located at the top of the Table) + 5. Selects the desired template and an fitting Name for the exported Data (If none: "templateTitle_dd.MM.yyyy.HH:mm:ss") + 6. Download of the CSV-file starts automatically + Appendix: The CSV is arranged like this: every field gets one column, which has the translated columntitle + at the top and the data in the cells underneath in the same sorting as the filterview. + fields which don't have any data to show are just left blank. + +PlaceOfUse is used to configure where the template can be used. (Only Options at the moment are the Contact and the Organisation Context) +ISOLanguage is used to translate the columntitles in the correct language. (Not the data itself!) + +Linked via the ExportTemplateId to: -ExportTemplateField_entity to make it possible to store multiple fields for one template -ExportTemplatePlaceOfUse_entity to make it possible to store multiple places of usage for one template --ExportTemplateSelection_entity entity for the selection of the template \ No newline at end of file +-ExportTemplateSelection_entity entity for the selection of the template you want to use to export the table. diff --git a/entity/ExportTemplate_entity/entityfields/comingfrom_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/comingfrom_param/valueProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Forecast_entity/Forecast_entity.aod b/entity/Forecast_entity/Forecast_entity.aod index 81e7a7e32838e48bfb03d11c1f19887ef8cabc30..ddbbc5bc0918b30506c6eeb149e695d904e12a09 100644 --- a/entity/Forecast_entity/Forecast_entity.aod +++ b/entity/Forecast_entity/Forecast_entity.aod @@ -22,7 +22,7 @@ </entityField> <entityField> <name>GROUPCODE</name> - <title>Product</title> + <title>Product Group</title> <consumer>KeywordProductGroupcodes</consumer> <mandatory v="true" /> <displayValueProcess>%aditoprj%/entity/Forecast_entity/entityfields/groupcode/displayValueProcess.js</displayValueProcess> diff --git a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod index ac1185cf4bfd2c46ca3757b28ac12aed8472efb0..3c1336f58bb89beb5882d3d227165b7145289271 100644 --- a/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod +++ b/entity/KeywordAttribute_entity/KeywordAttribute_entity.aod @@ -4,7 +4,6 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/KeywordAttribute_entity/documentation.adoc</documentation> <title>Keyword Attribute</title> - <grantDeleteProcess>%aditoprj%/entity/KeywordAttribute_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/KeywordAttribute_entity/contentTitleProcess.js</contentTitleProcess> <iconId>VAADIN:KEY_O</iconId> <iconIdProcess>%aditoprj%/entity/KeywordAttribute_entity/iconIdProcess.js</iconIdProcess> diff --git a/entity/KeywordAttribute_entity/grantDeleteProcess.js b/entity/KeywordAttribute_entity/grantDeleteProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Language_entity/Language_entity.aod b/entity/Language_entity/Language_entity.aod index ba192d32cbc1fadd54eae27445e14e25c61006c1..4511f71a29b7613767ddba5aeddac2e16e5dfb8e 100644 --- a/entity/Language_entity/Language_entity.aod +++ b/entity/Language_entity/Language_entity.aod @@ -143,6 +143,8 @@ <dbRecordFieldMapping> <name>ISO3.value</name> <recordfield>AB_LANGUAGE.ISO3</recordfield> + <isFilterable v="true" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>NAME_LATIN.value</name> diff --git a/entity/Leadimport_entity/Leadimport_entity.aod b/entity/Leadimport_entity/Leadimport_entity.aod index c93e9f8e136ec3b49148421046f5be2d3668b990..5c483b9f63d00e93dc890594bc436b40fb45f62e 100644 --- a/entity/Leadimport_entity/Leadimport_entity.aod +++ b/entity/Leadimport_entity/Leadimport_entity.aod @@ -5,6 +5,9 @@ <documentation>%aditoprj%/entity/Leadimport_entity/documentation.adoc</documentation> <icon>NEON:IMPORT</icon> <title>Lead Import</title> + <grantUpdate v="true" /> + <grantUpdateProcess>%aditoprj%/entity/Leadimport_entity/grantUpdateProcess.js</grantUpdateProcess> + <grantDelete v="true" /> <grantDeleteProcess>%aditoprj%/entity/Leadimport_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Leadimport_entity/contentTitleProcess.js</contentTitleProcess> <iconId>NEON:IMPORT</iconId> @@ -55,6 +58,9 @@ <name>bindata</name> <title>File</title> <contentType>FILE</contentType> + <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/Leadimport_entity/entityfields/bindata/mandatoryProcess.js</mandatoryProcess> + <stateProcess>%aditoprj%/entity/Leadimport_entity/entityfields/bindata/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/bindata/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Leadimport_entity/entityfields/bindata/displayValueProcess.js</displayValueProcess> </entityField> @@ -66,6 +72,7 @@ <title>Transfer data</title> <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js</onActionProcess> <isMenuAction v="true" /> + <isObjectAction v="false" /> <isSelectionAction v="false" /> <iconId>VAADIN:INBOX</iconId> </entityActionField> @@ -245,6 +252,7 @@ </entityField> <entityField> <name>loadedData</name> + <state>AUTO</state> </entityField> <entityActionField> <name>Load_Data</name> @@ -252,6 +260,7 @@ <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/load_data/onActionProcess.js</onActionProcess> <isMenuAction v="true" /> <iconId>VAADIN:CLOUD_DOWNLOAD</iconId> + <state>INVISIBLE</state> </entityActionField> <entityConsumer> <name>LeadTempC</name> diff --git a/entity/Leadimport_entity/entityfields/bindata/mandatoryProcess.js b/entity/Leadimport_entity/entityfields/bindata/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c86f1480b018155974967ef1c7f73001996becc5 --- /dev/null +++ b/entity/Leadimport_entity/entityfields/bindata/mandatoryProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string("true"); +else + result.string("false"); \ No newline at end of file diff --git a/entity/Leadimport_entity/entityfields/bindata/stateProcess.js b/entity/Leadimport_entity/entityfields/bindata/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..82996dba0e46889f66cd7fe7149649e580eba948 --- /dev/null +++ b/entity/Leadimport_entity/entityfields/bindata/stateProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string("EDITABLE"); +else + result.string("READONLY"); \ No newline at end of file diff --git a/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js b/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js index b3b5434170aa6509d402bd72d43622309ee9ab3a..c7b4f0fdf7661d9430c260c73320cac09a35dec8 100644 --- a/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js +++ b/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js @@ -4,6 +4,7 @@ import("system.vars"); import("KeywordRegistry_basic"); import("Sql_lib"); import("system.db"); +import("system.neon"); let leadimportId = vars.get("$field.LEADIMPORTID"); @@ -32,6 +33,8 @@ newWhere("LEAD.LEADIMPORT_ID", leadimportId) // Ändern des Status auf Created newWhere("LEADIMPORT.LEADIMPORTID", leadimportId).updateData(true, "LEADIMPORT", ["Status"], null, [$KeywordRegistry.importStatus$created()]); +neon.refreshAll(); + /** * Deletes the Data with was created by the Leadimport of the given table * @@ -41,11 +44,12 @@ newWhere("LEADIMPORT.LEADIMPORTID", leadimportId).updateData(true, "LEADIMPORT", */ function _deleteData (pTableName, pleadimportId, pdateADayBefor) { + let uTableName = pTableName.charAt(0); newWhere(pTableName + "." + pTableName + "ID", newSelect(pTableName + "." + pTableName + "ID") - .from(pTableName) - .join("LEADLOG", "LEADLOG.DATE_NEW = " + pTableName + ".DATE_NEW") - .where(pTableName + ".USER_NEW = LEADLOG.USER_NEW") + .from(pTableName, uTableName) + .join("LEADLOG", "LEADLOG.DATE_NEW = " + uTableName + ".DATE_NEW") + .where(uTableName + ".USER_NEW = LEADLOG.USER_NEW") .and("LEADLOG.LEADIMPORT_ID", pleadimportId) .and("LEADLOG.DATE_NEW", pdateADayBefor.getTime(), "# >= ?"), SqlBuilder.IN()) .from(pTableName) diff --git a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js index fafffc5af0aef86b2c87725292e3954073dd29c3..030b5064fd4b0f485c28ae2841dfed08842b14b1 100644 --- a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js +++ b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js @@ -41,7 +41,13 @@ if (binMetadatas.length > 0) } //process.execute("importLead_serverProcess", params); - process.executeAsync("importLead_serverProcess", params, false, user, process.THREADPRIORITY_LOW, process.TIMERTYPE_SERVER) + var processConfig = process.createStartAsyncConfig().setName("importLead_serverProcess") + .setLocalVariables(params) + .setShowErrorDialog(false) + .setUser(user) + .setThreadPriority(process.THREADPRIORITY_LOW) + .setTimerType(process.TIMERTYPE_SERVER); + process.startAsync(processConfig); } else { question.showMessage("Error: The Importfile could not be found anymore."); } \ No newline at end of file diff --git a/entity/Leadimport_entity/grantDeleteProcess.js b/entity/Leadimport_entity/grantDeleteProcess.js index 9f316828ed1c0cf3259ad6ed055a60b3da65edb3..416fae60ccb6b7be26ccf428eb9c5f692b18b077 100644 --- a/entity/Leadimport_entity/grantDeleteProcess.js +++ b/entity/Leadimport_entity/grantDeleteProcess.js @@ -10,4 +10,4 @@ var canDelete = new HasLinkedObjectTester() .andNoEntityRows("Task_entity", "Tasks", {ObjectId_param : currentContext, RowId_param : rowId}) //Tasks .validate(); -result.string(canDelete); \ No newline at end of file +result.string(canDelete); diff --git a/entity/Leadimport_entity/grantUpdateProcess.js b/entity/Leadimport_entity/grantUpdateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3013d5b76c2c1036c8efb77ee4a4260ca6d96d15 --- /dev/null +++ b/entity/Leadimport_entity/grantUpdateProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("KeywordRegistry_basic"); + +result.string((vars.get("$field.STATUS") != $KeywordRegistry.importStatus$transfered()).toString()); \ No newline at end of file diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js index 1f82f62e8044dcf276f7546ee8c3eb4c78dd4725..9335140ab1c5174408bc2300ee3ec2e263bd06e1 100644 --- a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js @@ -12,7 +12,7 @@ var assignmentRowId = vars.get("$field.LEADIMPORTID"); var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.bindata")); var filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.bindata")); -var fieldSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.FIELDSEPARATOR")); +var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR")); var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS")); var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR")); diff --git a/entity/Member_entity/Member_entity.aod b/entity/Member_entity/Member_entity.aod index 5dd48e6a7662134507c0e9b5c7c869db09714065..8dbfb116d099c099e2fc71242a290bf137576d32 100644 --- a/entity/Member_entity/Member_entity.aod +++ b/entity/Member_entity/Member_entity.aod @@ -81,7 +81,7 @@ <dependency> <name>dependency</name> <entityName>Person_entity</entityName> - <fieldName>Contacts</fieldName> + <fieldName>IdFilteredActiveContacts</fieldName> </dependency> <children> <entityParameter> diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod index 71ce2c0cd127943df5f658c170a930a2ca11ca07..32689181066c4c089b9cb02d88ba84063f371310 100644 --- a/entity/Notification_entity/Notification_entity.aod +++ b/entity/Notification_entity/Notification_entity.aod @@ -100,7 +100,7 @@ </entityActionField> <entityActionField> <name>setRead</name> - <title>setRead</title> + <title>set Read</title> <description></description> <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js</onActionProcess> <isSelectionAction v="true" /> @@ -109,14 +109,14 @@ <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/tooltipProcess.js</tooltipProcess> </entityActionField> <entityActionField> - <name>setUnread</name> - <title>setUnread</title> + <name>setNew</name> + <title>set New</title> <description></description> - <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setunread/onActionProcess.js</onActionProcess> + <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setnew/onActionProcess.js</onActionProcess> <isSelectionAction v="true" /> <iconId>VAADIN:BOOK</iconId> <tooltip></tooltip> - <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setunread/tooltipProcess.js</tooltipProcess> + <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setnew/tooltipProcess.js</tooltipProcess> </entityActionField> </children> </entityActionGroup> diff --git a/entity/Notification_entity/entityfields/setnotificationstate/children/setunread/onActionProcess.js b/entity/Notification_entity/entityfields/setnotificationstate/children/setnew/onActionProcess.js similarity index 100% rename from entity/Notification_entity/entityfields/setnotificationstate/children/setunread/onActionProcess.js rename to entity/Notification_entity/entityfields/setnotificationstate/children/setnew/onActionProcess.js diff --git a/entity/Notification_entity/entityfields/setnotificationstate/children/setunread/tooltipProcess.js b/entity/Notification_entity/entityfields/setnotificationstate/children/setnew/tooltipProcess.js similarity index 100% rename from entity/Notification_entity/entityfields/setnotificationstate/children/setunread/tooltipProcess.js rename to entity/Notification_entity/entityfields/setnotificationstate/children/setnew/tooltipProcess.js diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js index c17d8835a8583f79cebbeda7a3f9a3ed5b7ed113..55ac5773b3cb1302c26846d766e066c70d64222f 100644 --- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js @@ -2,6 +2,7 @@ import("system.db"); import("system.translate"); import("system.result"); import("system.vars"); +import("system.neon"); import("ObjectRelation_lib"); import("Context_lib"); import("Sql_lib"); @@ -83,7 +84,7 @@ else _loadObjectRelationTree.call(tree, originalObjectIds[i], originalObjectTypes[i], selectedRelationType); } } - if (uidParam) //workaround! + if (uidParam) //workaround! tree = tree.filter(function (row) {return JSON.parse(row[0])[UID.objectRelationId] == uidParam}); } @@ -233,14 +234,20 @@ function _getEntryData(pObjectId, pDirection, pRelationType1, pRelationType2, pP if (pRelationType1 == undefined || pRelationType2 == undefined) return []; - var [myNum, otherNum] = pDirection == "normal" ? [1, 2] : [2, 1]; + var [myNum, otherNum] = pDirection == "normal" ? [2, 1] : [1, 2]; onConditionForRelationTypeJoin = newWhere("AB_OBJECTRELATIONTYPEID = AB_OBJECTRELATIONTYPE" + myNum) .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE1", pRelationType1) .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE2", pRelationType2) - .and("AB_OBJECTRELATION.OBJECT" + myNum + "_ROWID", pObjectId) .andIfSet("AB_OBJECTRELATION.AB_OBJECTRELATIONID", pObjectRelationId || null); // set id to null, as only null works with .andIfSet + // wird benoetigt zum Bearbeiten + if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + onConditionForRelationTypeJoin.and("AB_OBJECTRELATION.OBJECT" + otherNum + "_ROWID", pObjectId); + else + onConditionForRelationTypeJoin.and("AB_OBJECTRELATION.OBJECT" + myNum + "_ROWID", pObjectId); + + // exclude previous node if (!pPrevId) onConditionForRelationTypeJoin.and("AB_OBJECTRELATION.OBJECT" + otherNum + "_ROWID is not null"); diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index ea690ba4a943c3bc9b227d1ea0ca175678e403f2..2d1e2ff409dd15ec5a3c863503159b69ae385721 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -255,6 +255,22 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>Activities</name> + <dependency> + <name>dependency</name> + <entityName>Activity_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>Tasks</name> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js index 959e539e3fa4fb174e0ed0f1e33c69860de603c2..67b5e68f5a12833bca63247bd9903b8d63e57f87 100644 --- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js @@ -5,7 +5,7 @@ import("Context_lib"); // NOTE THAT THIS ENTITY USES THE TARGET_CONSUMER_PROCESSES OF THE PROVIDERS -// --> THIS PROCESS WON'T NOT BE EXECUTED IN SOME CASES. +// --> THIS PROCESS WON'T BE EXECUTED IN SOME CASES. if (vars.get("$param.ObjectType_param")) { diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 0f57da59c153a56bb555e55212792c6558fd68bb..18b73ee9d79ca1d272ecba210f69d47f240fa849 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -930,7 +930,6 @@ <name>LETTERSALUTATION</name> <title>Letter salutation</title> <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/lettersalutation/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/lettersalutation/valueProcess.js</valueProcess> </entityField> <entityActionField> <name>openAdminView</name> diff --git a/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js index 6ebcf9a49b9f2a8d6f2a5b7f54b38fb6a2481fce..f2e8d829a6610c678b5bdd1ad4aa2afaf88acd87 100644 --- a/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js +++ b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.neon"); import("system.vars"); -if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && !vars.get("$field.ADDRESS")) +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) { var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); if (defaultAddressId) diff --git a/entity/Offer_entity/entityfields/contact_id/onValueChange.js b/entity/Offer_entity/entityfields/contact_id/onValueChange.js index 4d3ecbb18ee4bdbd45431fe3ea9b563c29dab08c..74fa8e077b78ed95d1e417ae9326c2ae2ff2d837 100644 --- a/entity/Offer_entity/entityfields/contact_id/onValueChange.js +++ b/entity/Offer_entity/entityfields/contact_id/onValueChange.js @@ -1,3 +1,4 @@ +import("PostalAddress_lib"); import("Sql_lib"); import("system.neon"); import("system.vars"); @@ -17,6 +18,17 @@ if(contactid != "") if(lang != "") neon.setFieldValue("field.ISOLANGUAGE", lang); + var defaultAddressId = ContactUtils.getDefaultAddressId(contactid); + if (defaultAddressId) + { + neon.setFieldValue("field.ChosenAddress", defaultAddressId); + neon.setFieldValue("$field.ADDRESS", AddressUtils.getAddressById(defaultAddressId)); + } + var addrobj = new AddrObject(contactid); + var salutation = addrobj.getFormattedAddress(false, "{letter_salutation},"); + if (salutation != "Err.,") + neon.setFieldValue("field.LETTERSALUTATION", salutation); + // set $field.CONTATCT_ORG_ID per contactid var orgid = ContactUtils.getPersOrgIds(contactid); neon.setFieldValue("$field.CONTACT_ORG_ID", orgid[2]); diff --git a/entity/Offer_entity/entityfields/lettersalutation/valueProcess.js b/entity/Offer_entity/entityfields/lettersalutation/valueProcess.js deleted file mode 100644 index c3b78386885faaaf9b3dcfe18c659d6bb76d9c46..0000000000000000000000000000000000000000 --- a/entity/Offer_entity/entityfields/lettersalutation/valueProcess.js +++ /dev/null @@ -1,12 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("Address_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) -{ - var addrobj = new AddrObject(vars.get("$field.CONTACT_ID")); - var salutation = addrobj.getFormattedAddress(false, "{letter_salutation},"); - if (salutation != "Err.,") - result.string(salutation); -} \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offercode/onValidation.js b/entity/Offer_entity/entityfields/offercode/onValidation.js index 4d9d2f8a307e5bfe834ba5defbbe845b46d279fd..58a3364596c6f0a8f85c3863acf31b877c629f69 100644 --- a/entity/Offer_entity/entityfields/offercode/onValidation.js +++ b/entity/Offer_entity/entityfields/offercode/onValidation.js @@ -1,14 +1,5 @@ -import("system.vars"); -import("system.result"); import("system.neon"); -import("Offer_lib"); -import("Salesproject_lib"); -import("Util_lib"); -import("Entity_lib"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW - && !vars.exists("$param.OfferCode_param") - && !OfferUtils.validateOfferNumber(vars.get("local.value")) ) -{ - vars.set( "$field.OFFERCODE", OfferUtils.getNextOfferNumber().toString() ); -} \ No newline at end of file +//reload the field on save to make sure the offercode is really unique, otherwise the offercode could be the same for two offers created at +//the same time +neon.refresh(["$field.OFFERCODE"]); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js b/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js index c85acd3d4472ebd96a741c7fbffe07198f7acf72..fbd11f7034742ee93fa02bf571013cf7cfcafe3a 100644 --- a/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js +++ b/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js @@ -2,6 +2,7 @@ import("system.question"); import("system.translate"); import("system.vars"); import("KeywordRegistry_basic"); +import("system.translate"); import("Offer_lib"); import("Email_lib"); import("Sql_lib"); @@ -11,16 +12,17 @@ var attachmentArray = new Array(); var notificationMsg = translate.text("The status of the offer was changed to \"Sent\"."); var contactId = vars.get("$field.CONTACT_ID"); var arrayReport = OfferUtils.buildOfferReport(vars.get("$field.OFFERID")); +var emailFilename = translate.text("Offerrequest"); if (vars.get("$field.CONTACT_ID") == null || "") contactId = vars.get("$field.CONTACT_ORG_ID"); offerReport.content = arrayReport[1]; offerReport.contentType = "application/pdf"; -offerReport.filename = vars.get("$field.#CONTENTTITLE") + ".pdf"; +offerReport.filename = translate.text("Offer No.") + vars.get("$field.#CONTENTTITLE") + ".pdf"; attachmentArray[0] = offerReport; -EmailWritingUtils.sendReportAsMail(contactId, attachmentArray, "Offer", notificationMsg); +EmailWritingUtils.sendReportAsMail(contactId, attachmentArray, "Offer", notificationMsg, emailFilename); newWhere("OFFER.OFFERID", "$field.OFFERID") .updateData(true, "OFFER", ["STATUS"], null, [$KeywordRegistry.offerStatus$sent()]); diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index 4394b20365017d2cb7049e6caf600cb377e5c507..30c65d442d8e914dbe9ed081c33c60132450794a 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -784,7 +784,6 @@ </entityParameter> <entityParameter> <name>OrderType_param</name> - <valueProcess>%aditoprj%/entity/Order_entity/entityfields/ordertype_param/valueProcess.js</valueProcess> <expose v="true" /> <description>PARAMETER</description> </entityParameter> diff --git a/entity/Order_entity/entityfields/ordertype_param/valueProcess.js b/entity/Order_entity/entityfields/ordertype_param/valueProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Order_entity/entityfields/salesordercode/onValidation.js b/entity/Order_entity/entityfields/salesordercode/onValidation.js index 77e97cc10241ebf2a9cc22b62524870a95f98fee..f3e48817277e5545f8b9b6296bd84039c58682bf 100644 --- a/entity/Order_entity/entityfields/salesordercode/onValidation.js +++ b/entity/Order_entity/entityfields/salesordercode/onValidation.js @@ -1,15 +1,5 @@ -import("system.vars"); -import("system.result"); import("system.neon"); -import("Order_lib"); -import("Salesproject_lib"); -import("Util_lib"); -import("Entity_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW - && !vars.exists("$param.OrderCode_param") - && !OrderUtils.validateOrderNumber(vars.get("local.value")) ) -{ - vars.set( "$field.SALESORDERCODE", OrderUtils.getNextOrderNumber().toString() ); -} +//reload the field on save to make sure the salesordercode is really unique, otherwise the salesordercode could be the same for two salesorders +//created at the same time +neon.refresh(["$field.SALESORDERCODE"]); \ No newline at end of file diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 55f954b6501a729d5579a4b2e1f797422f88c8bc..96b76098fde1ff72a627226316fcbca2d88d72cc 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -51,7 +51,6 @@ <entityField> <name>CONTACTID</name> <title>CONTACTID</title> - <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/contactid/valueProcess.js</valueProcess> </entityField> <entityField> <name>STATUS</name> @@ -189,7 +188,6 @@ <title>Address</title> <consumer>Addresses</consumer> <state>AUTO</state> - <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/address_id/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Organisation_entity/entityfields/address_id/displayValueProcess.js</displayValueProcess> </entityField> <entityConsumer> @@ -950,6 +948,7 @@ <entityProvider> <name>SelfDuplicatesProvider</name> <titlePlural>Duplicates</titlePlural> + <recordContainer>index</recordContainer> </entityProvider> <entityParameter> <name>OnlyShowContactIds_param</name> @@ -1080,12 +1079,14 @@ <title>New Visit Recommendation</title> <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess> <iconId>VAADIN:CALENDAR</iconId> + <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js</stateProcess> </entityActionField> <entityActionField> <name>newVisitPlanEntry</name> <title>New Weekplanentry</title> <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess> <iconId>VAADIN:CAR</iconId> + <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess> </entityActionField> <entityActionField> <name>openLocation</name> @@ -1308,9 +1309,6 @@ <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess> <filtertype>BASIC</filtertype> </filterExtensionSet> - <filterExtension> - <name>filterExtension</name> - </filterExtension> </filterExtensions> </dbRecordContainer> <indexRecordContainer> diff --git a/entity/Organisation_entity/entityfields/contactid/valueProcess.js b/entity/Organisation_entity/entityfields/contactid/valueProcess.js deleted file mode 100644 index 86ef789e064a4016f2d12c432498dc23474807aa..0000000000000000000000000000000000000000 --- a/entity/Organisation_entity/entityfields/contactid/valueProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -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/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js b/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aefbc6e8f76f99c4281890f3461553c49562d5b9 --- /dev/null +++ b/entity/Organisation_entity/entityfields/newvisitplanentry/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("KeywordRegistry_basic"); + +if (vars.get("$field.STATUS") == $KeywordRegistry.contactStatus$inactive()) + result.string(neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js b/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aefbc6e8f76f99c4281890f3461553c49562d5b9 --- /dev/null +++ b/entity/Organisation_entity/entityfields/newvisitrecommendation/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("KeywordRegistry_basic"); + +if (vars.get("$field.STATUS") == $KeywordRegistry.contactStatus$inactive()) + result.string(neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js b/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js index 764513935758151ec5cf988b86e9f304be4d296f..1b94fd17857e5341668bf6d95a4c3b548d1ab214 100644 --- a/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js +++ b/entity/Organisation_entity/entityfields/openlocation/onActionProcess.js @@ -13,6 +13,8 @@ addressData = newSelect("ADDRESS, BUILDINGNO, ZIP, CITY, COUNTRY") address.push(addressData.join("+")); -addressUrl = "https://www.google.com/maps/dir/" + address.join("/"); +addressUrl = "https://www.google.com/maps/dir//" + address.join("/"); +// the two slashes after dir are needed, because google uses those to specify whether the address is the startpoint +// or the location of the route. We need two, because we want the location of the organisation as the destination. neon.openUrl(addressUrl, true); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js b/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js index 45379fef45e865cc1b5db3b8ff3a663b1d24deb4..fdbb29bfe3953fb655929382d1c4f393330c2d0a 100644 --- a/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js +++ b/entity/Organisation_entity/entityfields/selfduplicatesuncached/children/onlyshowcontactids_param/valueProcess.js @@ -5,58 +5,47 @@ import("system.vars"); import("DuplicateScanner_lib"); import("system.result"); -let scannerName = "OrganisationDuplicates"; -let targetEntity = "Organisation_entity"; -let valuesToCheck = {}; +var scannerName = "OrganisationDuplicates"; +var targetEntity = "Organisation_entity"; +var valuesToCheck = {}; var entityFieldsToLoad = DuplicateScannerUtils.GetEntityFieldsFromConfig(scannerName, targetEntity); -if(entityFieldsToLoad == null || entityFieldsToLoad.length == 0) - result.string(JSON.stringify(["nodata"])); +var idsForEmptyResult = JSON.stringify(["nodata"]); + +if (entityFieldsToLoad == null || entityFieldsToLoad.length == 0) + result.string(idsForEmptyResult); else { //Read the values of all available entity fields and write the fieldname7value combination //as key/value pairs into an object. This is used to trigger the scan for duplicates - vars.get("$field.STANDARD_CITY"); - vars.get("$field.STANDARD_ZIP"); - vars.get("$field.STANDARD_ADDRESS"); + vars.get("$field.NAME") + vars.get("$field.STANDARD_CITY"); + vars.get("$field.STANDARD_ZIP"); + vars.get("$field.STANDARD_ADDRESS"); - let field = ''; - let fieldValue = ''; - for (fieldname in entityFieldsToLoad) - { - field = entityFieldsToLoad[fieldname]; - fieldValue = vars.get("$field." + field); + for (let fieldname in entityFieldsToLoad) + { + var field = entityFieldsToLoad[fieldname]; + var fieldValue = vars.get("$field." + field); - if(fieldValue != null && fieldValue != "") - { + if (fieldValue) valuesToCheck[field] = fieldValue; - } - } - - let scanResults = DuplicateScannerUtils.ScanForDuplicates(scannerName, targetEntity, - valuesToCheck, null); - - let duplicateIds = []; - - if(scanResults != undefined && scanResults != null) - { - //Run thru every duplicate result and read out the id. - //Do it now to have a simple array on all usages lateron. - for (let i = 0; i < scanResults.length; i++) - { - let duplicateContactId = scanResults[i][indexsearch.FIELD_ID]; - duplicateIds.push(duplicateContactId); - } - } - - /* - * To achieve that if there are no duplicates, no contacts should be shown and therefore returned by the - * recordcontainer, an invalid id gets returned. It then is used in the conditionProcess to load the duplicates. - * Because of its invalidity, no records are shown. - */ - if(duplicateIds.length == 0) - result.string(JSON.stringify(["nodata"])); - else - result.string(JSON.stringify(duplicateIds)); + } + + var scanResults = DuplicateScannerUtils.ScanForDuplicates(scannerName, targetEntity, valuesToCheck, null) || []; + var duplicateIds = scanResults.map(function (scanResult) + { + return scanResult[indexsearch.FIELD_ID]; + }); + + /* + * To achieve that if there are no duplicates, no contacts should be shown and therefore returned by the + * recordcontainer, an invalid id gets returned. It then is used in the conditionProcess to load the duplicates. + * Because of its invalidity, no records are shown. + */ + if (duplicateIds.length == 0) + result.string(idsForEmptyResult); + else + result.string(JSON.stringify(duplicateIds)); } \ No newline at end of file diff --git a/entity/Organisation_entity/recordcontainers/index/affectedIds.js b/entity/Organisation_entity/recordcontainers/index/affectedIds.js index 12de7b2aec6cc9bd8a679cc865ee7c3c1c1bca9b..a8b02566f9728cbe5a6c53033c884d780b6a71b8 100644 --- a/entity/Organisation_entity/recordcontainers/index/affectedIds.js +++ b/entity/Organisation_entity/recordcontainers/index/affectedIds.js @@ -41,8 +41,10 @@ switch (tableName) .arrayColumn(); }); break; + default: + res = []; //needed, because the Index is being rebuilt if nothing gets returned } -if (res) { result.object(res); -} + + diff --git a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod index 1561a02279e74ce1ead175e5864bd2d810aca2fd..8bd374fd3485951d6ff0cef39ff55d465a66f135 100644 --- a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod +++ b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod @@ -128,7 +128,6 @@ </entityProvider> <entityParameter> <name>PermissionProcurer_param</name> - <valueProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/permissionprocurer_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> <entityParameter> diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod index 89f1f962d9336cd357386cefa1be0d4ea96801ef..6746dfb9da55635d8b67b594885eb04d61a923ec 100644 --- a/entity/PermissionDetail_entity/PermissionDetail_entity.aod +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -134,7 +134,6 @@ <children> <entityParameter> <name>EntityName_param</name> - <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/metadata/children/entityname_param/valueProcess.js</valueProcess> </entityParameter> </children> </entityConsumer> diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index b50490a5992a498f3e2aa87967892a3f2c4e820d..d8bfbd275ac29413e596bd0b43dc2348f0b01f1a 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -47,7 +47,6 @@ <name>LASTNAME</name> <title>Lastname</title> <mandatory v="true" /> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/lastname/valueProcess.js</valueProcess> </entityField> <entityField> <name>MIDDLENAME</name> @@ -133,6 +132,10 @@ <name>OrgId_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityField> @@ -356,6 +359,10 @@ <name>ExcludedContactIds_param</name> <expose v="false" /> </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityConsumer> @@ -675,12 +682,6 @@ <fieldName>ContactsConsumer</fieldName> <isConsumer v="false" /> </entityDependency> - <entityDependency> - <name>4d317eb3-6a4e-40c6-946e-d54289dcd99b</name> - <entityName>Member_entity</entityName> - <fieldName>Contacts</fieldName> - <isConsumer v="false" /> - </entityDependency> <entityDependency> <name>0b7a3dc8-854f-4a0b-9e1c-e6f7cd12d8f1</name> <entityName>DuplicatesDetails_entity</entityName> @@ -717,6 +718,10 @@ <name>OnlyShowContactIds_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityConsumer> @@ -811,7 +816,8 @@ </entityParameter> <entityParameter> <name>OnlyActive_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/avatartext_param/valueProcess.js</valueProcess> + <valueProcess>%aditoprj%/entity/Person_entity/entityfields/onlyactive_param/valueProcess.js</valueProcess> + <expose v="true" /> <description>PARAMETER</description> </entityParameter> <entityConsumer> @@ -888,7 +894,6 @@ <entityField> <name>STANDARD_COUNTRY</name> <title>Country</title> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/standard_country/valueProcess.js</valueProcess> </entityField> <entityConsumer> <name>SelfDuplicatesUncached</name> @@ -957,6 +962,10 @@ <name>OrgId_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityActionField> @@ -986,7 +995,6 @@ <title>New task</title> <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newtask/onActionProcess.js</onActionProcess> <iconId>VAADIN:TASKS</iconId> - <iconIdProcess>%aditoprj%/entity/Person_entity/entityfields/newtask/iconIdProcess.js</iconIdProcess> </entityActionField> <entityActionField> <name>addToCampaign</name> @@ -1119,7 +1127,6 @@ <name>openTaskView</name> <isMenuAction v="false" /> <isObjectAction v="false" /> - <stateProcess>%aditoprj%/entity/Person_entity/entityfields/opentaskview/stateProcess.js</stateProcess> </entityActionField> <entityActionField> <name>startWorkflow</name> @@ -1135,50 +1142,6 @@ <iconId>VAADIN:CURLY_BRACKETS</iconId> <stateProcess>%aditoprj%/entity/Person_entity/entityfields/openadminview/stateProcess.js</stateProcess> </entityActionField> - <entityConsumer> - <name>PersonDuplicates</name> - <dependency> - <name>dependency</name> - </dependency> - <children> - <entityParameter> - <name>targetEntity_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/targetentity_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>filterName_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/filtername_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>resultFields_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/resultfields_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>valuesToScan_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/valuestoscan_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>resultFieldsIdFieldName_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/resultfieldsidfieldname_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>recordIdToIgnore_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/recordidtoignore_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>targetContext_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/targetcontext_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>sourceContactId_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/sourcecontactid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>contactIdToCheckForCachedDuplicates_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/personduplicates/children/contactidtocheckforcachedduplicates_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> <entityParameter> <name>OnlyShowContactIds_param</name> <expose v="true" /> @@ -1190,20 +1153,6 @@ <entityName>Person_entity</entityName> <fieldName>SelfDuplicatesProvider</fieldName> </dependency> - <children> - <entityParameter> - <name>OnlyShowContactIds_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicates/children/onlyshowcontactids_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>DuplicateCurrentContactId_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicates/children/duplicatecurrentcontactid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>DuplicateActionsControl_param</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/selfduplicates/children/duplicateactionscontrol_param/valueProcess.js</valueProcess> - </entityParameter> - </children> </entityConsumer> <entityProvider> <name>SelfDuplicatesProvider</name> @@ -1221,6 +1170,10 @@ <name>OnlyShowContactIds_param</name> <mandatory v="true" /> </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityField> @@ -1244,18 +1197,62 @@ </entityParameter> <entityField> <name>IndexPhoneticLastname</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/indexphoneticlastname/valueProcess.js</valueProcess> </entityField> <entityField> <name>IndexPhoneticFirstname</name> - <valueProcess>%aditoprj%/entity/Person_entity/entityfields/indexphoneticfirstname/valueProcess.js</valueProcess> </entityField> <entityActionField> <name>newVisitPlanEntry</name> <title>New Weekplanentry</title> <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess> <iconId>VAADIN:CAR</iconId> + <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess> </entityActionField> + <entityProvider> + <name>IdFilteredActiveContacts</name> + <dependencies> + <entityDependency> + <name>511f3e4c-7493-4a31-a136-0ba80ba2ec85</name> + <entityName>Member_entity</entityName> + <fieldName>Contacts</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>ExcludedContactIds_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>ContactId_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>DuplicateActionsControl_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>OnlyOwnSupervised_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>OrgId_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>OnlyShowContactIds_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>OnlyActive_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>DuplicateCurrentContactId_param</name> + <expose v="false" /> + </entityParameter> + </children> + </entityProvider> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js b/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js index d9f980358fb5ae885dcbffee0116b9e187a23ff2..648ecdcc39a88b74966045e32a9fbb3d7fdb707c 100644 --- a/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js +++ b/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js @@ -3,15 +3,15 @@ import("system.vars"); import("system.neon"); import("DuplicateScanner_lib"); -let sourceContactId = vars.get("$param.DuplicateCurrentContactId_param"); -let targetContactId = vars.get("$sys.selection"); +var sourceContactId = vars.get("$param.DuplicateCurrentContactId_param"); +var targetContactId = vars.get("$sys.selection")[0]; //todo the actual merge ought to happen in a separate view where the contact infos can be merged manually by the user. -let mergeSuccess = DuplicateScannerUtils.MergePerson(sourceContactId, targetContactId); +var mergeSuccess = DuplicateScannerUtils.MergePerson(sourceContactId, targetContactId); if(mergeSuccess) { - let currentContactId = EmployeeUtils.getCurrentContactId(); + var currentContactId = EmployeeUtils.getCurrentContactId(); if(currentContactId == null) currentContactId = ""; DuplicateScannerUtils.CreateMergeSuccessActivity(sourceContactId, targetContactId, currentContactId, "Person"); diff --git a/entity/Person_entity/entityfields/newtask/iconIdProcess.js b/entity/Person_entity/entityfields/newtask/iconIdProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js b/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aefbc6e8f76f99c4281890f3461553c49562d5b9 --- /dev/null +++ b/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("KeywordRegistry_basic"); + +if (vars.get("$field.STATUS") == $KeywordRegistry.contactStatus$inactive()) + result.string(neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/opentaskview/stateProcess.js b/entity/Person_entity/entityfields/opentaskview/stateProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Person_entity/recordcontainers/db/filterValuesProcess.js b/entity/Person_entity/recordcontainers/db/filterValuesProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Person_entity/recordcontainers/index/affectedIds.js b/entity/Person_entity/recordcontainers/index/affectedIds.js index 24ea484ba1ecc993a37d14329c3901e7fb28a1c6..1cbcfeeb6850a41a4d13165adc198e5e10eb94c8 100644 --- a/entity/Person_entity/recordcontainers/index/affectedIds.js +++ b/entity/Person_entity/recordcontainers/index/affectedIds.js @@ -47,9 +47,9 @@ switch (tableName) .arrayColumn(); }); break; + default: + res = []; //needed, because the Index is being rebuilt if nothing gets returned + break; } -if (res) { - result.object(res); -} - \ No newline at end of file + result.object(res); \ No newline at end of file diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod index d2f136356913dc5ed1ab126b38dce5e40e165ddd..87871e04a0b855f31100bc83b883457f13f11d72 100644 --- a/entity/Product_entity/Product_entity.aod +++ b/entity/Product_entity/Product_entity.aod @@ -24,7 +24,7 @@ </entityField> <entityField> <name>GROUPCODEID</name> - <title>Product group</title> + <title>Product Group</title> <consumer>KeywordProductGroupcodes</consumer> <mandatory v="true" /> <displayValueProcess>%aditoprj%/entity/Product_entity/entityfields/groupcodeid/displayValueProcess.js</displayValueProcess> diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod index 7507c81c7c84565f69ea23840734a22674d19666..6d1292a40239e42a8ef9289f48e981d54275b310 100644 --- a/entity/Productprice_entity/Productprice_entity.aod +++ b/entity/Productprice_entity/Productprice_entity.aod @@ -235,7 +235,6 @@ <hasDependentRecords v="true" /> <conditionProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <orderClauseProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> - <onDBDelete>%aditoprj%/entity/Productprice_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <linkInformation> <linkInformation> <name>85fd1bcf-499f-4708-ad8e-18f5a0f5337d</name> diff --git a/entity/Productprice_entity/entityfields/product_id/displayValueProcess.js b/entity/Productprice_entity/entityfields/product_id/displayValueProcess.js index 902d8b81e59a1cebe37203456662652334a07411..62dfdaf791091cabb2983bad7ed5f34dd09272ba 100644 --- a/entity/Productprice_entity/entityfields/product_id/displayValueProcess.js +++ b/entity/Productprice_entity/entityfields/product_id/displayValueProcess.js @@ -5,11 +5,7 @@ import("system.db"); import("Sql_lib"); // TODO: Wenn es möglich ist, den anzeigenamen des Produkts über die Entity beziehung zu laden, dann umbauen...!!! -if((vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) -{ - result.string(newSelect("PRODUCTNAME") - .from("PRODUCT") - .whereIfSet("$field.PRODUCT_ID") - .cell(true)); -} \ No newline at end of file +result.string(newSelect("PRODUCTNAME") + .from("PRODUCT") + .whereIfSet("PRODUCT.PRODUCTID", "$field.PRODUCT_ID") + .cell(true)); \ No newline at end of file diff --git a/entity/Productprice_entity/recordcontainers/db/onDBDelete.js b/entity/Productprice_entity/recordcontainers/db/onDBDelete.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index 488d2ebf3e0cd71e82086f789ce845699d94d7a9..44bc9ab626639e8b99a9f08b176e85a2b8b8d61b 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -3,7 +3,7 @@ <name>Salesproject_entity</name> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Salesproject_entity/documentation.adoc</documentation> - <title>Salesproject</title> + <title>Sales Project</title> <siblings> <element>SalesprojectMilestone_entity</element> </siblings> @@ -13,7 +13,7 @@ <onValidation>%aditoprj%/entity/Salesproject_entity/onValidation.js</onValidation> <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState> <iconId>VAADIN:BOOK_DOLLAR</iconId> - <titlePlural>Salesprojects</titlePlural> + <titlePlural>Sales Projects</titlePlural> <recordContainer>db</recordContainer> <entityFields> <entityProvider> diff --git a/entity/Salesproject_entity/entityfields/projectcode/onValidation.js b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js index 2c9020b283b0fdbbbd8053aa313d14b19c347bf8..7f54dbb3d57551300fa0ad16b3485caab5d14475 100644 --- a/entity/Salesproject_entity/entityfields/projectcode/onValidation.js +++ b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js @@ -1,12 +1,5 @@ -import("system.vars"); -import("system.result"); import("system.neon"); -import("Salesproject_lib"); -import("Util_lib"); -import("Entity_lib"); -if( vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW - && !Salesproject.validateProjectNumber(vars.get("local.value")) ) -{ - vars.set( "$field.PROJECTCODE", Salesproject.getNextProjectNumber().toString("1 = 1") ); -} \ No newline at end of file +//reload the field on save to make sure the projectcode is really unique, otherwise the projectcode could be the same for two projects created at +//the same time +neon.refresh(["$field.PROJECTCODE"]); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/filterValuesProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterValuesProcess.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Salutation_entity/Salutation_entity.aod b/entity/Salutation_entity/Salutation_entity.aod index 9c5ee36bbd9aed083cd330066f25118141a031c0..f7f79d1f0136d7b330265d712fd41d100d13e2f6 100644 --- a/entity/Salutation_entity/Salutation_entity.aod +++ b/entity/Salutation_entity/Salutation_entity.aod @@ -51,6 +51,7 @@ <entityField> <name>SORT</name> <title>Sorting</title> + <valueProcess>%aditoprj%/entity/Salutation_entity/entityfields/sort/valueProcess.js</valueProcess> </entityField> <entityField> <name>TITLE</name> diff --git a/entity/Salutation_entity/entityfields/sex/valueProcess.js b/entity/Salutation_entity/entityfields/sex/valueProcess.js index ce31dcbede0d54a6db9b46ee1b4e0dbcb3b30752..fdf5d8633b6a364a16d13f7f67a8934ac3fefe02 100644 --- a/entity/Salutation_entity/entityfields/sex/valueProcess.js +++ b/entity/Salutation_entity/entityfields/sex/valueProcess.js @@ -3,7 +3,7 @@ import("system.vars"); import("KeywordRegistry_basic"); import("system.result"); -/*if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) { result.string($KeywordRegistry.personGender$other()); -}*/ \ No newline at end of file +} \ No newline at end of file diff --git a/entity/Salutation_entity/entityfields/sort/valueProcess.js b/entity/Salutation_entity/entityfields/sort/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..867b597fbcf1a681c2aa1b2e574b957af0add1b2 --- /dev/null +++ b/entity/Salutation_entity/entityfields/sort/valueProcess.js @@ -0,0 +1,12 @@ +import("system.neon"); +import("Sql_lib"); +import("system.vars"); +import("system.result"); + +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) +{ + var res = newSelect("max(SALUTATION.SORT)+1") + .from("SALUTATION") + .cell() + result.string(res); +} \ No newline at end of file diff --git a/entity/SupportTicket_entity/SupportTicket_entity.aod b/entity/SupportTicket_entity/SupportTicket_entity.aod index f1320203bfe5a5c482665a7fbf8f0098ff4f8d0f..db8daa732b8e6ba8ac26517fd2f225314c6575a3 100644 --- a/entity/SupportTicket_entity/SupportTicket_entity.aod +++ b/entity/SupportTicket_entity/SupportTicket_entity.aod @@ -485,7 +485,6 @@ </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TASK_PRIORITY.displayValue</name> - <expression>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_priority.displayvalue/expression.js</expression> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TASK_PROGRESS.value</name> diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 28aaf1ff3a2235dee2c18623f6186cedb2503760..0be99b99ff62a5d371fa7c3147fcf23fa13fc07c 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -16,6 +16,14 @@ <entityProvider> <name>#PROVIDER</name> <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>7a20f989-4c0a-40aa-9092-6ea9e99e851e</name> + <entityName>Object_entity</entityName> + <fieldName>Tasks</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> </entityProvider> <entityField> <name>SUBJECT</name> diff --git a/entity/Task_entity/contentTitleProcess.js b/entity/Task_entity/contentTitleProcess.js index 42200983cd942d93065d3728601f40eb2cc2d4ad..f52078612d802465f741fa89ea2baae0165c1e6b 100644 --- a/entity/Task_entity/contentTitleProcess.js +++ b/entity/Task_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.TYPE.displayValue")) \ No newline at end of file +result.string(vars.get("$field.SUBJECT")) \ No newline at end of file diff --git a/entity/Task_entity/recordcontainers/db/conditionProcess.js b/entity/Task_entity/recordcontainers/db/conditionProcess.js index 98ee6c1d37d0602d24647a54c6c46497854029d6..bf89d69810e24d611916e499974711d72c438654 100644 --- a/entity/Task_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Task_entity/recordcontainers/db/conditionProcess.js @@ -33,6 +33,19 @@ if (loadNothing) } else { + //null has a special sql treatment, therefor check null and != 1 + var protectionLevelCondition = newWhere("TASK.PROTECTIONLEVEL != 1 or TASK.PROTECTIONLEVEL is null"); + if (ownContactId) + { + protectionLevelCondition.or( + newWhere("TASK.PROTECTIONLEVEL = 1") + .and(newWhere("TASK.EDITOR_CONTACT_ID", ownContactId) + .or("TASK.REQUESTOR_CONTACT_ID", ownContactId) + ) + ); + } + cond.and(protectionLevelCondition) + //TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026 result.string(cond.toString()); } \ No newline at end of file diff --git a/entity/TurnoverTree_entity/TurnoverTree_entity.aod b/entity/TurnoverTree_entity/TurnoverTree_entity.aod index 2c31f603738fa26bdd6e905718259e6545517b64..412433f0950fd8d93d64fee60e73c9d96b126e4f 100644 --- a/entity/TurnoverTree_entity/TurnoverTree_entity.aod +++ b/entity/TurnoverTree_entity/TurnoverTree_entity.aod @@ -77,7 +77,7 @@ </entityField> <entityField> <name>GROUP</name> - <title>Product group</title> + <title>Product Group</title> </entityField> <entityField> <name>FORECASTPRICE</name> diff --git a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js index f72044a7c9312c6e04b4e3649629c884e82dc082..43feeb028966f9f5e0da867224d550f289cc459b 100644 --- a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js +++ b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js @@ -35,9 +35,9 @@ for (var i = 0, l = files.length; i < l; i++) var incomingMailExec = new IncomingEmailExecutor(mailObj); incomingMailExec.setAlias(dbAlias); var mailImportResult = incomingMailExec.autoProcess() - if ((!mailImportResult.unlinkedMailId) && mailImportResult.activityId) + if ((!mailImportResult.isUnlinkedMail) && mailImportResult.activityId) status.activitiesCreated++; - else if (mailImportResult.unlinkedMailId && mailImportResult.activityId) + else if (mailImportResult.isUnlinkedMail && mailImportResult.activityId) status.unlinkedMailsCreated++; else status.skippedFiles++; diff --git a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod index 449150050accbbfd17b3ac473b85c6532b497ec1..46740270752b5207fb8b62d480d5ebf3c57259e9 100644 --- a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod +++ b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod @@ -173,12 +173,6 @@ <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> - <entityConsumer> - <name>visitPlanEmployeeWeeks_Id</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> <entityParameter> <name>ComingFromRecommendation_param</name> <expose v="true" /> diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod index 43bd4194877fb2a0fa8ccfd9b7d4385d7d1c5db0..5719de94c66c1f01c91b39451f9d96deb117f2c6 100644 --- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -194,6 +194,9 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>VERSION_TITLE</name> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -234,6 +237,9 @@ <jDitoRecordFieldMapping> <name>DESCRIPTION.value</name> </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>VERSION_TITLE.value</name> + </jDitoRecordFieldMapping> </recordFieldMappings> </jDitoRecordContainer> </recordContainers> diff --git a/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js index 732cf42d0b882149fc1e4dad9234383106637c06..a9231e7044d7ab9e4331809c863662b08f525404 100644 --- a/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js +++ b/entity/WorkflowDefinition_entity/entityfields/diagram/valueProcess.js @@ -3,5 +3,5 @@ import("system.result"); import("system.neon"); import("system.workflow"); -if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$field.VERSION")) +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$field.VERSION")) result.string(workflow.getProcessDiagram(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js index 6523e43702e8fd2ac39f3fbc8222069d5abd4eff..aff0261cf5187f58d2b66bafd7d223034036e2a4 100644 --- a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("system.translate"); import("KeywordRegistry_basic"); import("system.vars"); import("system.result"); @@ -50,7 +51,8 @@ result.object((function () def.key, def.version, def.active, - def.description || "" + def.description || "", + translate.withArguments("Version %0", [def.version]) ]; }); diff --git a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod index 70792616c28e031a80569f42f07e0d2656ec68fe..05b77e9fea96cde4f1b68245d886d207ff6d41df 100644 --- a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod +++ b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod @@ -154,10 +154,6 @@ <name>PROCESSDEFINITION_KEY.value</name> <recordfield>WORKFLOWSIGNAL.PROCESSDEFINITION_KEY</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ICON.value</name> - <expression>%aditoprj%/entity/WorkflowSignal_entity/recordcontainers/db/recordfieldmappings/icon.value/expression.js</expression> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>VARIABLES.value</name> <recordfield>WORKFLOWSIGNAL.VARIABLES</recordfield> diff --git a/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js b/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js index 1bae28698e6ca6fea69f1f2327b507defec4368e..f923d3d4080f7f52d60664e2d6fefe329ff35cf2 100644 --- a/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js +++ b/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js @@ -1,6 +1,16 @@ +import("system.vars"); +import("system.workflow"); import("Sql_lib"); import("system.result"); -var cond = newWhereIfSet("WORKFLOWSIGNAL.PROCESSDEFINITION_KEY", "$param.ProcessDefinitionKey_param"); +//include all signals with the same names as the ones in the current workflow definition to avoid conflicts +var signals = JSON.parse(workflow.getSignalDefinitions(vars.get("$param.ProcessDefinitionId_param"))); +var signalNames = signals.map(function (signal) +{ + return signal.name; +}); + +var cond = newWhereIfSet("WORKFLOWSIGNAL.PROCESSDEFINITION_KEY", "$param.ProcessDefinitionKey_param") + .orIfSet("WORKFLOWSIGNAL.SIGNAL_NAME", signalNames, SqlBuilder.IN()); result.string(cond.toString()); \ No newline at end of file diff --git a/entity/WorkflowSignal_entity/recordcontainers/db/recordfieldmappings/icon.value/expression.js b/entity/WorkflowSignal_entity/recordcontainers/db/recordfieldmappings/icon.value/expression.js deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod index d0a308b0c5f3f4c97b54e14d9797bb4a35b055b5..52186117b0ede7cb65a57fce5de0b5b2056a2c14 100644 --- a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod +++ b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod @@ -4,6 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/WorkflowStartConfig_entity/documentation.adoc</documentation> <title>Usage</title> + <imageProcess>%aditoprj%/entity/WorkflowStartConfig_entity/imageProcess.js</imageProcess> <titlePlural>Usage</titlePlural> <recordContainer>db</recordContainer> <entityFields> @@ -18,6 +19,7 @@ <title>Module</title> <consumer>Contexts</consumer> <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>TRIGGER_EVENT</name> diff --git a/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js b/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..af662ad2474d3da0e5b3deab7764de0ad29d39bc --- /dev/null +++ b/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Context_lib"); +import("system.result"); +import("system.vars"); + +var context = vars.get("$field.OBJECT_TYPE"); +result.string(context ? ContextUtils.getTitle(context, true) : ""); \ No newline at end of file diff --git a/entity/WorkflowStartConfig_entity/imageProcess.js b/entity/WorkflowStartConfig_entity/imageProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..34147b89bd271ec01be2bb3fa1c6eb055186963f --- /dev/null +++ b/entity/WorkflowStartConfig_entity/imageProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("system.project"); + +var contextModel = project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE")); +result.string(contextModel ? contextModel[5] : ""); \ No newline at end of file diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index fe27631e36b764b8516909749aedd5041d1e8eb3..cfa2e9c9be05a7b4c7e20b7047026e1a4116ece4 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -6653,9 +6653,6 @@ <entry> <key>Leadimport Reset</key> </entry> - <entry> - <key>Offer status changed!</key> - </entry> <entry> <key>Möchten Sie den Import abbrechen?</key> </entry> @@ -6713,12 +6710,6 @@ <entry> <key>Invalid file type; only .html, .eml and .txt are allowed</key> </entry> - <entry> - <key>ankle of</key> - </entry> - <entry> - <key>New Visit Recommendation</key> - </entry> <entry> <key>Set salesproject phase</key> </entry> @@ -6761,6 +6752,42 @@ <entry> <key>Full details</key> </entry> + <entry> + <key>Sales Projects</key> + </entry> + <entry> + <key>set Read</key> + </entry> + <entry> + <key>set New</key> + </entry> + <entry> + <key>Product Group</key> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>data</key> + </entry> + <entry> + <key>Offer No.</key> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>of other on this employee's calendar</key> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + </entry> + <entry> + <key>Offerrequest</key> + </entry> + <entry> + <key>data</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index e182131383250479abc646859eeab3a7ea62f6e5..297c496a68433d8c9e84ce33f27866a9b03c0b3f 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -8653,6 +8653,52 @@ Bitte Datumseingabe prüfen</value> <key>Not created yet</key> <value>Noch nicht erstellt</value> </entry> + <entry> + <key>Abgesagt</key> + </entry> + <entry> + <key>Sales Projects</key> + </entry> + <entry> + <key>set Read</key> + <value>Gelesen setzen</value> + </entry> + <entry> + <key>set New</key> + <value>Neu setzen</value> + </entry> + <entry> + <key>Product Group</key> + <value>Produktgruppe</value> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>data</key> + </entry> + <entry> + <key>Offer No.</key> + <value>Angebots Nr.</value> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>of other on this employee's calendar</key> + <value>von den Anderen auf den Kalender dieses Mitarbeiters</value> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + <value>von diesem Mitarbeiter auf den Kalender von der Anderen</value> + </entry> + <entry> + <key>Offerrequest</key> + <value>Angebotsanfrage</value> + </entry> + <entry> + <key>data</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index fd3c8a7f0d2df9506a9fa0331a6c036f52eedb88..6b3c84ea6235206e04b715f9df49d1d37fa61386 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -6706,9 +6706,6 @@ <entry> <key>Leadimport Reset</key> </entry> - <entry> - <key>Offer status changed!</key> - </entry> <entry> <key>Möchten Sie den Import abbrechen?</key> </entry> @@ -6787,12 +6784,6 @@ <entry> <key>Create salesproject touchpoint</key> </entry> - <entry> - <key>Visit Planning</key> - </entry> - <entry> - <key>ankle of</key> - </entry> <entry> <key>Limited details</key> </entry> @@ -6823,6 +6814,45 @@ <entry> <key>Full details</key> </entry> + <entry> + <key>Invalid file type; only .html, .eml and .txt are allowed</key> + </entry> + <entry> + <key>Sales Projects</key> + </entry> + <entry> + <key>set Read</key> + </entry> + <entry> + <key>set New</key> + </entry> + <entry> + <key>Product Group</key> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>data</key> + </entry> + <entry> + <key>Offer No.</key> + </entry> + <entry> + <key>Version %0</key> + </entry> + <entry> + <key>of other on this employee's calendar</key> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + </entry> + <entry> + <key>Offerrequest</key> + </entry> + <entry> + <key>data</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/Context/Context.aod b/neonContext/Context/Context.aod index aeaabeff638488bfeb2fb549c885f9f5a35033bd..69e402bec3a328361873e350bcc52b4b31c28036 100644 --- a/neonContext/Context/Context.aod +++ b/neonContext/Context/Context.aod @@ -3,14 +3,4 @@ <name>Context</name> <majorModelMode>DISTRIBUTED</majorModelMode> <entity>Context_entity</entity> - <references> - <neonViewReference> - <name>ddec38ae-82e6-4ac7-a50e-8a735eb9a075</name> - <view>ContextFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>86650dd4-9569-433e-b3e5-fb9d62a7e45d</name> - <view>ContextLookup_vieww</view> - </neonViewReference> - </references> </neonContext> diff --git a/neonContext/Document/Document.aod b/neonContext/Document/Document.aod index 7c1ab4ead5e19992d370fb9a5b756b6dd824c8e2..23df7610e8382e65b899deb3cad08e580d3b3403 100644 --- a/neonContext/Document/Document.aod +++ b/neonContext/Document/Document.aod @@ -29,5 +29,9 @@ <name>16c5b82f-8690-493c-98d9-150c086202d0</name> <view>DocumentDrawer_view</view> </neonViewReference> + <neonViewReference> + <name>cd17be33-73ae-4e8d-a852-65152a772926</name> + <view>DocumentMultipleEdit_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/DocumentTemplatePlaceOfUse/DocumentTemplatePlaceOfUse.aod b/neonContext/DocumentTemplatePlaceOfUse/DocumentTemplatePlaceOfUse.aod index 32463ebbcd64371ea9b60df93ad30442b7fde96f..990276eaf640084d0bf1b0e4e66ce1be8b0f4679 100644 --- a/neonContext/DocumentTemplatePlaceOfUse/DocumentTemplatePlaceOfUse.aod +++ b/neonContext/DocumentTemplatePlaceOfUse/DocumentTemplatePlaceOfUse.aod @@ -5,10 +5,6 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <entity>DocumentTemplatePlaceOfUse_entity</entity> <references> - <neonViewReference> - <name>d602ddab-8a53-4f53-921d-5acb93e9bbe4</name> - <view>DocumentTemplateplaceOfUseList_viewasd</view> - </neonViewReference> <neonViewReference> <name>884cc1b0-6698-476e-a1ae-44fa6b88434d</name> <view>DocumentTemplatePlaceOfUseMultiEdit_view</view> diff --git a/neonContext/DuplicateScan/DuplicateScan.aod b/neonContext/DuplicateScan/DuplicateScan.aod deleted file mode 100644 index 0705b6d804e4e70948e677273aeb1e87e3e5c361..0000000000000000000000000000000000000000 --- a/neonContext/DuplicateScan/DuplicateScan.aod +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> - <name>DuplicateScan</name> - <title>Duplicatescan</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterView>DuplicateScanFilter_view</filterView> - <editView>DuplicateScanEdit_view</editView> - <previewView>DuplicateScanPreview_view</previewView> - <entity>DuplicateScan_entity</entity> - <references> - <neonViewReference> - <name>53f8619a-aa58-45a3-afe4-a8cb15d76ece</name> - <view>DuplicateScanFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>93945a65-b870-4f37-8282-da5d8c60f17d</name> - <view>DuplicateScanPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>6688b424-8f21-49c7-8613-d6d822309a1a</name> - <view>DuplicateScanEdit_view</view> - </neonViewReference> - </references> -</neonContext> diff --git a/neonContext/ImportField/ImportField.aod b/neonContext/ImportField/ImportField.aod index 8342f95ed93312c5c23b1a686b34577e72b1c34e..a2c30c3c1ce8e0b473fbd7b880a9e3babb1e303d 100644 --- a/neonContext/ImportField/ImportField.aod +++ b/neonContext/ImportField/ImportField.aod @@ -15,5 +15,9 @@ <name>37f81868-7e5e-48c1-bb76-3215c7bfe87b</name> <view>ImportFieldEdit_view</view> </neonViewReference> + <neonViewReference> + <name>e5940438-2213-49f8-8715-330963b677d9</name> + <view>ImportFieldFilterMapping_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/LeadLog/LeadLog.aod b/neonContext/LeadLog/LeadLog.aod index a94b9255cca710048f194093e7449a985b30c4f5..b183a8e3988e5d8f7e0e740ec362949841bf85eb 100644 --- a/neonContext/LeadLog/LeadLog.aod +++ b/neonContext/LeadLog/LeadLog.aod @@ -14,5 +14,9 @@ <name>3e5f7e73-5a5c-4004-9b08-95f495e84a06</name> <view>LeadLogPreview_view</view> </neonViewReference> + <neonViewReference> + <name>3ebb0277-6ff4-4ade-ae5c-32b2a2c02c41</name> + <view>LeadLogFilterDrawer_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/Leadimport/Leadimport.aod b/neonContext/Leadimport/Leadimport.aod index d0ea218db331ce02b718c6d07cd6d61264f38f5b..42e9bd76a2fc47e6d2ec9b9f828e43845182cec6 100644 --- a/neonContext/Leadimport/Leadimport.aod +++ b/neonContext/Leadimport/Leadimport.aod @@ -31,5 +31,17 @@ <name>2ffd1242-8512-4f44-a3de-6e5c9501e3c9</name> <view>LeadimportDocEdit_view</view> </neonViewReference> + <neonViewReference> + <name>a7355bc9-f925-4d6d-8284-3ebfc775d5a9</name> + <view>LeadimportLeadFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>63565f2e-7a0c-45e7-b25b-44de482e7be5</name> + <view>LeadimportLog_view</view> + </neonViewReference> + <neonViewReference> + <name>3c62f291-95ec-4156-8b0a-974027c75722</name> + <view>LeadimportLeadTempFilter_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/LogHistory/LogHistory.aod b/neonContext/LogHistory/LogHistory.aod index 9aeabbff89fae13f5f3e298054bebb8cecef5d8c..1a099c3496e637ac831daed690494cb11cd1748e 100644 --- a/neonContext/LogHistory/LogHistory.aod +++ b/neonContext/LogHistory/LogHistory.aod @@ -15,5 +15,9 @@ <name>32181ad2-2766-4d52-a04b-4b74bcbd2453</name> <view>LogHistoryPreview_view</view> </neonViewReference> + <neonViewReference> + <name>74b1ccb3-8a37-47df-a844-af03d3418e92</name> + <view>LogHistoryFilterDrawer_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/Person/Person.aod b/neonContext/Person/Person.aod index 9d3ca92578726c40e07fe7c2a4af1e723515fe39..5a9b1ecbe90107c4e484b01a2a7755d85faa8284 100644 --- a/neonContext/Person/Person.aod +++ b/neonContext/Person/Person.aod @@ -51,10 +51,6 @@ <name>296af7da-1994-49a3-a26f-903f29609fae</name> <view>PersonAttributeRestriction_view</view> </neonViewReference> - <neonViewReference> - <name>c91a69c4-8699-4117-9154-cb6be65f6a69</name> - <view>PersonDataPrivacy_view</view> - </neonViewReference> <neonViewReference> <name>dd102d90-0af3-4956-95f5-0175c50de3f4</name> <view>PersonMultiEdit_view</view> diff --git a/neonContext/QuickEntry/QuickEntry.aod b/neonContext/QuickEntry/QuickEntry.aod index 47e6955f0bd28a7078580f9f0d2f5188fb5e3ea4..c44db52e95254828433ff4928cda968192ca8872 100644 --- a/neonContext/QuickEntry/QuickEntry.aod +++ b/neonContext/QuickEntry/QuickEntry.aod @@ -10,9 +10,5 @@ <name>43a3acbb-82a7-4d86-88f9-0e4265e4898d</name> <view>QuickEntryEdit_view</view> </neonViewReference> - <neonViewReference> - <name>3a3a50cc-c112-410d-a836-171a07dbd323</name> - <view>QuickEntryFilter_view</view> - </neonViewReference> </references> </neonContext> diff --git a/neonContext/Salutation/Salutation.aod b/neonContext/Salutation/Salutation.aod index 105e44671fae3f67a38045dfbbe0ad1968ef7f19..e483914f5a8af36115140b9b36a1ed72169dff3e 100644 --- a/neonContext/Salutation/Salutation.aod +++ b/neonContext/Salutation/Salutation.aod @@ -4,11 +4,16 @@ <title></title> <majorModelMode>DISTRIBUTED</majorModelMode> <filterView>SalutationFilter_view</filterView> + <editView>SalutationEdit_view</editView> <entity>Salutation_entity</entity> <references> <neonViewReference> <name>f4dff131-e058-4959-8141-f60910394a02</name> <view>SalutationFilter_view</view> </neonViewReference> + <neonViewReference> + <name>f06f67b0-c7e3-4855-8342-4bc0f3ed7343</name> + <view>SalutationEdit_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/TurnoverTree/TurnoverTree.aod b/neonContext/TurnoverTree/TurnoverTree.aod index 2a54cfe9f256fa85df4809ec004416d19daf1fc0..2e1d45757356ea82e207636c6d09133c995cc50e 100644 --- a/neonContext/TurnoverTree/TurnoverTree.aod +++ b/neonContext/TurnoverTree/TurnoverTree.aod @@ -9,9 +9,5 @@ <name>b8135e50-da8e-424c-9073-e721b4822736</name> <view>TurnoverTree_view</view> </neonViewReference> - <neonViewReference> - <name>407eda43-5b44-4bae-980a-8ba522b0a5fe</name> - <view>TurnoverTreeForecast_view</view> - </neonViewReference> </references> </neonContext> diff --git a/neonContext/WorkflowInstance/WorkflowInstance.aod b/neonContext/WorkflowInstance/WorkflowInstance.aod index 1645ba4c6393e29c8bc1766ffdc8fd03acbc901a..77696115abd5723f25ebb7e59cb566334f2b7e6b 100644 --- a/neonContext/WorkflowInstance/WorkflowInstance.aod +++ b/neonContext/WorkflowInstance/WorkflowInstance.aod @@ -24,10 +24,6 @@ <name>1b36d7c5-af14-4cb6-9e68-99d738def562</name> <view>WorkflowInstanceMain_view</view> </neonViewReference> - <neonViewReference> - <name>e701f4bc-29f4-4e93-98b5-d7d2cee1787e</name> - <view>WorkflowInstanceVariables_view</view> - </neonViewReference> <neonViewReference> <name>98e9064c-466c-43eb-a72a-c369e7eb28a4</name> <view>WorkflowInstanceTasks_view</view> diff --git a/neonView/ActivityEdit_view/ActivityEdit_view.aod b/neonView/ActivityEdit_view/ActivityEdit_view.aod index 4f90018a99e133b78829dcbe154b76b29e57b052..43d67ddddc3f0b08fbc3158cd66b5647bc83a8a0 100644 --- a/neonView/ActivityEdit_view/ActivityEdit_view.aod +++ b/neonView/ActivityEdit_view/ActivityEdit_view.aod @@ -20,10 +20,6 @@ <name>290c8b73-4078-47eb-8009-a011f0ae670c</name> <entityField>SUBJECT</entityField> </entityFieldLink> - <entityFieldLink> - <name>4a15411b-5bd7-45c5-bd6d-7cde461b12d9</name> - <entityField>bindata</entityField> - </entityFieldLink> <entityFieldLink> <name>b90a5d96-9d1f-4eeb-b42c-0debeb7cf260</name> <entityField>INFO</entityField> @@ -56,5 +52,10 @@ <entityField>Attributes</entityField> <view>AttributeRelationMultiEdit_view</view> </neonViewReference> + <neonViewReference> + <name>1dfe4fcc-eb36-4a6c-878d-f907d36de9ac</name> + <entityField>Documents</entityField> + <view>DocumentMultipleEdit_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod index aa729603f97e329187240d31d343170cd77e98d8..573f26dd7d27579936a03fb6c149dd3318390280 100644 --- a/neonView/AttributeFilter_view/AttributeFilter_view.aod +++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod @@ -15,6 +15,7 @@ <parentField>ATTRIBUTE_PARENT_ID</parentField> <favoriteActionGroup1>AttributeActions</favoriteActionGroup1> <nodeExpandedField>expanded</nodeExpandedField> + <hideContentSearch v="false" /> <showChildrenCount v="false" /> <entityField>#ENTITY</entityField> <columns> @@ -38,6 +39,7 @@ </treeTableViewTemplate> <tableViewTemplate> <name>AttributesTable</name> + <hideContentSearch v="false" /> <iconField>ICON</iconField> <titleField>FULL_ATTRIBUTE_NAME</titleField> <subtitleField>USAGELIST</subtitleField> diff --git a/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod b/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..26aa81b5f3e801333b1a5dddc11f352353abbf73 --- /dev/null +++ b/neonView/DocumentMultipleEdit_view/DocumentMultipleEdit_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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>DocumentMultipleEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericMultipleViewTemplate> + <name>genericMultiple</name> + <entityField>#ENTITY</entityField> + <columns> + <neonGenericMultipleTableColumn> + <name>c4cc3dbf-95cb-4947-ae8a-4c8cca9f21b0</name> + <entityField>BINDATA_UPLOAD</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>40bf8a61-711f-42b8-b24c-0cdfc92e579f</name> + <entityField>NAME</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>dc1d0e99-6600-4067-8192-07e8c605d362</name> + <entityField>DESCRIPTION</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>ab509c66-f72a-46b5-af5d-2b5620506bf5</name> + <entityField>IS_MAIN_DOCUMENT</entityField> + </neonGenericMultipleTableColumn> + </columns> + </genericMultipleViewTemplate> + </children> +</neonView> diff --git a/neonView/EmailEdit_view/EmailEdit_view.aod b/neonView/EmailEdit_view/EmailEdit_view.aod index 2585eb06279fc9f64f287e5f8be89c7b1f31f21e..2e045348b8c9b47c1a7950cc340c4ef62ca1894b 100644 --- a/neonView/EmailEdit_view/EmailEdit_view.aod +++ b/neonView/EmailEdit_view/EmailEdit_view.aod @@ -22,6 +22,10 @@ <name>72441756-f00d-42a7-bd3f-a6f7964891bc</name> <entityField>DOCUMENT_TEMPLATE</entityField> </entityFieldLink> + <entityFieldLink> + <name>6a72f9a6-f2fd-4a78-b1f9-2aca59cb25a1</name> + <entityField>subject</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <actionsViewTemplate> diff --git a/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod b/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..29a4e8be88bff2ea8e3aa2288698aa80d504f755 --- /dev/null +++ b/neonView/ImportFieldFilterMapping_view/ImportFieldFilterMapping_view.aod @@ -0,0 +1,27 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>ImportFieldFilterMapping_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <titledListViewTemplate> + <name>ImportFieldFilterMappingTitledList</name> + <titleField>FIELDNAME</titleField> + <titleFieldFullWidth v="false" /> + <fixedDrawer v="true" /> + <entityField>#ENTITY</entityField> + <isDeletable v="false" /> + <isCreatable v="false" /> + <columns> + <neonTitledListTableColumn> + <name>97d7d6e2-cead-4d86-87bf-e300b2d743a5</name> + <entityField>MAPPINGFIELD</entityField> + </neonTitledListTableColumn> + </columns> + </titledListViewTemplate> + </children> +</neonView> diff --git a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod index a4dae5abbe388e1a9910a3a69f0242090b6e0849..29ad4b2f81fd6c8f054a396900c81d912cafd855 100644 --- a/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod +++ b/neonView/KeywordAttributeFilter_view/KeywordAttributeFilter_view.aod @@ -11,6 +11,7 @@ <children> <tableViewTemplate> <name>Attributes</name> + <hideContentSearch v="false" /> <titleField>NAME</titleField> <subtitleField>CONTAINER</subtitleField> <descriptionField>TYPE</descriptionField> diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod index 5f0b7fa9a3b715553a935f1565430140b932fe1f..19ec98e97d3ca1fb6e441f2ef2ff5effc733f4fe 100644 --- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod +++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod @@ -15,6 +15,7 @@ <defaultGroupFields> <element>CONTAINER</element> </defaultGroupFields> + <hideContentSearch v="false" /> <entityField>#ENTITY</entityField> <columns> <neonTreeTableColumn> @@ -37,6 +38,7 @@ </treeTableViewTemplate> <tableViewTemplate> <name>EntriesTable</name> + <hideContentSearch v="false" /> <titleField>TITLE</titleField> <subtitleField>CONTAINER</subtitleField> <entityField>#ENTITY</entityField> diff --git a/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod b/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..1463636384ef61e9a23e5af4775d6e344d902b33 --- /dev/null +++ b/neonView/LeadLogFilterDrawer_view/LeadLogFilterDrawer_view.aod @@ -0,0 +1,19 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>LeadLogFilterDrawer_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <drawerLayout> + <name>layout</name> + <layoutCaption>Import Logs</layoutCaption> + <fixedDrawer v="false" /> + </drawerLayout> + </layout> + <children> + <neonViewReference> + <name>bfdfa657-c635-4cb7-b083-5243044d6d08</name> + <entityField>#ENTITY</entityField> + <view>LeadLogFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod b/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e62ead8520b59abed55d818a3a92c454ea62de93 --- /dev/null +++ b/neonView/LeadimportLeadFilter_view/LeadimportLeadFilter_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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>LeadimportLeadFilter_view</name> + <title>Transferdaten</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <drawerLayout> + <name>layout</name> + <layoutCaption></layoutCaption> + <fixedDrawer v="true" /> + </drawerLayout> + </layout> + <children> + <actionsViewTemplate> + <name>Actions</name> + <actions> + <element>LeadimportReset</element> + <element>TransferData</element> + </actions> + <entityField>#ENTITY</entityField> + <devices> + <element>MOBILE</element> + <element>TABLET</element> + <element>DESKTOP</element> + </devices> + </actionsViewTemplate> + <neonViewReference> + <name>43c63616-3587-48e4-b317-8cfb80d18b45</name> + <entityField>LeadC</entityField> + <view>LeadFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod b/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..6ec6b4bb48e5c1e8656ee8b9726dcf7454385642 --- /dev/null +++ b/neonView/LeadimportLeadTempFilter_view/LeadimportLeadTempFilter_view.aod @@ -0,0 +1,27 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>LeadimportLeadTempFilter_view</name> + <title>Import Daten</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <drawerLayout> + <name>layout</name> + <fixedDrawer v="true" /> + </drawerLayout> + </layout> + <children> + <actionsViewTemplate> + <name>Actions</name> + <actions> + <element>Load_Data</element> + </actions> + <entityField>#ENTITY</entityField> + </actionsViewTemplate> + <neonViewReference> + <name>b3432200-c946-4ffb-bf32-df292e1c8a73</name> + <entityField>LeadTempC</entityField> + <view>LeadTempFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/LeadimportLog_view/LeadimportLog_view.aod b/neonView/LeadimportLog_view/LeadimportLog_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..950120edca9d3838192fb9df1c7ad2447fb4c5c0 --- /dev/null +++ b/neonView/LeadimportLog_view/LeadimportLog_view.aod @@ -0,0 +1,23 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>LeadimportLog_view</name> + <title>Logs</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <neonViewReference> + <name>0664bb5c-d976-43be-8239-da4ba36d9c61</name> + <entityField>LeadLogC</entityField> + <view>LeadLogFilterDrawer_view</view> + </neonViewReference> + <neonViewReference> + <name>0406b319-3d33-4077-b65e-b519ee62a670</name> + <entityField>LogHistoryC</entityField> + <view>LogHistoryFilterDrawer_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/LeadimportMain_view/LeadimportMain_view.aod b/neonView/LeadimportMain_view/LeadimportMain_view.aod index 2d979a0aca6a2f2fc4b7cab6c72df06d39f2575e..5dfdbbc4f8e72eb7bfc2663fc78392ad12988910 100644 --- a/neonView/LeadimportMain_view/LeadimportMain_view.aod +++ b/neonView/LeadimportMain_view/LeadimportMain_view.aod @@ -15,24 +15,24 @@ <view>LeadimportPreview_view</view> </neonViewReference> <neonViewReference> - <name>3c787fee-a6bf-4579-bab6-7cf4318bfd47</name> - <entityField>ImportFieldID</entityField> - <view>ImportFieldFilter_view</view> + <name>0ac7276f-4677-41e2-9ad5-57b0d2711b8b</name> + <entityField>#ENTITY</entityField> + <view>LeadimportLeadTempFilter_view</view> </neonViewReference> <neonViewReference> - <name>0dcbd908-51ef-43ad-b2a2-58304aa65770</name> - <entityField>LeadTempC</entityField> - <view>LeadTempFilter_view</view> + <name>51132482-3f97-44a0-ba08-bf395686e6b7</name> + <entityField>ImportFieldID</entityField> + <view>ImportFieldFilterMapping_view</view> </neonViewReference> <neonViewReference> - <name>d0109d4a-b0f4-45f8-a161-235bd3837384</name> - <entityField>LeadC</entityField> - <view>LeadFilter_view</view> + <name>5a6123d2-a2a4-416d-a138-fac6cdc5fb82</name> + <entityField>#ENTITY</entityField> + <view>LeadimportLeadFilter_view</view> </neonViewReference> <neonViewReference> - <name>19633cbf-79a3-4bed-93cb-2a1cc62fb6f3</name> - <entityField>LeadLogC</entityField> - <view>LeadLogFilter_view</view> + <name>b085a160-f739-487c-a24c-5d12898aa6f1</name> + <entityField>#ENTITY</entityField> + <view>LeadimportLog_view</view> </neonViewReference> <neonViewReference> <name>61237df6-2af1-41bd-bb56-da0bc624afb5</name> @@ -44,15 +44,5 @@ <entityField>Tasks</entityField> <view>TaskFilter_view</view> </neonViewReference> - <neonViewReference> - <name>97f93e38-e955-485a-998a-3be4d07d4972</name> - <entityField>DocumentC</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>6cacd3bb-1937-4cf3-9a26-e205f8edebaa</name> - <entityField>LogHistoryC</entityField> - <view>LogHistoryFilter_view</view> - </neonViewReference> </children> </neonView> diff --git a/neonView/LeadimportPreview_view/LeadimportPreview_view.aod b/neonView/LeadimportPreview_view/LeadimportPreview_view.aod index ee53272397fe2ebc5d696b4f551fa5f6c046403a..7c0a2ef4066c8c8c7696f61f2a79fb0d28aaaf63 100644 --- a/neonView/LeadimportPreview_view/LeadimportPreview_view.aod +++ b/neonView/LeadimportPreview_view/LeadimportPreview_view.aod @@ -50,17 +50,8 @@ <name>97a8978c-0e17-4a8d-a90b-fedfb7a4ff86</name> <entityField>FIELDDELIMITERS</entityField> </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Generic</name> - <showDrawer v="true" /> - <drawerCaption>File</drawerCaption> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> <entityFieldLink> - <name>24d3036f-be4e-418c-a13f-e21c44112edf</name> + <name>76f80b3e-51be-41b8-93c0-a1ac0b5dc24f</name> <entityField>bindata</entityField> </entityFieldLink> </fields> diff --git a/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod b/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..0c329f2bd4dbfc96cf6f22562fbada815a3a91b3 --- /dev/null +++ b/neonView/LogHistoryFilterDrawer_view/LogHistoryFilterDrawer_view.aod @@ -0,0 +1,19 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>LogHistoryFilterDrawer_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <drawerLayout> + <name>layout</name> + <layoutCaption>Logs</layoutCaption> + <fixedDrawer v="true" /> + </drawerLayout> + </layout> + <children> + <neonViewReference> + <name>f05e7816-2448-4b99-af5d-8b9f17a1cc89</name> + <entityField>#ENTITY</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod index 3f4b118739e963e7511ade42d7eb2d03de5fe722..ab4ce87a232c2c483b2c81404cf0d24397da68d4 100644 --- a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod +++ b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod @@ -16,6 +16,7 @@ <neonGenericMultipleTableColumn> <name>0272107d-c34c-40e7-974e-5a63d2239fdb</name> <entityField>ACTION</entityField> + <fullWidth v="true" /> </neonGenericMultipleTableColumn> </columns> </genericMultipleViewTemplate> diff --git a/neonView/PermissionActionList_view/PermissionActionList_view.aod b/neonView/PermissionActionList_view/PermissionActionList_view.aod index b07ef3eb50166e0787b94f915a9f72d3c02b4aba..5019e2d1b3739a17d7c80a9b64da998da4e7d437 100644 --- a/neonView/PermissionActionList_view/PermissionActionList_view.aod +++ b/neonView/PermissionActionList_view/PermissionActionList_view.aod @@ -2,6 +2,11 @@ <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> <name>PermissionActionList_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> <children> <titledListViewTemplate> <name>TitledList</name> diff --git a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod index eae0d77964ec99af2f38e01b17c61d833af6c1a8..32b319f4445dd4838b972b11db7c6193c7833b35 100644 --- a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod +++ b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod @@ -5,7 +5,7 @@ <layout> <drawerLayout> <name>layout</name> - <layoutCaption>My Calendar</layoutCaption> + <layoutCaption>of other on this employee's calendar</layoutCaption> <fixedDrawer v="true" /> </drawerLayout> </layout> diff --git a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod index e673da0fa5e12f5996cba4b5386645166e883ab2..df480a219c345fe0847a2ebdf5c5f62479108e60 100644 --- a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod +++ b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod @@ -7,7 +7,7 @@ <layout> <drawerLayout> <name>layout</name> - <layoutCaption>Other Calendars</layoutCaption> + <layoutCaption>of this employee on the calendar of others</layoutCaption> </drawerLayout> </layout> <children> diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod index 74abb3a7a145cecbc7f641a7a5d6ab0db63c5dff..5a2312e1f735abdb644f2145dbaa24f5edb0b514 100644 --- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod +++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod @@ -19,8 +19,8 @@ <entityField>#ENTITY</entityField> <columns> <neonTableColumn> - <name>d6207ade-29e7-4af0-ba5f-e9ddd799de7b</name> - <entityField>#IMAGE</entityField> + <name>cb441e57-dba4-49d6-a8f4-cea5db3187f2</name> + <entityField>PICTURE</entityField> </neonTableColumn> <neonTableColumn> <name>1053d3a7-c5ee-4260-86f6-54e820f53e9f</name> diff --git a/neonView/SalutationEdit_view/SalutationEdit_view.aod b/neonView/SalutationEdit_view/SalutationEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..ebbb601e04d5e06c43c046a6eddce6deb667c789 --- /dev/null +++ b/neonView/SalutationEdit_view/SalutationEdit_view.aod @@ -0,0 +1,48 @@ +<?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.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>SalutationEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericViewTemplate> + <name>generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5c13e664-eb51-470f-84f0-bb25f72b0881</name> + <entityField>ISOLANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>642ebe6f-1225-4ffd-9755-778997c8a179</name> + <entityField>SALUTATION_TEXT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>22befd63-0f23-4527-aa63-22a2bb4aec73</name> + <entityField>TITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d1db49fd-5599-4994-9a01-a93694a020c4</name> + <entityField>HEADLINE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1e4d42d1-e075-4599-bd8e-0798ea77f0d2</name> + <entityField>LETTERSALUTATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>14541607-aa61-4a11-bca6-e5a5bbde743b</name> + <entityField>SEX</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6ff09b16-dfdb-41de-88fe-a9a9fface3b7</name> + <entityField>SORT</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/SalutationFilter_view/SalutationFilter_view.aod b/neonView/SalutationFilter_view/SalutationFilter_view.aod index b7e8746bfb30a3a9eb74f276748ea7307da98faf..9c60dce1f71f932d1fc696e1b470e6b01f70caac 100644 --- a/neonView/SalutationFilter_view/SalutationFilter_view.aod +++ b/neonView/SalutationFilter_view/SalutationFilter_view.aod @@ -11,38 +11,37 @@ <children> <tableViewTemplate> <name>Salutations</name> - <inlineEdit v="true" /> <titleField>SALUTATION_TEXT</titleField> <subtitleField>TITLE</subtitleField> <entityField>#ENTITY</entityField> <autoNewRow v="true" /> <columns> <neonTableColumn> - <name>32e3fa28-1749-45a2-ae77-27ddfb221dba</name> + <name>ab3b9892-d5fa-4926-baf1-7f070ea7f68a</name> <entityField>ISOLANGUAGE</entityField> </neonTableColumn> <neonTableColumn> - <name>9cccf3a4-bbe7-453a-955c-246691c27dba</name> + <name>5a446b0a-f7cd-4c0d-9ce6-137958f28f4b</name> <entityField>SALUTATION_TEXT</entityField> </neonTableColumn> <neonTableColumn> - <name>3d4b8959-4558-4398-876a-09b46706827d</name> + <name>7789c052-d472-4870-b7a8-5c02b20b104b</name> <entityField>TITLE</entityField> </neonTableColumn> <neonTableColumn> - <name>f7e7e4a7-5719-457c-ac65-a2cdd993d9fb</name> + <name>75564574-3f21-4589-93ad-e30a69b44f4a</name> <entityField>HEADLINE</entityField> </neonTableColumn> <neonTableColumn> - <name>af9f6db4-f53a-48d8-aaa4-1dc8a6fd211e</name> + <name>621460f6-5e1b-4baa-b874-18097b6ca1bf</name> <entityField>LETTERSALUTATION</entityField> </neonTableColumn> <neonTableColumn> - <name>071b540d-3d67-4b0b-b382-7c8b3a43e755</name> + <name>3165c331-0b77-46ec-8f55-44cdb86edb6e</name> <entityField>SEX</entityField> </neonTableColumn> <neonTableColumn> - <name>b642b2cc-3439-4813-bda7-bb4358247f68</name> + <name>b4061b67-bd43-40de-8538-7fc1ca54afef</name> <entityField>SORT</entityField> </neonTableColumn> </columns> diff --git a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod index 20bba3477ed256945986f4fd72c6f3e034e01413..595adfca1ccb73785d2dd9a9f66da399de710608 100644 --- a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod +++ b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod @@ -4,9 +4,9 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <filterable v="true" /> <layout> - <boxLayout> + <groupLayout> <name>layout</name> - </boxLayout> + </groupLayout> </layout> <children> <tableViewTemplate> @@ -35,5 +35,16 @@ </neonTableColumn> </columns> </tableViewTemplate> + <tilesViewTemplate> + <name>Tiles</name> + <iconField>DIAGRAM</iconField> + <titleField>NAME</titleField> + <subtitleField>KEY</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <infoTopField>VERSION_TITLE</infoTopField> + <favoriteActionGroup1>tableActions</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <isCreatable v="true" /> + </tilesViewTemplate> </children> </neonView> diff --git a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod index 4a897cc5cc42bad2de0fbee6f89d8ca7fedf8289..15874fe38d83022e49d356df3f2474b6061bf7a7 100644 --- a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod +++ b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod @@ -4,9 +4,9 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <filterable v="true" /> <layout> - <noneLayout> + <boxLayout> <name>layout</name> - </noneLayout> + </boxLayout> </layout> <children> <tableViewTemplate> diff --git a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod index 4b53e42cfc3e3ad67b10f25653df09bf611a0fe7..cdac1faccf7f16acf27044fd57f434dea9502e3c 100644 --- a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod +++ b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod @@ -15,12 +15,12 @@ <autoNewRow v="true" /> <columns> <neonTableColumn> - <name>0784e90b-133d-4d2b-b499-ac731a690f64</name> - <entityField>OBJECT_TYPE</entityField> + <name>4935777f-8760-4759-a70a-0ad64c506418</name> + <entityField>#IMAGE</entityField> </neonTableColumn> <neonTableColumn> - <name>c8b4032c-ce59-45fe-ab03-e393f8cdc050</name> - <entityField>TRIGGER_EVENT</entityField> + <name>0784e90b-133d-4d2b-b499-ac731a690f64</name> + <entityField>OBJECT_TYPE</entityField> </neonTableColumn> </columns> </tableViewTemplate> diff --git a/process/Appointment_lib/process.js b/process/Appointment_lib/process.js index c40c2d134dfd8ea6d7cc2d5b24d964bf80cbefc2..db2af54d0851e8c93d6d63881f8b8310b336feac 100644 --- a/process/Appointment_lib/process.js +++ b/process/Appointment_lib/process.js @@ -151,7 +151,6 @@ AppointmentUtils.setAppointmentLinkComponentState = function(pSysRecordstate, pA else if(pSysRecordstate == neon.OPERATINGSTATE_EDIT) entry = calendars.getEntry(pAppointmentIdFieldValue, null, null); - if(entry) { diff --git a/process/Attribute_lib/process.js b/process/Attribute_lib/process.js index 2bd5cfbb0b9d4d0c229e4e4e7361ab4e1b9c00ee..40eed67b874f583649eda1b1369df0ea870e9921 100644 --- a/process/Attribute_lib/process.js +++ b/process/Attribute_lib/process.js @@ -1686,4 +1686,102 @@ AttributeRelationQuery.prototype.insertAttribute = function (pValue, pOmitValida new SqlBuilder().insertFields(attrData, "AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID"); return true; +} + +/** + * deletes all attribute relations with the given rowId and objectType + * + * @return {Number} count of deleted rows + */ +AttributeRelationQuery.prototype.deleteAllAttributes = function () +{ + if (!this._rowId) + throw new Error("AttributeRelationQuery: Row id is required for delete"); + + return newWhere("AB_ATTRIBUTERELATION.OBJECT_ROWID", this._rowId) + .andIfSet("AB_ATTRIBUTERELATION.OBJECT_TYPE", this._objectType) + .deleteData(); +} + +/** + * Object representing one attribute relation in the database. Don't use this constructor in you own code! + * Instances of this should only be created by functions in this library. + * + * @param {String} pAttributeRelationId attribute relation id + * @param {String} pAttributeId attribute id + * @param {String} pValue value of the attribute + * @param {String} pAttributeName name of the attribute + * @param {String} pAttributeType type of the attribute + * @param {String} pObjectRowId rowId of the linked object + * @param {String} pObjectType context of the linked object + */ +function AttributeRelation (pAttributeRelationId, pAttributeId, pValue, pAttributeName, pAttributeType, pObjectRowId, pObjectType) +{ + if (!pAttributeRelationId) + throw new Error("AttributeRelation: pAttributeRelationId must be provided"); + + this.attributeRelationId = pAttributeRelationId; + this.attributeId = pAttributeId; + this.value = pValue; + this.attributeName = pAttributeName; + this.attributeType = pAttributeType; + this.objectRowId = pObjectRowId; + this.objectType = pObjectType; + this.displayValue = undefined; + this.fullAttributeName = undefined; +} + +/** + * updates the value of the attribute in the database + * + * @param {String} pValue the new value of the attribute relation + * @return {Boolean} currently the function always returns true (if some kind of validation is implemented in the future, + * it will return false if the validation fails) + */ +AttributeRelation.prototype.updateAttribute = function (pValue) +{ + if (pValue == undefined || pValue == "") + throw new Error("AttributeRelation: no value provided for update"); + + var attrData = { + "DATE_EDIT" : vars.get("$sys.date"), + "USER_EDIT" : vars.get("$sys.user") + }; + + var valueField = AttributeTypeUtil.getDatabaseField(this.attributeType); + if (valueField) + attrData[valueField] = pValue; + + newWhere("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", this.attributeRelationId) + .updateFields(attrData); + return true; +} + +/** + * deletes the attribute relation from the database + * + * @param {Boolean} [pOmitValidation=false] if set to true, the function won't check if the min count prohibits the deletion + * @retun {Boolean} true if it was deleted and false if the min count doesn't allow the deletion + */ +AttributeRelation.prototype.deleteAttribute = function (pOmitValidation) +{ + if (!pOmitValidation) + { + var minCount = newSelect("MIN_COUNT") + .from("AB_ATTRIBUTEUSAGE") + .where("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", this.attributeId) + .and("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", this.objectType) + .cell(); + + if (minCount && minCount != 0) + { + let timesUsed = new AttributeRelationQuery(this.objectRowId, this.attributeId, this.objectType).getAttributeCount(); + if (timesUsed <= minCount) + return false; + } + } + + newWhere("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", this.attributeRelationId) + .deleteData(); + return true; } \ No newline at end of file diff --git a/process/Bulkmail_lib/process.js b/process/Bulkmail_lib/process.js index 3b2fa97df0c4634a148ea70a385874c03f24d145..81a3986c28047db9fa60e6ba408283818ee67146 100644 --- a/process/Bulkmail_lib/process.js +++ b/process/Bulkmail_lib/process.js @@ -37,14 +37,16 @@ BulkMailUtils.sendBulkMailOnServer = function (pBulkMailId, pTestRecipients, pUs { if (pUser === undefined) pUser = EmployeeUtils.getCurrentUserId(); - process.executeAsync("sendBulkMail_serverProcess", - { + + var processConfig = process.createStartAsyncConfig() + .setName("sendBulkMail_serverProcess") + .setLocalVariables({ bulkMailId : pBulkMailId, testRecipients : JSON.stringify(pTestRecipients), user : pUser || "" - } - , false, pUser, process.THREADPRIORITY_NORM, process.TIMERTYPE_SERVER - ); + }) + .setUser(pUser) + process.startAsync(processConfig); } /** @@ -444,12 +446,15 @@ SerialLetterUtils.openAddRecipientView = function (pContactIds) SerialLetterUtils.buildSerialLetterOnServer = function (pSerialLetterId, pRecipientIds) { var user = EmployeeUtils.getCurrentUserId(); - process.executeAsync("buildSerialLetter_serverProcess", { - "serialLetterId" : pSerialLetterId, - "recipientIds" : JSON.stringify(pRecipientIds), - "user" : user - } - , false, vars.get("$sys.user"), process.THREADPRIORITY_NORM, process.TIMERTYPE_SERVER); + var processConfig = process.createStartAsyncConfig() + .setName("buildSerialLetter_serverProcess") + .setLocalVariables({ + "serialLetterId" : pSerialLetterId, + "recipientIds" : JSON.stringify(pRecipientIds), + "user" : user + }) + .setUser(vars.get("$sys.user")); + process.startAsync(processConfig); } /** diff --git a/process/Calendar_lib/process.js b/process/Calendar_lib/process.js index 7820ef4c7b5061a2dad85569762db68254816007..7cc5df86754571039fbac5b7806a5c2b51f3e7cf 100644 --- a/process/Calendar_lib/process.js +++ b/process/Calendar_lib/process.js @@ -117,52 +117,6 @@ CalendarUtil.getEffectiveCalendarIdFromUser = function(pUser) return ""; } -/* - * Creates an new task (with link). - * - * @param {String} pSummary (optional) <p> - * The summary. - * @param {String} pDescription (optional) <p> - * The description. - * @param {Boolean} pWithLink (optional) <p> - * True sets an linking to $image.frametable.<br> - * @param {String[][]} pWithLink (optional) <p> - * Description:<br> - * <ul> - * <li>pWithLink[0]: Name of the record</li> - * <li>pWithLink[1]: Id of the shown record</li> - * <li>pWithLink[2]: linking title</li> - * </ul> - * @param {String} pUser (optional) <p> - * The user (login). - * @param {[]} pAffectedUsers (optional) <p> - * The afftected users (login). - * @param {date} pStart (optional) <p> - * Start of the appointment.<br> - * @param {integer} pGroupType (optional) <p> - * calendars.GROUP_SINGLE , calendars.GROUP_MULTI - * @param {date} pDuration (optional) <p> - * Duration of the appointment.<br> - * @param {integer} pCategory (optional) <p> - * calendars.CATEGORIES , encoded(String) (e.g.: text.encodeMS(["Service"])).<br> - * @param {String} pStatus (optional) <p> - * Status of the task (calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, <br> - * calendars.STATUS_CANCELLED).<br> - * @param {String} pPriority (optional) <p> - * Priority of the task.<br> - * @param {String} pReminder (optional) <p> - * Reminder for the task.<br> - * - * @return {void} - */ - -CalendarUtil.newSilentTodo = function(pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pGroupType, pCategory, pStatus, pPriority, pReminder) -{ - if ( pGroupType == undefined ) pGroupType = calendars.GROUP_SINGLE; - var todo = CalendarUtil.createEntry( calendars.VTODO, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder ); - - return calendars.insert([todo],calendars.GROUP_SINGLE); -} /* * Creates and opens an new appointment object (with link). diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js index c159f8c6c2187ae0d75b2f02bd5a5d6dd73e6e99..76a6c808995051fdfa248ab0177b7b3e8fb4a7bd 100644 --- a/process/Campaign_lib/process.js +++ b/process/Campaign_lib/process.js @@ -1,3 +1,4 @@ +import("system.util"); import("system.translate"); import("system.vars"); import("system.db"); @@ -160,8 +161,6 @@ CampaignUtils.getCampaignStatusByCampaignId = function(pCampaignId) * The corresponding campaign id.<br> * @param {String} pCampaignStepId <p> * The current campaign step id.<br> - * @param {String} pContactId <p> - * The contact id,<br> * @param {String} pCampaignParticipantId <p> * The contact id of the campaign participant.<br> * @param {String} pPreviousCampaignStepId <p> @@ -169,11 +168,11 @@ CampaignUtils.getCampaignStatusByCampaignId = function(pCampaignId) * @return {Boolean} <p> * Returns true in case the entry was successfully made.<br> */ -CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId, pPreviousCampaignStepId) +CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pCampaignParticipantId, pPreviousCampaignStepId) { let colsCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); - let valsCampaignParticipantLog = new Array(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId, vars.get("$sys.user"), vars.get("$sys.date"), pPreviousCampaignStepId); + let valsCampaignParticipantLog = new Array(util.getNewUUID(), pCampaignId, pCampaignStepId, pCampaignParticipantId, vars.get("$sys.user"), vars.get("$sys.date"), pPreviousCampaignStepId); let rows = db.insertData("CAMPAIGNPARTICIPANTLOG", colsCampaignParticipantLog, null, valsCampaignParticipantLog); return (rows == 1); @@ -187,7 +186,7 @@ CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pContactId */ CampaignUtils.getParticipantLogInsertColumnNames = function() { - return ["CAMPAIGNPARTICIPANT_ID", "CAMPAIGN_ID", "CAMPAIGNSTEP_ID", "CAMPAIGNPARTICIPANTLOGID", "USER_NEW", "DATE_NEW", "PREVIOUS_CAMPAIGNSTEP_ID"]; + return ["CAMPAIGNPARTICIPANTLOGID", "CAMPAIGN_ID", "CAMPAIGNSTEP_ID", "CAMPAIGNPARTICIPANT_ID", "USER_NEW", "DATE_NEW", "PREVIOUS_CAMPAIGNSTEP_ID"]; } /** @@ -562,6 +561,9 @@ CampaignUtils.GetContactIdsNotInCampaignByCondition = function(pCampaignId, pCon * @param {String} pCondition <p> * The condition which shall be used, to<br> * limit the search result.<br> + * @param {Boolean} [pRightJoinContacts=false] <p> + * Currently not used.<br> + * <p> * @return {String[]} <p> * The contact ids which are in the given<br> * campaign.<br> diff --git a/process/Contact_lib/process.js b/process/Contact_lib/process.js index 375799008796f0742e47f2983e90dae6bf67d518..6db83d4d02c819c68bfc22f29827ae9f2b0a670c 100644 --- a/process/Contact_lib/process.js +++ b/process/Contact_lib/process.js @@ -298,14 +298,10 @@ ContactUtils.getPersOrgIds = function(pContactId) */ ContactUtils.getPersOrgIds = function(pContactId) { - if (pContactId) { - return db.array(db.ROW, - SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select CONTACTID, PERSON_ID, ORGANISATION_ID from CONTACT", "1=0")); - } - - return []; + return newSelect("CONTACTID, PERSON_ID, ORGANISATION_ID") + .from("CONTACT") + .whereIfSet("CONTACT.CONTACTID", pContactId) + .arrayRow(true); } /** @@ -317,17 +313,11 @@ ContactUtils.getPersOrgIds = function(pContactId) */ ContactUtils.getOrganisationContactId = function(pAnyContactId) { - if (!pAnyContactId) - return ""; - - var idSql = SqlCondition.begin() - .andPrepare("anyContact.CONTACTID", pAnyContactId, null, SqlUtils.getSingleColumnType("CONTACT", "CONTACTID")) - .and("CONTACT.PERSON_ID is null") - .buildSql("select CONTACT.CONTACTID " - + " from CONTACT" - + " join CONTACT anyContact on anyContact.ORGANISATION_ID = CONTACT.ORGANISATION_ID"); - var id = db.cell(idSql); - return id; + return newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .join("CONTACT", "anyContact.ORGANISATION_ID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null", "anyContact") + .whereIfSet(["CONTACT", "CONTACTID", "anyContact"], pAnyContactId) + .cell(true); } /** diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index c34bf0f9149c424e179bb383e2e77cbf0cefa2f6..83ad817a1b9487b240e512d26d127e7f2b6a74e8 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -145,6 +145,10 @@ ContextUtils.getContextConsumer = function(pContextId) return "PrivatePersons"; case ContextUtils.getContextName("Leadimport"): return "Leadimport"; + case ContextUtils.getContextName("Task"): + return "Tasks"; + case ContextUtils.getContextName("Activity"): + return "Activities"; default: throw new Error(translate.withArguments("No consumer found for context '%0'", [pContextId])); } @@ -161,24 +165,18 @@ ContextUtils.getContextConsumer = function(pContextId) ContextUtils.loadContentTitle = function(pEntity, pUid, pProvider) { if (!pUid) - { return ""; - } var conf = entities.createConfigForLoadingRows() - .entity(pEntity) - .uid(pUid) - .fields(["#CONTENTTITLE"]); + .entity(pEntity) + .uid(pUid) + .fields(["#CONTENTTITLE"]); if (pProvider) conf.provider(pProvider); - - if (entities.getRowCount(conf) > 0) - { - return entities.getRow(conf)["#CONTENTTITLE"]; - } - - return ""; + + var rows = entities.getRows(conf); + return rows.length === 1 ? rows[0]["#CONTENTTITLE"] : ""; } /** @@ -595,6 +593,20 @@ ContextUtils.getSelectMap = function() $KeywordRegistry.taskStatus$customerChecks(), ]) .setCreationDateField("TASK.START_DATE") + ,"SupportTicket": ContextSelector.create("TICKET", "TICKETID", "TASK.SUBJECT") + .setJoinExpression("left join TASK on TASK.TASKID = TICKET.TASK_ID left join TASKLINK on TASKLINK.TASK_ID = TASK.TASKID") + .setCondition(newWhere("TICKET.TICKETTYPE", $KeywordRegistry.ticketType$supportTicket())) + .setContactIdField("TASKLINK.OBJECT_ROWID") + .setStateField("TASK.STATUS") + .setActiveStates([ + $KeywordRegistry.taskStatus$new(), + $KeywordRegistry.taskStatus$unassigned(), + $KeywordRegistry.taskStatus$assigned(), + $KeywordRegistry.taskStatus$inProgress(), + $KeywordRegistry.taskStatus$waiting(), + $KeywordRegistry.taskStatus$customerChecks(), + ]) + .setCreationDateField("TASK.START_DATE") ,"BulkMail" : ContextSelector.create("BULKMAIL", "BULKMAILID", "NAME") ,"SerialLetter" : ContextSelector.create("SERIALLETTER", "SERIALLETTERID", "TITLE") ,"Leadimport": ContextSelector.create("LEADIMPORT", "LEADIMPORTID") diff --git a/process/DuplicateScanner_lib/process.js b/process/DuplicateScanner_lib/process.js index f9aee147be23831b4334ba5fda0efe05bb8957ed..3576d4dcf361c9a5a42faf46d65d33f7d2157a89 100644 --- a/process/DuplicateScanner_lib/process.js +++ b/process/DuplicateScanner_lib/process.js @@ -642,20 +642,29 @@ DuplicateScannerUtils.MergePerson = function(pSourceContactId, pTargetContactId) var deleteStatements = []; var sourcePersonId = newSelect("PERSON_ID") - .from("CONTACT") - .where("CONTACT.CONTACTID", pSourceContactId) - .cell(); + .from("CONTACT") + .where("CONTACT.CONTACTID", pSourceContactId) + .cell(); + var targetPersonId = newSelect("PERSON_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", pTargetContactId) + .cell(); + var tableInfosCurrentAlias = _DuplicateScannerUtils._getMergeUpdateTableInfosCurrentAlias(); var tableInfosSystemAlias = _DuplicateScannerUtils._getMergeUpdateTableInfosSystemAlias(); - updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateResetStandardCommunications(pSourceContactId)); + updateStatementsCurrentAlias.push(_DuplicateScannerUtils._buildUpdateResetStandardCommunications(pSourceContactId)); updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateContactIdStatements(tableInfosCurrentAlias, pSourceContactId, pTargetContactId)); updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateAttachParticipantsToNewContactQuery("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", pSourceContactId, pTargetContactId)); updateStatementsSystemAlias = updateStatementsSystemAlias.concat(_DuplicateScannerUtils._buildUpdateContactIdStatements(tableInfosSystemAlias, pSourceContactId, pTargetContactId, SqlUtils.getSystemAlias())); deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeleteRemoveObsoleteParticipantsRecordsQuery("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", pSourceContactId, pTargetContactId)); - deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeletePersonAndContactQuery(sourcePersonId, pSourceContactId)); + + if (sourcePersonId != targetPersonId) + deleteStatements.push(["PERSON", newWhere("PERSON.PERSONID", sourcePersonId).build()]); + + deleteStatements.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeleteCachedUnrelatedDuplicateQuery(pSourceContactId)); var affectedRowsCurrentAlias = db.updates(updateStatementsCurrentAlias); @@ -664,7 +673,7 @@ DuplicateScannerUtils.MergePerson = function(pSourceContactId, pTargetContactId) DuplicateScannerUtils.DeleteCachedDuplicate(pSourceContactId); - return (affectedRowsCurrentAlias > 0 && deletedRows >= 2); + return (affectedRowsCurrentAlias > 0 && deletedRows > 0); } DuplicateScannerUtils.CreateMergeSuccessActivity = function(pSourceContactId, pTargetContactId, pCurrentContactId, pContext) @@ -821,14 +830,6 @@ DuplicateScannerUtils.GetUnrelatedRelationsForDuplicate = function(pDuplicateId) function _DuplicateScannerUtils() {} -var INDEX_FILTER_CONDITION = 0; -var INDEX_COUNT_CHARS_TO_USE = 1; -var INDEX_MAX_RESULTS_THRESHOLD = 2; - -var INDEX_TABLE_NAME = 0; -var INDEX_COLUMN_NAME = 1; -var INDEX_CONDITION = 2; - _DuplicateScannerUtils._loadEntityFieldsFromFieldConfigs = function(pEntityFieldConfigs) { let fieldNames = []; @@ -843,7 +844,7 @@ _DuplicateScannerUtils._loadEntityFieldsFromFieldConfigs = function(pEntityField _DuplicateScannerUtils._buildUpdateResetStandardCommunications = function(pSourceContactId) { - return [["COMMUNICATION", ["ISSTANDARD"], null, ["0"], newWhere("COMMUNICATION.CONTACT_ID", pSourceContactId).build()]]; + return newWhere("COMMUNICATION.CONTACT_ID", pSourceContactId).buildUpdateStatement({"ISSTANDARD" : "0"}); } /* @@ -938,7 +939,7 @@ _DuplicateScannerUtils._isUseExternalWebservice = function(pFilterName, pTargetE .where("DUPLICATESCANNER.FILTER_NAME", pFilterName) .and("DUPLICATESCANNER.ENTITY_TO_SCAN_NAME", pTargetEntity) .cell(); - return (isUseWebservice == 0) ? false : true; + return isUseWebservice != 0; } /* @@ -1081,39 +1082,23 @@ _DuplicateScannerUtils._buildDeleteRemoveObsoleteParticipantsRecordsQuery = func let deleteCondition = newWhere([pTableName, pAssignableIdColumn], selectAssignableIdsOfTargetContactQuery, SqlBuilder.IN()) .and([pTableName, pAssignableIdColumn], pSourceContactId) - let recordsToDelete = []; - recordsToDelete.push([pTableName, deleteCondition.build()]); - return recordsToDelete; -} - - -/* - * Creates Queries to delete from the PERSON and CONTACT table. - * - * @returns {String[]} Queries to delete - */ -_DuplicateScannerUtils._buildDeletePersonAndContactQuery = function(pSourcePersonId, pSourceContactId) -{ - let recordsToDelete = [] - recordsToDelete.push(["PERSON", newWhere("PERSON.PERSONID", pSourcePersonId).build()]); - recordsToDelete.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); - return recordsToDelete; + return [[pTableName, deleteCondition.build()]]; } _DuplicateScannerUtils._buildDeleteOrganisationAndContactQuery = function(pSourceOrganisationId, pSourceContactId) { - let recordsToDelete = [] - recordsToDelete.push(["ORGANISATION", newWhere("ORGANISATION.ORGANISATIONID", pSourceOrganisationId).build()]); - recordsToDelete.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); - return recordsToDelete; + return [ + newWhere("ORGANISATION.ORGANISATIONID", pSourceOrganisationId).buildDeleteStatement(), + newWhere("CONTACT.CONTACTID", pSourceContactId).buildDeleteStatement() + ]; } _DuplicateScannerUtils._buildDeleteCachedUnrelatedDuplicateQuery = function(pSourceContactId) { - let recordsToDelete = [] - recordsToDelete.push(["UNRELATEDDUPLICATES", newWhere("UNRELATEDDUPLICATES.SOURCEDUPLICATEID", pSourceContactId).build()]); - recordsToDelete.push(["UNRELATEDDUPLICATES", newWhere("UNRELATEDDUPLICATES.UNRELATEDDUPLICATEID", pSourceContactId).build()]); - return recordsToDelete; + return [ + newWhere("UNRELATEDDUPLICATES.SOURCEDUPLICATEID", pSourceContactId).buildDeleteStatement(), + newWhere("UNRELATEDDUPLICATES.UNRELATEDDUPLICATEID", pSourceContactId).buildDeleteStatement() + ]; } /* @@ -1129,29 +1114,14 @@ _DuplicateScannerUtils._getIgnoreSourceRecordPattern = function(pRecordIdValueTo _DuplicateScannerUtils._buildUpdateContactIdStatements = function(pTableInfos, pSourceContactId, pTargetContactId, pAlias) { - let statements = []; - - for (let i = 0; i < pTableInfos.length; i++) + return pTableInfos.map(function ([tableName, columnName, additionalCondition]) { - let tableInfo = pTableInfos[i]; - let updateStatement = _DuplicateScannerUtils._buildStatement(tableInfo, pSourceContactId, pTargetContactId, pAlias); - statements.push(updateStatement); - } - return statements; -} - -_DuplicateScannerUtils._buildStatement = function(pTableinfos, pSourceContactId, pTargetContactId, pAlias) -{ - let tableName = pTableinfos[INDEX_TABLE_NAME]; - let columnName = pTableinfos[INDEX_COLUMN_NAME]; - let additionalCondition = pTableinfos[INDEX_CONDITION]; - - let condition = newWhere([tableName, columnName], pSourceContactId, undefined, undefined, pAlias); - - if(additionalCondition != "") - condition.and(additionalCondition); - - return [tableName, [columnName], null, [pTargetContactId], condition.build()]; + var updateValues = {}; + updateValues[columnName] = pTargetContactId; + return newWhere([tableName, columnName], pSourceContactId, undefined, undefined, pAlias) + .andIfSet(additionalCondition) + .buildUpdateStatement(updateValues, tableName) + }); } /* @@ -1161,42 +1131,40 @@ _DuplicateScannerUtils._buildStatement = function(pTableinfos, pSourceContactId, */ _DuplicateScannerUtils._getMergeUpdateTableInfosCurrentAlias = function() { - var tableInfos = new Array(); - tableInfos.push(["AB_APPOINTMENTLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["AB_CTILOG", "CONTACT_ID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "AB_OBJECTRELATIONID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "OBJECT1_ROWID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "OBJECT2_ROWID", ""]); - tableInfos.push(["AB_LOGHISTORY", "TABLENAMEID", ""]); - tableInfos.push(["ADDRESS", "CONTACT_ID", ""]); - tableInfos.push(["BULKMAILRECIPIENT", "CONTACT_ID", ""]); - tableInfos.push(["BULKMAIL", "TESTING_CONTACT_ID", ""]); - tableInfos.push(["CAMPAIGN", "EMPLOYEE_CONTACT_ID", ""]); - tableInfos.push(["CAMPAIGNSTEP", "EMPLOYEE_CONTACT_ID", ""]); - tableInfos.push(["COMMRESTRICTION", "CONTACT_ID", ""]); - tableInfos.push(["COMMRESTRICTION", "EMPLOYEE_INVOLVED", ""]); - tableInfos.push(["COMMUNICATION", "CONTACT_ID", ""]); - tableInfos.push(["COMPETITION", "CONTACT_ID", ""]); - tableInfos.push(["CONTRACT", "CONTACT_ID", ""]); - tableInfos.push(["LETTERRECIPIENT", "CONTACT_ID", ""]); - tableInfos.push(["OBJECTMEMBER", "CONTACT_ID", ""]); - tableInfos.push(["OFFER", "CONTACT_ID", ""]); - tableInfos.push(["PRODUCT", "CONTACT_ID", ""]); - tableInfos.push(["PRODUCTPRICE", "CONTACT_ID", ""]); - tableInfos.push(["SALESORDER", "CONTACT_ID", ""]); - tableInfos.push(["SALESPROJECT", "CONTACT_ID", ""]); - tableInfos.push(["TASK", "REQUESTOR_CONTACT_ID", ""]); - tableInfos.push(["TASK", "EDITOR_CONTACT_ID", ""]); - tableInfos.push(["TASKLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["ACTIVITY", "RESPONSIBLE", ""]); - tableInfos.push(["DSGVO", "CONTACT_ID", ""]); - tableInfos.push(["DSGVOINFO", "CONTACT_ID", ""]); - tableInfos.push(["T\n\ -IMETRACKING", "CONTACT_ID", ""]); - tableInfos.push(["ACTIVITYLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["AB_ATTRIBUTERELATION", "OBJECT_ROWID", ""]); - - return tableInfos; + return [ + ["AB_APPOINTMENTLINK", "OBJECT_ROWID", ""], + ["AB_CTILOG", "CONTACT_ID", ""], + ["AB_OBJECTRELATION", "AB_OBJECTRELATIONID", ""], + ["AB_OBJECTRELATION", "OBJECT1_ROWID", ""], + ["AB_OBJECTRELATION", "OBJECT2_ROWID", ""], + ["AB_LOGHISTORY", "TABLENAMEID", ""], + ["ADDRESS", "CONTACT_ID", ""], + ["BULKMAILRECIPIENT", "CONTACT_ID", ""], + ["BULKMAIL", "TESTING_CONTACT_ID", ""], + ["CAMPAIGN", "EMPLOYEE_CONTACT_ID", ""], + ["CAMPAIGNSTEP", "EMPLOYEE_CONTACT_ID", ""], + ["COMMRESTRICTION", "CONTACT_ID", ""], + ["COMMRESTRICTION", "EMPLOYEE_INVOLVED", ""], + ["COMMUNICATION", "CONTACT_ID", ""], + ["COMPETITION", "CONTACT_ID", ""], + ["CONTRACT", "CONTACT_ID", ""], + ["LETTERRECIPIENT", "CONTACT_ID", ""], + ["OBJECTMEMBER", "CONTACT_ID", ""], + ["OFFER", "CONTACT_ID", ""], + ["PRODUCT", "CONTACT_ID", ""], + ["PRODUCTPRICE", "CONTACT_ID", ""], + ["SALESORDER", "CONTACT_ID", ""], + ["SALESPROJECT", "CONTACT_ID", ""], + ["TASK", "REQUESTOR_CONTACT_ID", ""], + ["TASK", "EDITOR_CONTACT_ID", ""], + ["TASKLINK", "OBJECT_ROWID", ""], + ["ACTIVITY", "RESPONSIBLE", ""], + ["DSGVO", "CONTACT_ID", ""], + ["DSGVOINFO", "CONTACT_ID", ""], + ["TIMETRACKING", "CONTACT_ID", ""], + ["ACTIVITYLINK", "OBJECT_ROWID", ""], + ["AB_ATTRIBUTERELATION", "OBJECT_ROWID", ""] + ]; } /* @@ -1206,10 +1174,10 @@ IMETRACKING", "CONTACT_ID", ""]); */ _DuplicateScannerUtils._getMergeUpdateTableInfosSystemAlias = function() { - var tableInfos = new Array(); - tableInfos.push(["ASYS_CALENDARLINK", "DBID", ""]); - tableInfos.push(["ASYS_BINARIES", "ROW_ID", "TABLENAME = 'CONTACT'"]); - return tableInfos; + return [ + ["ASYS_CALENDARLINK", "DBID", ""], + ["ASYS_BINARIES", "ROW_ID", "TABLENAME = 'CONTACT'"] + ]; } /* diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js index 8cb3bf65267d94c6979b25f3aec55bef66dacf56..2393fee4b38cea9c67566988bf561a3c8a119949 100644 --- a/process/Email_lib/process.js +++ b/process/Email_lib/process.js @@ -26,9 +26,11 @@ function EmailWritingUtils () {} * @param {String} [pRecipientContactId] contactId of the recipient, required to fill placeholders * @param {String} [pBindata] base64 binary data * @param {Array} [pAttachments] attachments in a array (base64 encoded). + * @param {String} pSubject an optional subject. + * @param {String} [pEmailFilename] filename of the email. * @return {Array} the eml document as array with [filename, base64] */ -EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments) +EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments, pSubject, pEmailFilename) { if (pToRecipients && typeof(pToRecipients) == "string") pToRecipients = [pToRecipients]; @@ -59,7 +61,10 @@ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, } } - return email.downloadEML(); + if (pSubject) + email.subject = pSubject; + + return email.downloadEML(pEmailFilename); } /** @@ -70,14 +75,16 @@ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, * @param {Array} pAttachmentArray array with attachments. * @param {String} pNotificationMsg message which will be shown after the operation is done. * @param {String} pComingFrom source from where you started (e.g. "Person", "Organisation" ) + * @param {String} pEmailFilename optional file name of the email. */ -EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComingFrom, pAttachmentArray, pNotificationMsg) +EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComingFrom, pAttachmentArray, pNotificationMsg, pEmailFilename) { var params = { "ContactId_param" : pToContactId, "Attachments_param" : JSON.stringify(pAttachmentArray), "ComingFrom_param" : pComingFrom, - "NotificationMsg_param" : pNotificationMsg + "NotificationMsg_param" : pNotificationMsg, + "EmailFilename" : pEmailFilename }; if (pToEmailAddress) @@ -99,14 +106,15 @@ EmailWritingUtils.getMailbridgeAddress = function () * @param {String} pComingFrom source from where you started (e.g. "Person", "Organisation") * @param {Array} pReportArray array with reports. * @param {String} pNotificationMsg message which will be shown after the operation is done. + * @param {String} pEmailFilename optional file name of the email. * Report have to be a object with these attrs: content (base64 encoded report), contentType (mimeType of the report), filename (complete filename with filending) */ -EmailWritingUtils.sendReportAsMail = function (pRecipient, pReportArray, pComingFrom, pNotificationMsg) +EmailWritingUtils.sendReportAsMail = function (pRecipient, pReportArray, pComingFrom, pNotificationMsg, pEmailFilename) { var pRecpientEmail = newSelect("COMMUNICATION.ADDR").from("COMMUNICATION") .where("COMMUNICATION.CONTACT_ID", pRecipient).and("COMMUNICATION.MEDIUM_ID", "COMMEMAIL").cell(); - EmailWritingUtils.openNewMail(pRecipient, pRecpientEmail, pComingFrom, pReportArray, pNotificationMsg); + EmailWritingUtils.openNewMail(pRecipient, pRecpientEmail, pComingFrom, pReportArray, pNotificationMsg, pEmailFilename); } /** @@ -277,9 +285,8 @@ Email.prototype._newMailObject = function() mail.addBase64Attachment(mailId, pAttachment.content, DocumentTemplateUtils.getMimeType(pAttachment.templateId), pAttachment.filename, true, null); } - - mail.addBase64Attachment(mailId, pAttachment.content, pAttachment.contentType, pAttachment.filename, - true, null, null) + else + mail.addBase64Attachment(mailId, pAttachment.content, pAttachment.mimeType, pAttachment.filename, true, null, null) }); return mailId; @@ -321,12 +328,13 @@ Email.prototype.openMail = function () /** * ask for a download of the email * + * @param {String} [pFilename] the file name. * @return {Array} array of [filename, EML (base64)] */ -Email.prototype.downloadEML = function () +Email.prototype.downloadEML = function (pFilename) { var eml = this.getEML(); - var filename = (this.subject || translate.text("Email Template")) + ".eml"; + var filename = (pFilename || translate.text("Email Template")) + ".eml"; neon.download(eml, filename); return [filename, eml]; } diff --git a/process/ImporterMappingFunctions_lib/process.js b/process/ImporterMappingFunctions_lib/process.js index 496ae5c71a907dd73e1f0a41852e837d93f6c5b3..a5746a0276df1bc7963975598a51395c10e741b1 100644 --- a/process/ImporterMappingFunctions_lib/process.js +++ b/process/ImporterMappingFunctions_lib/process.js @@ -16,8 +16,8 @@ import("Importer_lib"); /* +---------------------------------------------------------------+ -¦ toolkit methods for the import handler ¦ -¦ DO NOT TOUCH - use lib_importerCustomMappingFunctions ¦ +� toolkit methods for the import handler � +� DO NOT TOUCH - use lib_importerCustomMappingFunctions � +---------------------------------------------------------------+ */ @@ -145,7 +145,7 @@ function iAttribute(pObject) var parent = "NULL"; // select ab_attributeid from AB_ATTRIBUTE where ATTRIBUTE_NAME = 'Subordinate campaign of' and attribute_parent_id is null id = newSelect(ab_attributeId, alias).from(ab_attribute).where(attribute_name, attributes[i]) - .and(attribute_parent_id, "is null").cell(); + .and(attribute_parent_id + "is null").cell(); } else { diff --git a/process/IncomingEmailExecutor_lib/process.js b/process/IncomingEmailExecutor_lib/process.js index 6841b19deb7a2398849d77c40c770dd190e9e7a9..a43fbc1f56043c6699cdfb335d50981fba6f24f0 100644 --- a/process/IncomingEmailExecutor_lib/process.js +++ b/process/IncomingEmailExecutor_lib/process.js @@ -109,6 +109,11 @@ IncomingEmailExecutor.prototype.getMailtextAsHtml = function() } textInfos.push(attachmentHtml); } + + textInfos = textInfos.map(function (el) + { + return "<p>" + el + "</p><br>"; + }); //since the activity has always and only a HTML-content-field we need to ensure that there will be always a HTML-content if (this.rawMail[mail.MAIL_HTMLTEXT]) @@ -116,11 +121,10 @@ IncomingEmailExecutor.prototype.getMailtextAsHtml = function() else textInfos.push("<br/>\n" + text.text2html(this.rawMail[mail.MAIL_TEXT], true)); - var res = textInfos.join("<br/>\n"); + var res = textInfos.join("\n"); return res; } - IncomingEmailExecutor.prototype.getSenderInfo = function() { if (this._senderInfo == null) @@ -212,14 +216,14 @@ IncomingEmailExecutor.prototype.deleteUnlinkedMail = function (pUnlinkedMailId) IncomingEmailExecutor.prototype.autoProcess = function(pUnlinkedMailId) { let tempResult = {}; + tempResult.isUnlinkedMail = false; if (this.isUnlinkable()) { + tempResult.isUnlinkedMail = true; if (pUnlinkedMailId) return { unlinkedMailId: pUnlinkedMailId }; - else - tempResult.unlinkedMailId = this.insertUnlinkedMail(); } tempResult.activityId = this.createActivity().activityId; diff --git a/process/IndexSearch_lib/process.js b/process/IndexSearch_lib/process.js index b39ce87ed0696119457a4d37b819455fd182f89b..532ec972fe333d7fb1e89cf731d3127c8bd20a1b 100644 --- a/process/IndexSearch_lib/process.js +++ b/process/IndexSearch_lib/process.js @@ -22,15 +22,18 @@ function IndexsearchUtils() {} */ IndexsearchUtils.getAffectedIdValues = function(fieldname, affectedInfoContainer, updateFn) { var affectedIds; - switch (affectedInfoContainer.action){ - case "I": - affectedIds = [affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]]; + switch (affectedInfoContainer.action) + { + case "I": + affectedIds = affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]; + affectedIds = affectedIds ? [affectedIds] : [] break; case "U": affectedIds = updateFn.call(null, affectedInfoContainer.id); break; case "D": - affectedIds = [affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]]; + affectedIds = affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]; + affectedIds = affectedIds ? [affectedIds] : [] break; } return affectedIds || []; diff --git a/process/Loghistory_lib/process.js b/process/Loghistory_lib/process.js index 59036002263ecb1d0e269fc2afc6cb7c6107e742..fa07e912c734554fe0e1955b5e3f926f889630fc 100644 --- a/process/Loghistory_lib/process.js +++ b/process/Loghistory_lib/process.js @@ -150,6 +150,8 @@ LogHistoryExecutor.prototype.execute = function () { description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description, olddata[0], newdata[0]], this.translationLanguage)); } + else + description.push(conf.Description + " " + newdata[0]); } if (conf.RefTable) this.affectedTable = conf.RefTable; } //no extra tables @@ -284,7 +286,15 @@ LogHistoryExecutor.prototype._getDataForExtras = function(pId, pValues) if (this.affectedTable == "AB_ATTRIBUTERELATION") { data[0] = AttributeUtil.getFullAttributeName(pId); - data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); + //if the attribute type is "OBJECTSELECTION", entities.getRow is used for resolving the displayValue, that can cause an error + try { + data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); + } + catch (err) + { + logging.log(err); + data[1] = null; + } } else if (this.affectedTable == "COMMUNICATION") { @@ -349,7 +359,12 @@ LogHistoryExecutor.prototype._getFormattedValue = function (pColumnName, pDescri var params = Translate4LogParams.generateParams(this.idValue, pValue != null ? pValue.toString() : null, this.sqlAction, this.translationLanguage); var scriptId = "LogHistoryExecutor._getFormattedValue." + this.structureDefinitionAlias + "." + this.affectedTable + "." + pColumnName + ".translate4Log"; - pValue = process.executeScript(scriptId, pDescription.translate4Log, params, vars.get("$sys.dbalias")); + var processConfig = process.createStartScriptConfig() + .setIdentifier(scriptId) + .setScript(pDescription.translate4Log) + .setLocalVariables(params) + .setAlias(vars.get("$sys.dbalias")); + pValue = process.startScript(processConfig); } else if (pDescription.columnType == String(SQLTYPES.TIMESTAMP) || pDescription.columnType == String(SQLTYPES.DATE)) pValue = datetime.toDate(pValue, translate.text("dd.MM.yyyy", this.translationLanguage), "Europe/Berlin");//TODO: timezone? diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js index b0bfefeff4221625ed37066bb16ef2963c6aa598..8b12e56fdbc6913c720f06ef108364e70115939e 100644 --- a/process/Offer_lib/process.js +++ b/process/Offer_lib/process.js @@ -1,3 +1,4 @@ +import("system.SQLTYPES"); import("system.vars"); import("system.util"); import("system.datetime"); @@ -103,7 +104,7 @@ OfferUtils.createNewOffer = function(pContextId, pRowId, pRelationId, pActivityI OfferUtils.buildOfferReport = function (pOfferID) { var offerReport = new Report("Offer_report"); - + var sqlUtil = new SqlMaskingUtils(); var offerFields = [ @@ -159,11 +160,12 @@ OfferUtils.buildOfferReport = function (pOfferID) "0", "''" ]; - + var itemData = newSelect(offerItemFields) .from("OFFERITEM") .leftJoin("PRODUCT", "PRODUCT.PRODUCTID = OFFERITEM.PRODUCT_ID") .where("OFFERITEM.OFFER_ID", pOfferID) + .orderBy("OFFERITEM.ITEMSORT asc") .table(); if (itemData.length == 0) diff --git a/process/Order_lib/process.js b/process/Order_lib/process.js index 8c7da8b6647c80508b635b1466ce8f8966ccdc25..b9d4815ae0586e19b95da36fc8c7c8d6825db17a 100644 --- a/process/Order_lib/process.js +++ b/process/Order_lib/process.js @@ -122,11 +122,11 @@ OrderUtils.copyOrder = function (pSourceOfferId, pContactId, pOrderType, pLangua * copies all offerItems of an offer and creates orderItems for an order * * @param {String} pSourceOfferId the offer to get the items from - * @param {String} pSourceOfferId the order to create the items for + * @param {String} pOrderId the order to create the items for */ -OrderUtils.copyOfferItemsToOrder = function (pSourceOfferId, pSourceOfferId) +OrderUtils.copyOfferItemsToOrder = function (pSourceOfferId, pOrderId) { - var InputMapping = { + var inputMapping = { "OFFERITEM": { destinationModuleName : "SALESORDERITEM", DestinationColumnMapping : { @@ -148,19 +148,19 @@ OrderUtils.copyOfferItemsToOrder = function (pSourceOfferId, pSourceOfferId) }, condition: newWhereIfSet("OFFERITEM.OFFER_ID", pSourceOfferId).orderBy("ITEMSORT").toString("1=2", true), ValueMapping: { - "OFFER_ID" : pSourceOfferId + "OFFER_ID" : pOrderId } } }; - CopyModuleUtils.copyModule(InputMapping); + CopyModuleUtils.copyModule(inputMapping); - var oiUtils = new OrderItemUtils(pSourceOfferId); + var oiUtils = new OrderItemUtils(pOrderId); //update order price cols = ["NET", "VAT"]; var vals = oiUtils.getNetAndVat(); - newWhere("SALESORDER.SALESORDERID", pSourceOfferId) + newWhere("SALESORDER.SALESORDERID", pOrderId) .updateData(true, "SALESORDER", cols, null, vals); } diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js index ae3069a4d2e97d69214c1c028a2f281bce49ae2c..622b86c386ba03047f92019a9860f8c133f4c628 100644 --- a/process/Organisation_lib/process.js +++ b/process/Organisation_lib/process.js @@ -174,8 +174,10 @@ var activityData = activityQuery.table() //tasks var taskData = newSelect("TASK.SUBJECT, TASK.DESCRIPTION, TASK.STATUS, FIRSTNAME, LASTNAME") .from("TASK") - .join("CONTACT", "EDITOR_CONTACT_ID = CONTACTID") - .leftJoin("PERSON", "CONTACT.PERSON_ID = PERSONID") + .join("TASKLINK", "TASKLINK.TASK_ID = TASK.TASKID") + .join("CONTACT", "TASKLINK.OBJECT_ROWID = CONTACTID and (TASKLINK.OBJECT_TYPE = 'Organisation' or TASKLINK.OBJECT_TYPE = 'Person')") + .join("CONTACT c", "TASK.EDITOR_CONTACT_ID = c.CONTACTID") + .leftJoin("PERSON", "c.PERSON_ID = PERSONID") .where("CONTACT.ORGANISATION_ID", pOrgId) .table(); diff --git a/process/SetAttribute_workflowService/process.js b/process/SetAttribute_workflowService/process.js index 1fecaccbec55f29668e3257748971104d4874433..5ae7685d47c6712b675f29bf3f695e81dde188c4 100644 --- a/process/SetAttribute_workflowService/process.js +++ b/process/SetAttribute_workflowService/process.js @@ -1,34 +1,19 @@ -import("system.logging"); import("Sql_lib"); import("Attribute_lib"); import("system.result"); import("system.vars"); var variables = JSON.parse(vars.get("$local.value")); -var attributeName = variables.attributeName; var attributeId; -if(attributeName) +if (variables.attributeName) { - attributeId = newSelect("AB_ATTRIBUTE.AB_ATTRIBUTEID") - .from("AB_ATTRIBUTE") - .where("AB_ATTRIBUTE.ATTRIBUTE_NAME", attributeName) - .cell(); + attributeId = newSelect("AB_ATTRIBUTE.AB_ATTRIBUTEID") + .from("AB_ATTRIBUTE") + .where("AB_ATTRIBUTE.ATTRIBUTE_NAME", variables.attributeName) + .cell(); } else -{ attributeId = variables.attributeId; -} -var value = variables.attributeValue; -var objectRowId = variables.targetId; -var objectType = variables.targetContext; - -if(value) -{ - result.string(new AttributeRelationQuery(objectRowId, attributeId, objectType).insertAttribute(value)); -} -else -{ - result.string(AttributeRelationUtils.insertAttribute(objectRowId, objectType, attributeId, null)); -} +result.string(new AttributeRelationQuery(variables.targetId, attributeId, variables.targetContext).insertAttribute(variables.attributeValue)); \ No newline at end of file diff --git a/process/SqlLib_tests/process.js b/process/SqlLib_tests/process.js index e1b78e43af06ce94fc940d6eb5b280cc6223ce85..924162e2a4ef98f5dc93515f648fdad355ced736 100644 --- a/process/SqlLib_tests/process.js +++ b/process/SqlLib_tests/process.js @@ -646,68 +646,68 @@ var mandatoryErrorTests = new TestSuite([ ["and without parameter should error", function(pTester) { new SqlBuilder().where().or(); - }, SqlBuilder.ERROR_NO_PARAMETER_PROVIDED()], + }, SqlBuilder._ERROR_NO_PARAMETER_PROVIDED()], ["and with null as value should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", null); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["and with undefined as value should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", undefined); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["and with a jdito-var containing null should error", function(pTester) { vars.set("$global.TestingVarNull", null); new SqlBuilder().where().or("PERSON.FIRSTNAME", "$global.TestingVarNull"); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY_JDITO_VAR()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY_JDITO_VAR()], ["and with an empty sql-builder as subquery should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", new SqlBuilder()); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["and with an empty prepared statement as subquery should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", ["", []]); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], // or ["or without parameter should error", function(pTester) { new SqlBuilder().where().or(); - }, SqlBuilder.ERROR_NO_PARAMETER_PROVIDED()], + }, SqlBuilder._ERROR_NO_PARAMETER_PROVIDED()], ["or with null as value should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", null); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["or with undefined as value should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", undefined); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["or with a jdito-var containing null should error", function(pTester) { vars.set("$global.TestingVarNull", null); new SqlBuilder().where().or("PERSON.FIRSTNAME", "$global.TestingVarNull"); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY_JDITO_VAR()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY_JDITO_VAR()], ["or with an empty sql-builder as subquery should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", new SqlBuilder()); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ["or with an empty prepared statement as subquery should error", function(pTester) { new SqlBuilder().where().or("PERSON.FIRSTNAME", ["", []]); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()], + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()], ]); var inStatementTests = new TestSuite([ @@ -766,7 +766,7 @@ var inStatementTests = new TestSuite([ { new SqlBuilder() .where("PERSON.LASTNAME", []); - }, SqlBuilder.ERROR_VALUE_IS_MANDATORY()] + }, SqlBuilder._ERROR_VALUE_IS_MANDATORY()] ]); var testConstantFunctions = new TestSuite([ @@ -886,7 +886,7 @@ var subqueryAsFieldTests = new TestSuite([ .where("ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID") .and("PERSON.FIRSTNAME", "val1") // test if the value is added at the correct place new SqlBuilder().where(subQuery, "val2", "# = ?"); - }, SqlBuilder.ERROR_SUBSELECT_AS_FIELD_NO_FIELD_TYPE()], + }, SqlBuilder._ERROR_SUBSELECT_AS_FIELD_NO_FIELD_TYPE()], ["Test if a Subselect as field should error if it is not a full select.", function(pTester) { @@ -895,7 +895,7 @@ var subqueryAsFieldTests = new TestSuite([ .and("PERSON.FIRSTNAME", "val1") // test if the value is added at the correct place new SqlBuilder().where(subQuery, "val2", "# = ?", SQLTYPES.VARCHAR); - }, SqlBuilder.ERROR_SUBSELECT_AS_FIELD_NOT_COMPLETE()] + }, SqlBuilder._ERROR_SUBSELECT_AS_FIELD_NOT_COMPLETE()] ]); var conditionFormatTests = new TestSuite([ @@ -918,17 +918,17 @@ var conditionFormatTests = new TestSuite([ ["pCondition should fail if more than one ? exists", function(pTester) { new SqlBuilder().where("PERSON.FIRSTNAME", "val1", "? test ?") - }, SqlBuilder.ERROR_CONDITION_WRONG_FORMAT()], + }, SqlBuilder._ERROR_CONDITION_WRONG_FORMAT()], ["pCondition should fail if more than one # exists", function(pTester) { new SqlBuilder().where("PERSON.FIRSTNAME", "val1", "# test #") - }, SqlBuilder.ERROR_CONDITION_WRONG_FORMAT()], + }, SqlBuilder._ERROR_CONDITION_WRONG_FORMAT()], ["pCondition should fail if # and ? are in wrong order", function(pTester) { new SqlBuilder().where("PERSON.FIRSTNAME", "val1", "? = #") - }, SqlBuilder.ERROR_CONDITION_WRONG_FORMAT()] + }, SqlBuilder._ERROR_CONDITION_WRONG_FORMAT()] ]); var subqueryAliasTests = new TestSuite([ diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 6f66eddba14a1eb66543e240cb9292a85e696295..fb933d980b271bc431bdd4715c15d07243981ade 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -2463,6 +2463,48 @@ SqlBuilder.prototype.updateFields = function (pFieldValues, pTableName) return this.updateData(true, pTableName, columns, null, values); } +/** + * Builds an array containing the table and condition for an update. + * + * @param {Object} pFieldValues Object with the columns to update as keys mapped to their values + * @param {String} [pTableName] The table for updating data. If undefined, the from part of the SqlBuilder will be used (works only if it is a tablename). If no from is set, + * the table of the first where-condition is used. + * @return {Array} array of [tableName, columns, columnTypes, values, preparedCondition], like it is required by db.updates or null if there is no condition + * @example + * var updateStatements = []; + * updateStatements.push(newWhere("PERSON.PERSONID", pPersonId).buildUpdateStatement({"FIRSTNAME" : firstName})); + * updateStatements.push(newWhere("ORGANISATION.ORGANISATIONID", pOrganisationId).buildUpdateStatement({"NAME" : organisationName})); + * db.updates(updateStatements); + */ +SqlBuilder.prototype.buildUpdateStatement = function (pFieldValues, pTableName) +{ + if (!pFieldValues || typeof(pFieldValues) !== "object") + throw SqlBuilder._ERROR_UPDATE_VALUES_INVALID; + + var columns = []; + var values = []; + for (let field in pFieldValues) + { + columns.push(field); + values.push(pFieldValues[field].toString()); + } + + if (columns.length !== 0 && this._checkForUpdate()) + { + if (!pTableName && !this._tableName) + throw SqlBuilder._ERROR_NO_TABLE(); + + return [ + (pTableName ? pTableName : this._tableName), + columns, + null, + values, + this.buildCondition() + ]; + } + return null; +} + /** * Inserts data in the database. This function doesn't require any where-condition, it is intended to be called right after 'new SqlBuilder()'. <br/> * @@ -2565,6 +2607,36 @@ SqlBuilder.prototype.deleteData = function(pExecuteOnlyIfConditionExists, pTable } } +/** + * Builds an array containing the table and condition for a delete. + * + * @param {Boolean} [pOnlyIfConditionExists=true] If true and there is no condition, null is returned.<br/> + * <strong>IMPORTANT: If this is set to false and there is no condition, every row in the table will be deleted!</strong> + * @param {String} [pTableName] The table for deleting data. If undefined, the from part of the SqlBuilder will be used. If no from is set, + * the table of the first where-condition is used. + * @return {Array} array of [tableName, preparedCondition], like it is required by db.deletes + * @example + * var deleteStatements = []; + * deleteStatements.push(newWhere("PERSON.PERSONID", pPersonId).buildDeleteStatement()); + * deleteStatements.push(newWhere("CONTACT.CONTACTID", pContactId).buildDeleteStatement()); + * db.deletes(deleteStatements); + */ +SqlBuilder.prototype.buildDeleteStatement = function(pOnlyIfConditionExists, pTableName) +{ + if (this._checkForUpdate(pOnlyIfConditionExists)) + { + if (!pTableName && !this._tableName) + throw SqlBuilder._ERROR_NO_TABLE(); + + return [ + (pTableName ? pTableName : this._tableName), + this.buildCondition() + ]; + } + else + return null; +} + /** * Executes the SQL using db.cell and returns the result.<br/> * Note: the default for pExecuteOnlyIfConditionExists is false becausse it is more natural to select all rows if no condition exists. diff --git a/process/TestIndexSearch/process.js b/process/TestIndexSearch/process.js index 5495eb0a91fb11dac1cc19016882a846552d4d48..de5128f2fe74bf4e963c91cf24ff3ff8bfb2e3e6 100644 --- a/process/TestIndexSearch/process.js +++ b/process/TestIndexSearch/process.js @@ -11,13 +11,13 @@ logging.log(indexsearch.lookupIndexField("Person_entity", "PersAddresses.CITY.va logging.log(indexsearch.lookupIndexField(null, "Person_entity.FIRSTNAME.value")); logging.log(indexsearch.lookupIndexField(null, "Person_entity.PersAddresses.CITY.value")); var json = '{"entity":"Person_entity","filter":{"type":"group","operator":"AND","childs":[{"type":"row","name":"FIRSTNAME","operator":"STARTSWITH","value":"asd","key":"","contenttype":"TEXT"},{"type":"group","operator":"OR","childs":[{"type":"row","name":"LASTNAME","operator":"STARTSWITH","value":"L","key":"","contenttype":"TEXT"}]}]}}'; -logging.log(indexsearch.buildQueryFromSearchCondition(json)); +logging.log(indexsearch.toFilterPattern(json)); var t1 = indexsearch.createTerm("lisa").setEntityField("Person_entity.FIRSTNAME"); var t2 = indexsearch.createTerm("sommer").setEntityField("Person_entity.LASTNAME"); var t3 = indexsearch.createWildcardTerm("LALA").setEntityField("Person_entity.PersAddresses.CITY"); var patternConf = indexsearch.createPatternConfig().or(t1).or(t2).or(t3); -var pattern = indexsearch.buildPatternString(patternConf); +var pattern = indexsearch.buildPattern(patternConf); logging.log(pattern); var query = indexsearch.createIndexQuery() .setPattern(pattern).setEntities("Person_entity") diff --git a/process/UnitTest_lib/process.js b/process/UnitTest_lib/process.js index 69be82eb2dd4058256ef26d50ca4795360028d00..0ce141d4828e7b396f4cc4368c4daae06aec5dd1 100644 --- a/process/UnitTest_lib/process.js +++ b/process/UnitTest_lib/process.js @@ -53,6 +53,48 @@ function Tester(pCollectionName) this.currentTestHadAlreadyAssert = false; } +/** + * generates a summary of the test results + * + * @return {Obect} + */ +Tester.prototype.getSummary = function () +{ + var summary = { + failures : 0, + successes : 0, + failedTests : [], + getMessage : function () + { + var message = "-------------------------\n" + + (this.failures ? "Test failure" : "Test success") + + "\n-------------------------\nTests performed: " + (this.successes + this.failures) + + "\nTests successful: " + this.successes + + "\nTests failed: " + this.failures; + if (this.failedTests.length) + { + message += "\nFailures:"; + this.failedTests.forEach(function (testName) + { + message += "\n\t" + testName; + }); + } + return message; + } + } + this.testResults.forEach(function ([testName,, successful]) + { + if (successful) + summary.successes++; + else + { + summary.failures++; + summary.failedTests.push(testName); + } + }); + return summary; +} + /** * With assert you can test if a variable is the same like an expected value.<br/> * The test result is added to the Tester<br/> @@ -189,4 +231,5 @@ Tester.prototype.printResults = function () logging.log(message); lastTestDescription = pResult[0]; }, this); + logging.log(this.getSummary().getMessage()); } \ No newline at end of file diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js index 39b2bdb10b70dc7c9f72e17087f1d144cdb59219..179875a721eeee920de4ed7fa72752661fcefbe9 100644 --- a/process/Workflow_lib/process.js +++ b/process/Workflow_lib/process.js @@ -204,8 +204,9 @@ WorkflowSignalSender.deleted = function (pTargetId, pTargetContext) * @param {String} pEvent event * @param {String} pTargetId uid of the dataset * @param {String} pTargetContext context of the dataset + * @param {Object} pVariables additional variables to set */ -WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext) +WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext, pVariables) { var variables = WorkflowVariables.getTargetVariables(pTargetId, pTargetContext); @@ -214,7 +215,7 @@ WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext { if (_checkCondition(signal.entity, variables[WorkflowVariables.TARGET_ID()], signal.condition)) { - var filteredVariables = {}; + var filteredVariables = pVariables || {}; signal.variables.forEach(function (varName) { filteredVariables[varName] = variables[varName]; diff --git a/process/_test_clientProcess/process.js b/process/_test_clientProcess/process.js index 69c8a127ca7561d158d3d268d54e5ce54db75c97..bae4f5fd7b722780627c1828db7848183aab8a82 100644 --- a/process/_test_clientProcess/process.js +++ b/process/_test_clientProcess/process.js @@ -1 +1 @@ -throw new Error("proccess not defined")throw new Error("proccess not defined") \ No newline at end of file +throw new Error("proccess not defined"); \ No newline at end of file diff --git a/process/updateActivities_serverProzess/process.js b/process/updateActivities_serverProzess/process.js new file mode 100644 index 0000000000000000000000000000000000000000..0a952cd68dca8ad315cb606d7aa6f0ef74faf6e4 --- /dev/null +++ b/process/updateActivities_serverProzess/process.js @@ -0,0 +1,19 @@ +import("system.logging"); +import("system.db"); +import("Sql_lib"); + +var activities = new SqlBuilder().select(["ACTIVITY.INFO", "ACTIVITY.ACTIVITYID"]).from("ACTIVITY").where("ACTIVITY.CATEGORY", "MAIL").and("ACTIVITY.INFO", "<%", SqlBuilder.NOT_LIKE()).and("ACTIVITY.INFO","%<html>%", SqlBuilder.LIKE()).table(); +activities.forEach(function (row) +{ + var newValue = row[0].split("<br/>\n").map(function (el) + { + if (el == "") + return "<br>"; + else if (el.startsWith("<html>")) + return el; + else + return "<p>" + el + "</p><br>"; + }).join("\n"); + newWhere("ACTIVITY.ACTIVITYID", row[1]) + .updateFields({"INFO" : newValue}); +}); \ No newline at end of file diff --git a/process/updateActivities_serverProzess/updateActivities_serverProzess.aod b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod new file mode 100644 index 0000000000000000000000000000000000000000..51684eaceb296a2b5f75e7f1c82b373494b4e28e --- /dev/null +++ b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>updateActivities_serverProzess</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/updateActivities_serverProzess/process.js</process> + <restrictedRoles /> + <alias>Data_alias</alias> + <variants> + <element>EXECUTABLE</element> + </variants> +</process> diff --git a/process/workflowServiceTasks_rest/process.js b/process/workflowServiceTasks_rest/process.js index 2da45ade3533c545a968cd5f377a2169e6f89223..470717e7e185c7c7af401533042bcac29582bee1 100644 --- a/process/workflowServiceTasks_rest/process.js +++ b/process/workflowServiceTasks_rest/process.js @@ -6,12 +6,8 @@ function restget (pRequest) { var request = JSON.parse(pRequest); - var serviceTasks = project.getDataModels(project.DATAMODEL_KIND_PROCESS) - .filter(function (row) - { - return /.+_workflowService$/.test(row[0]); - }) - .map(function (row) + var serviceTaskNames = process.getProcesses([process.VARIANT_WORKFLOW]); + var serviceTasks = project.getDataModels(project.DATAMODEL_KIND_PROCESS, serviceTaskNames).map(function (row) { return { id : row[0], diff --git a/report/Offer_report/reportData.jrxml b/report/Offer_report/reportData.jrxml index b7186a7cbda409462e048d4141d7f021427bcc5c..54ef644c16b90f8066509a2fedf6ca135c56cebd 100644 --- a/report/Offer_report/reportData.jrxml +++ b/report/Offer_report/reportData.jrxml @@ -2,7 +2,7 @@ <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea"> <property name="ireport.zoom" value="1.9487171000000014"/> <property name="ireport.x" value="0"/> - <property name="ireport.y" value="233"/> + <property name="ireport.y" value="190"/> <parameter name="myAddr" class="java.lang.String"/> <parameter name="Pos" class="java.lang.String"/> <parameter name="Articledescription" class="java.lang.String"/> @@ -24,7 +24,7 @@ <parameter name="OfferDeliveryTerm" class="java.lang.String"/> <parameter name="responsible" class="java.lang.String"/> <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> - <defaultValueExpression><![CDATA["C:\\Entwicklung\\stable2019\\project\\basic\\report\\Offer_report\\"]]></defaultValueExpression> + <defaultValueExpression><![CDATA["C:\\Entwicklung\\0.0\\project\\basic2\\report\\Offer_report\\"]]></defaultValueExpression> </parameter> <parameter name="adito.datasource.subdata" class="java.lang.Object"/> <parameter name="SUMITEMSUM" class="java.lang.Double"/> @@ -55,7 +55,6 @@ <field name="OFFER_VERSNR" class="java.lang.String"/> <field name="OFFER_FOOTER" class="java.lang.String"/> <sortField name="OFFER_OFFERID"/> - <sortField name="OFFERITEM_ITEMPOSITION"/> <group name="OFFERID" isStartNewPage="true"> <groupExpression><![CDATA[$F{OFFER_OFFERID}]]></groupExpression> <groupHeader>