From 66e9f4c8c1f81353f30d6096c68f9daf7a60369b Mon Sep 17 00:00:00 2001 From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local> Date: Thu, 18 Apr 2019 11:31:28 +0200 Subject: [PATCH] Attribute theme tree --- .../2019.2/AditoBasic/init_AttributeType.xml | 2 +- .../data/example_attribute/Attribute.xml | 91 +++++++++++++++++++ .../data/example_attribute/AttributeUsage.xml | 53 +++++++++++ .../value/possibleItemsProcess.js | 4 +- .../valueproxy/possibleItemsProcess.js | 4 +- entity/Attribute_entity/Attribute_entity.aod | 7 ++ .../attribute_parent_id/valueProcess.js | 2 +- .../attribute_type/displayValueProcess.js | 5 +- .../attribute_type/stateProcess.js | 5 +- .../attribute_type/valueProcess.js | 2 + entity/Attribute_entity/onValidation.js | 22 +++++ .../recordcontainers/jdito/contentProcess.js | 12 +-- .../recordcontainers/jdito/onInsert.js | 6 +- .../recordcontainers/jdito/onUpdate.js | 6 +- .../_____LANGUAGE_EXTRA.aod | 6 ++ .../_____LANGUAGE_de/_____LANGUAGE_de.aod | 7 ++ .../_____LANGUAGE_en/_____LANGUAGE_en.aod | 7 ++ .../AttributePreview_view.aod | 4 + .../AttributeUsageFilter_view.aod | 8 ++ .../AttributeUsageMultiEdit_view.aod | 8 ++ 20 files changed, 240 insertions(+), 21 deletions(-) create mode 100644 entity/Attribute_entity/onValidation.js diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml index e8220a7670e..93ebb8ff36a 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml @@ -29,7 +29,7 @@ <insert tableName="AB_KEYWORD_ENTRY"> <column name="AB_KEYWORD_ENTRYID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> <column name="KEYID" value="VOID"/> - <column name="TITLE" value="Void"/> + <column name="TITLE" value="${ATTRIBUTE_VOID}"/> <column name="CONTAINER" value="AttributeType"/> <column name="SORTING" valueNumeric="9"/> <column name="ISACTIVE" valueNumeric="1"/> diff --git a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml index 9895874d89a..83631681bae 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml @@ -1,6 +1,68 @@ <?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.listl" id="f1b149fb-bd9d-44b7-a334-8f6d77261b95"> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Abteilungen"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Geschäftsleitung"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vertrieb"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Außendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Innendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Marketing"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="IT/Service"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c133a157-0109-4d88-8343-71db25b12fc5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produktion"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="4"/> +</insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> @@ -77,6 +139,7 @@ <column name="ATTRIBUTE_NAME" value="0 gering"/> <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="6266b41c-fa20-47b9-bd71-5633015d0796"/> @@ -84,6 +147,7 @@ <column name="ATTRIBUTE_NAME" value="gut"/> <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> @@ -115,6 +179,7 @@ <column name="ATTRIBUTE_NAME" value="A"/> <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="4fcd8bb8-72fd-48d0-9e64-4c80e5177c36"/> @@ -153,6 +218,7 @@ <column name="ATTRIBUTE_NAME" value="Vollberechnung"/> <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="ab545654-1fce-4993-b763-0ec469781302"/> @@ -231,6 +297,7 @@ <column name="ATTRIBUTE_NAME" value="Wein"/> <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="07fc6730-6c83-4996-bfd9-41c18765a10a"/> @@ -262,6 +329,7 @@ <column name="ATTRIBUTE_NAME" value="Gerät/Maschine"/> <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="e857f9ee-fb27-4507-8381-46ba0a181cef"/> @@ -276,6 +344,7 @@ <column name="ATTRIBUTE_NAME" value="Fernreisen"/> <column name="ATTRIBUTE_PARENT_ID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="4dce5406-9a91-4a92-b55e-d1313c18f9c6"/> @@ -328,6 +397,7 @@ <column name="ATTRIBUTE_NAME" value="Kunde"/> <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="d0a9eb78-6dcf-48e0-ba91-04a3ba104d26"/> @@ -410,6 +480,7 @@ <column name="ATTRIBUTE_NAME" value="ORG"/> <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="2318607b-556a-4537-92f0-9870ee9a9201"/> @@ -433,6 +504,7 @@ <column name="ATTRIBUTE_NAME" value="Maschinenbau"/> <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> @@ -485,6 +557,7 @@ <column name="ATTRIBUTE_NAME" value="Ja"/> <column name="ATTRIBUTE_PARENT_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> @@ -522,6 +595,7 @@ <column name="ATTRIBUTE_NAME" value="Interessent"/> <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="4a9625ed-0cd9-445f-ae13-5bdbfdf3f38c"/> @@ -529,6 +603,7 @@ <column name="ATTRIBUTE_NAME" value="Fussball"/> <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="66271d11-a275-4141-8f84-86ab2ed3fedf"/> @@ -608,6 +683,7 @@ <column name="ATTRIBUTE_NAME" value="Zahlungsproblem Kunde"/> <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="2bdb04cb-4cd3-4454-802c-8e2b4a5e2e36"/> @@ -697,6 +773,7 @@ <column name="ATTRIBUTE_NAME" value="Wirtschaft"/> <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="bb62ae03-be34-4d34-885c-27591c5bf1b4"/> @@ -758,6 +835,7 @@ <column name="ATTRIBUTE_NAME" value="Transportschaden"/> <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> </insert> <insert tableName="AB_ATTRIBUTE"> <column name="AB_ATTRIBUTEID" value="c0fb9a3a-89a5-46a4-9b95-f48c9481375e"/> @@ -1615,6 +1693,19 @@ <param value="3f119858-9d69-4903-a572-d286be151f73"/> </whereParams> </delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID in (?, ?, ?, ?, ?, ?, ?, ?)</where> + <whereParams> + <param value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <param value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> + <param value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <param value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> + <param value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> + <param value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> + <param value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> + <param value="c133a157-0109-4d88-8343-71db25b12fc5"/> + </whereParams> +</delete> </rollback> </changeSet> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml index ae2d23abf2d..08505990fec 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml @@ -1,6 +1,46 @@ <?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.listl" id="33bfbf9d-e3b9-4dd0-94e5-f22c74bc3014"> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="c401df51-da3f-4a99-a645-777dc717f6a8"/> + <column name="AB_ATTRIBUTE_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="356de618-4e0d-48e7-a2bc-942bd479cdb8"/> + <column name="AB_ATTRIBUTE_ID" value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="4a352aad-f691-4f2c-b9bf-d7e6bdb93ffa"/> + <column name="AB_ATTRIBUTE_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="0f184647-c20d-411d-91e7-b390824a4e43"/> + <column name="AB_ATTRIBUTE_ID" value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="28c7b827-a54a-4848-af8e-c42130d9080e"/> + <column name="AB_ATTRIBUTE_ID" value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="a67b3d1a-caca-42da-8fe9-842ad681041c"/> + <column name="AB_ATTRIBUTE_ID" value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="a2fd0be6-71e7-467f-9e9d-e68154dbccaf"/> + <column name="AB_ATTRIBUTE_ID" value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="d3d463dc-64c3-4e6a-a6a2-28d03ca08f34"/> + <column name="AB_ATTRIBUTE_ID" value="c133a157-0109-4d88-8343-71db25b12fc5"/> + <column name="OBJECT_TYPE" value="Employee"/> +</insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="3234f4e2-0ee7-4782-9b10-c953b7b1be29"/> <column name="AB_ATTRIBUTE_ID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/> @@ -769,6 +809,19 @@ <param value="04278ec-6e1b-42d7-bbcc-00fd4a1b1db7"/> </whereParams> </delete> +<delete tableName="AB_ATTRIBUTEUSAGE"> + <where>AB_ATTRIBUTEUSAGEID in (?, ?, ?, ?, ?, ?, ?, ?)</where> + <whereParams> + <param value="c401df51-da3f-4a99-a645-777dc717f6a8"/> + <param value="356de618-4e0d-48e7-a2bc-942bd479cdb8"/> + <param value="4a352aad-f691-4f2c-b9bf-d7e6bdb93ffa"/> + <param value="0f184647-c20d-411d-91e7-b390824a4e43"/> + <param value="28c7b827-a54a-4848-af8e-c42130d9080e"/> + <param value="a67b3d1a-caca-42da-8fe9-842ad681041c"/> + <param value="a2fd0be6-71e7-467f-9e9d-e68154dbccaf"/> + <param value="d3d463dc-64c3-4e6a-a6a2-28d03ca08f34"/> + </whereParams> +</delete> </rollback> </changeSet> </databaseChangeLog> diff --git a/entity/AttributeRelationTree_entity/entityfields/value/possibleItemsProcess.js b/entity/AttributeRelationTree_entity/entityfields/value/possibleItemsProcess.js index 4a079812c98..26adcbcda38 100644 --- a/entity/AttributeRelationTree_entity/entityfields/value/possibleItemsProcess.js +++ b/entity/AttributeRelationTree_entity/entityfields/value/possibleItemsProcess.js @@ -14,7 +14,7 @@ if (attrType == $AttributeTypes.COMBO) .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_ACTIVE", "1") .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", attributeId) .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE) - .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by ATTRIBUTE_NAME"); + .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by SORTING asc"); var valueList = db.table(valueSql); result.object(valueList); @@ -37,7 +37,7 @@ else if (attrType == $AttributeTypes.KEYWORD) var sql = SqlCondition.begin() .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", db.cell(attrKeywordSelect)) - .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"); + .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", "1=2", "order by SORTING asc"); var keywords = db.table(sql).map(function (row) { return [row[0], translate.text(row[1])]; diff --git a/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js b/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js index 4f20aef0cd6..104cdfb6913 100644 --- a/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js +++ b/entity/AttributeRelation_entity/entityfields/valueproxy/possibleItemsProcess.js @@ -14,7 +14,7 @@ if (attrType == $AttributeTypes.COMBO) .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_ACTIVE", "1") .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", attributeId) .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE) - .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by ATTRIBUTE_NAME"); + .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by SORTING asc"); var valueList = db.table(valueSql); result.object(valueList); } @@ -36,7 +36,7 @@ else if (attrType == $AttributeTypes.KEYWORD) var sql = SqlCondition.begin() .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", db.cell(attrKeywordSelect)) - .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"); + .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", "1=2", "order by SORTING asc"); var keywords = db.table(sql).map(function (row) { return [row[0], translate.text(row[1])]; diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index abf185d2812..8eeb24834a8 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -5,6 +5,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Attribute_entity/documentation.adoc</documentation> <afterUiInit>%aditoprj%/entity/Attribute_entity/afterUiInit.js</afterUiInit> + <onValidation>%aditoprj%/entity/Attribute_entity/onValidation.js</onValidation> <iconId>VAADIN:TAG</iconId> <titleProcess>%aditoprj%/entity/Attribute_entity/titleProcess.js</titleProcess> <recordContainer>jdito</recordContainer> @@ -282,6 +283,11 @@ <name>UID</name> <searchable v="false" /> </entityField> + <entityField> + <name>SORTING</name> + <title>Sorting</title> + <searchable v="false" /> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -299,6 +305,7 @@ <element>ATTRIBUTE_TYPE.value</element> <element>ATTRIBUTE_TYPE.displayValue</element> <element>KEYWORD_CONTAINER.value</element> + <element>SORTING.value</element> </recordFields> </jDitoRecordContainer> </recordContainers> diff --git a/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js index b0787c12933..6f4ceebb844 100644 --- a/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js @@ -2,5 +2,5 @@ import("system.neon"); import("system.result"); import("system.vars"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param")) +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param") && !vars.get("$this.value")) result.string(vars.get("$param.AttrParentId_param")); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js index 84b0b0897c6..8c164c65749 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js @@ -8,7 +8,6 @@ import("KeywordRegistry_basic"); if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "") { - var type = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); - if (type == $AttributeTypes.COMBO) - result.string(KeywordUtils.getViewValue($KeywordRegistry.attributeType(), $AttributeTypes.COMBOVALUE)); + var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); + result.string(KeywordUtils.getViewValue($KeywordRegistry.attributeType(), type)); } \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js b/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js index 20869c2a59b..184ef602b20 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js @@ -6,8 +6,9 @@ import("Attribute_lib"); import("Sql_lib"); var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); -var state = neon.COMPONENTSTATE_AUTO -if (type == $AttributeTypes.COMBOVALUE) +var parentType = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); +var state = neon.COMPONENTSTATE_EDITABLE; +if (parentType == $AttributeTypes.COMBO || parentType == $AttributeTypes.VOID) { state = neon.COMPONENTSTATE_READONLY; } diff --git a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js index 28020da1dda..dce209f82e8 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js @@ -9,4 +9,6 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field. var type = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); if (type == $AttributeTypes.COMBO) result.string($AttributeTypes.COMBOVALUE); + else if (type == $AttributeTypes.VOID) + result.string($AttributeTypes.VOID); } \ No newline at end of file diff --git a/entity/Attribute_entity/onValidation.js b/entity/Attribute_entity/onValidation.js new file mode 100644 index 00000000000..b29f26919c0 --- /dev/null +++ b/entity/Attribute_entity/onValidation.js @@ -0,0 +1,22 @@ +import("system.translate"); +import("system.db"); +import("system.vars"); +import("system.text"); +import("system.neon"); +import("Sql_lib"); + +//TODO: this should no happen in onValidation; waiting for #1032668 +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var parentId = vars.get("$field.ATTRIBUTE_PARENT_ID"); + if (parentId) + { + var cond = SqlCondition.begin().andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", parentId); + var maskingHelper = new SqlMaskingUtils(); + var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_ATTRIBUTE.SORTING") + " from AB_ATTRIBUTE", "1 = 2")); + newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) + if (isNaN(newCodeNumber)) + throw new TypeError(translate.text("The code number is not a valid number.")); + neon.setFieldValue("$field.SORTING", ++newCodeNumber); + } +} \ 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 0eb7f5b41e0..db6a619a464 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js @@ -11,7 +11,9 @@ import("Attribute_lib"); var sqlSelect = "select AB_ATTRIBUTEID, ATTRIBUTE_ACTIVE, " + "ATTRIBUTE_NAME, ATTRIBUTE_PARENT_ID, ATTRIBUTE_TYPE, " + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "ATTRIBUTE_TYPE") - + ", KEYWORD_CONTAINER from AB_ATTRIBUTE"; + + ", KEYWORD_CONTAINER, SORTING from AB_ATTRIBUTE"; + +var sqlOrder = " order by ATTRIBUTE_PARENT_ID asc, SORTING asc"; var condition = new SqlCondition(); @@ -46,10 +48,8 @@ else if (objectType) //if there's an objectType, it comes from the AttributeRel } else { - var type = vars.exists("$param.AttrParentType_param") && vars.get("$param.AttrParentType_param"); - if (type == $AttributeTypes.COMBO) - condition.andPrepareVars("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", "$param.AttrParentId_param"); - else if (type == $AttributeTypes.GROUP) + var type = vars.exists("$param.AttrParentType_param") && vars.get("$param.AttrParentType_param"); + if (AttributeTypeUtil.isGroupType(type)) { var parentId = vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param"); if (parentId) @@ -66,7 +66,7 @@ if (vars.exists("$local.filter") && vars.get("$local.filter")) condition.andSqlCondition((JditoFilterUtils.getSqlCondition(filter, "AB_ATTRIBUTE"))); } -var attributes = db.table(condition.buildSql(sqlSelect, "1=1")); +var attributes = db.table(condition.buildSql(sqlSelect, "1=1", sqlOrder)); if (attributes.length > 1) attributes = _sortArrayForTree(attributes); diff --git a/entity/Attribute_entity/recordcontainers/jdito/onInsert.js b/entity/Attribute_entity/recordcontainers/jdito/onInsert.js index 0b179785ecd..4562756bb00 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/onInsert.js +++ b/entity/Attribute_entity/recordcontainers/jdito/onInsert.js @@ -7,7 +7,8 @@ var columns = [ "ATTRIBUTE_NAME", "ATTRIBUTE_PARENT_ID", "ATTRIBUTE_TYPE", - "KEYWORD_CONTAINER" + "KEYWORD_CONTAINER", + "SORTING" ]; var values = [ vars.get("$field.UID"), @@ -15,7 +16,8 @@ var values = [ vars.get("$field.ATTRIBUTE_NAME"), vars.get("$field.ATTRIBUTE_PARENT_ID"), vars.get("$field.ATTRIBUTE_TYPE"), - vars.get("$field.KEYWORD_CONTAINER") + vars.get("$field.KEYWORD_CONTAINER"), + vars.get("$field.SORTING") ]; db.insertData("AB_ATTRIBUTE", columns, null, values); \ No newline at end of file diff --git a/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js b/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js index 152518a6dc3..232f0ee995b 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js @@ -7,14 +7,16 @@ var columns = [ "ATTRIBUTE_NAME", "ATTRIBUTE_PARENT_ID", "ATTRIBUTE_TYPE", - "KEYWORD_CONTAINER" + "KEYWORD_CONTAINER", + "SORTING" ]; var values = [ vars.get("$field.ATTRIBUTE_ACTIVE"), vars.get("$field.ATTRIBUTE_NAME"), vars.get("$field.ATTRIBUTE_PARENT_ID"), vars.get("$field.ATTRIBUTE_TYPE"), - vars.get("$field.KEYWORD_CONTAINER") + vars.get("$field.KEYWORD_CONTAINER"), + vars.get("$field.SORTING") ]; var condition = SqlCondition.begin() diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index fd1ca6e258c..e68b7b423c2 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -2913,6 +2913,12 @@ <entry> <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</key> </entry> + <entry> + <key>My tasks</key> + </entry> + <entry> + <key>${ATTRIBUTE_VOID}</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 6d5b8bac925..008eeb3a3de 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -50,6 +50,10 @@ <key>Salesproject phases</key> <value>Vertriebsprojektphasen</value> </entry> + <entry> + <key>${ATTRIBUTE_VOID}</key> + <value>Kein Wert</value> + </entry> <entry> <key>Turnover</key> <value>Umsatz</value> @@ -3731,6 +3735,9 @@ <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</key> <value>Der Wert für das Feld %0 ist undefined.</value> </entry> + <entry> + <key>MyTasks</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 da13cfb7dfd..e2a9a226e1d 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -2945,6 +2945,13 @@ <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</key> <value>The value for the field %0 is undefined.</value> </entry> + <entry> + <key>My tasks</key> + </entry> + <entry> + <key>${ATTRIBUTE_VOID}</key> + <value>Void</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonView/AttributePreview_view/AttributePreview_view.aod b/neonView/AttributePreview_view/AttributePreview_view.aod index 7a86c4599a0..5a8e785eb74 100644 --- a/neonView/AttributePreview_view/AttributePreview_view.aod +++ b/neonView/AttributePreview_view/AttributePreview_view.aod @@ -25,6 +25,10 @@ <name>70953962-9472-484b-ac95-567d2249f42e</name> <entityField>ATTRIBUTE_ACTIVE</entityField> </entityFieldLink> + <entityFieldLink> + <name>1b1cfdcb-fcab-4ca9-b0e0-b69fe88b65f0</name> + <entityField>SORTING</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <genericViewTemplate> diff --git a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod index 87500bc6ffd..be89cedfa70 100644 --- a/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod +++ b/neonView/AttributeUsageFilter_view/AttributeUsageFilter_view.aod @@ -18,6 +18,14 @@ <name>ba8d5468-4e59-4ab8-8174-afcca1ae0d9e</name> <entityField>OBJECT_TYPE</entityField> </neonTableColumn> + <neonTableColumn> + <name>22924cb1-25df-4c5c-92ec-2e51cb5b330b</name> + <entityField>MIN_COUNT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ee879f6d-dc3a-4e85-9711-e470c0eb9cc4</name> + <entityField>MAX_COUNT</entityField> + </neonTableColumn> </columns> </tableViewTemplate> </children> diff --git a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod index 0ecf44f96e8..ce7b20e704a 100644 --- a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod +++ b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod @@ -17,6 +17,14 @@ <entityField>OBJECT_TYPE</entityField> <width v="75" /> </neonTableColumn> + <neonTableColumn> + <name>4eb1b225-5856-4585-b6dd-401d1334d8ba</name> + <entityField>MIN_COUNT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>16bd5079-6496-4c5f-a821-ae145e1bc981</name> + <entityField>MAX_COUNT</entityField> + </neonTableColumn> </columns> </genericMultipleViewTemplate> </children> -- GitLab