From 998e3376c45c6118b55df7a376567707bc3e0742 Mon Sep 17 00:00:00 2001 From: "a.schindlbeck" <a.schindlbeck@adito.de> Date: Fri, 7 Aug 2020 14:30:59 +0200 Subject: [PATCH] #1060652 Favorites: Filter-View various Contexts bound --- entity/Favorite_entity/Favorite_entity.aod | 32 +++++++ .../object_type/displayValueProcess.js | 5 ++ .../entityfields/row_id/onValueChange.js | 88 +++++++++++++++++++ .../Organisation_entity.aod | 1 + .../FavoriteFilter_view.aod | 42 ++++++++- 5 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 entity/Favorite_entity/entityfields/object_type/displayValueProcess.js create mode 100644 entity/Favorite_entity/entityfields/row_id/onValueChange.js diff --git a/entity/Favorite_entity/Favorite_entity.aod b/entity/Favorite_entity/Favorite_entity.aod index 40e467b44b..73dce01c7e 100644 --- a/entity/Favorite_entity/Favorite_entity.aod +++ b/entity/Favorite_entity/Favorite_entity.aod @@ -18,9 +18,11 @@ </entityField> <entityField> <name>ROW_ID</name> + <onValueChange>%aditoprj%/entity/Favorite_entity/entityfields/row_id/onValueChange.js</onValueChange> </entityField> <entityField> <name>OBJECT_TYPE</name> + <displayValueProcess>%aditoprj%/entity/Favorite_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>USER_ID</name> @@ -31,6 +33,36 @@ <entityField> <name>GROUP_TYPE</name> </entityField> + <entityField> + <name>TITLE</name> + <valueProcess>%aditoprj%/entity/Favorite_entity/entityfields/title/valueProcess.js</valueProcess> + </entityField> + <entityConsumer> + <name>Offers</name> + <dependency> + <name>dependency</name> + <entityName>Offer_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>OfferOriginal_Id_param</name> + <valueProcess>%aditoprj%/entity/Favorite_entity/entityfields/offers/children/offeroriginal_id_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>CONSUMED_OFFER</name> + <consumer>Offers</consumer> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> + </entityField> + <entityField> + <name>TITLE_RELATION</name> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Favorite_entity/entityfields/object_type/displayValueProcess.js b/entity/Favorite_entity/entityfields/object_type/displayValueProcess.js new file mode 100644 index 0000000000..2658ccbeb3 --- /dev/null +++ b/entity/Favorite_entity/entityfields/object_type/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(translate.text(vars.get("$field.OBJECT_TYPE"))); \ No newline at end of file diff --git a/entity/Favorite_entity/entityfields/row_id/onValueChange.js b/entity/Favorite_entity/entityfields/row_id/onValueChange.js new file mode 100644 index 0000000000..d742908a8d --- /dev/null +++ b/entity/Favorite_entity/entityfields/row_id/onValueChange.js @@ -0,0 +1,88 @@ +import("system.logging"); +import("Communication_lib"); +import("Sql_lib"); +import("system.vars"); +import("system.neon"); +import("system.entities"); + +var rowid = vars.get("local.value"); +if (rowid) +{ + var titleFieldName; + var nameResult; + var relationResult; + + var config = entities.createConfigForLoadingRows(); + config.uid(vars.get("$field.ROW_ID")); + + if(vars.get("$field.OBJECT_TYPE") == "Person") + { + titleFieldNames = ["FULL_NAME_fieldGroup"]; + config.entity("Person_entity"); + config.fields(titleFieldNames) + nameResult = entities.getRow(config)[titleFieldNames[0]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Organisation") + { + titleFieldNames = ["NAME"]; + config.entity("Organisation_entity"); + config.fields(titleFieldNames); + nameResult = entities.getRow(config)[titleFieldNames[0]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Offer") + { + titleFieldNames = ["FullOfferCode"]; + config.entity("Offer_entity"); + config.fields(titleFieldNames); + nameResult = entities.getRow(config)[titleFieldNames[0]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Contract") + { + titleFieldNames = ["CONTRACTCODE"]; + config.entity("Contract_entity"); + config.fields(titleFieldNames); + nameResult = entities.getRow(config)[titleFieldNames[0]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Product") + { + titleFieldNames = ["PRODUCTCODE", "PRODUCTNAME"]; + config.entity("Contract_entity"); + config.fields(titleFieldNames); + nameResult = entities.getRow(config)[titleFieldNames[0]]; + relationResult = entities.getRow(config)[titleFieldNames[1]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Productprice") + { + titleFieldNames = ["PRICELIST", "CONTACT_ID"]; + config.entity("Productprice_entity"); + config.fields(titleFieldNames); + var row = entities.getRow(config); + nameResult = row[titleFieldNames[0]]; + + titleFieldNames = ["PERSON_TITLE"]; + config.entity("Contact_entity"); + config.uid(row[titleFieldNames[1]]); + config.fields(titleFieldNames); + relationResult = entities.getRow(config)[titleFieldNames[0]]; + } + + if(vars.get("$field.OBJECT_TYPE") == "Salesproject") + { + titleFieldNames = ["PRICELIST"]; + config.entity("Productprice_entity"); + config.fields(titleFieldNames); + nameResult = entities.getRow(config)[titleFieldNames[0]]; + } + + + + neon.setFieldValues({ + "$field.TITLE" : nameResult, + "$field.TITLE_RELATION" : relationResult != undefined && relationResult != null && relationResult != "" ? relationResult : "" + }); +} \ No newline at end of file diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index cbd7cb44ef..e9eee92243 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -10,6 +10,7 @@ <afterUiInit>%aditoprj%/entity/Organisation_entity/afterUiInit.js</afterUiInit> <afterOperatingState>%aditoprj%/entity/Organisation_entity/afterOperatingState.js</afterOperatingState> <initFilterProcess>%aditoprj%/entity/Organisation_entity/initFilterProcess.js</initFilterProcess> + <useFavorites v="true" /> <iconId>VAADIN:BUILDING</iconId> <imageProcess>%aditoprj%/entity/Organisation_entity/imageProcess.js</imageProcess> <titlePlural>Companies</titlePlural> diff --git a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod index bdc4d59246..c047206405 100644 --- a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod +++ b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod @@ -3,6 +3,7 @@ <name>FavoriteFilter_view</name> <title>FavoriteFilter_view</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> <layout> <groupLayout> <name>layout</name> @@ -11,22 +12,27 @@ <children> <tableViewTemplate> <name>FavoriteFilter</name> - <iconField></iconField> + <iconField>#IMAGE</iconField> <titleField>ROW_ID</titleField> <subtitleField>GROUP_TITLE</subtitleField> <descriptionField>OBJECT_TYPE</descriptionField> <entityField>#ENTITY</entityField> <linkedColumns /> <isCreatable v="false" /> + <isEditable v="false" /> <title>favoriteFilter_view</title> <columns> + <neonTableColumn> + <name>b235f917-4c59-4b8a-be07-ea5371f69f3b</name> + <entityField>OBJECT_TYPE</entityField> + </neonTableColumn> <neonTableColumn> <name>075e4e29-515c-4d9e-b195-f481af367b42</name> - <entityField>ROW_ID</entityField> + <entityField>TITLE</entityField> </neonTableColumn> <neonTableColumn> - <name>b235f917-4c59-4b8a-be07-ea5371f69f3b</name> - <entityField>OBJECT_TYPE</entityField> + <name>9cd27b17-be4d-4621-91d5-42f3d1e8ee7d</name> + <entityField>TITLE_RELATION</entityField> </neonTableColumn> <neonTableColumn> <name>929170b5-b460-4558-9aa6-f7657f49098c</name> @@ -34,5 +40,33 @@ </neonTableColumn> </columns> </tableViewTemplate> + <treeTableViewTemplate> + <name>FavoriteTreeTable</name> + <parentField>UID</parentField> + <nodeExpandedField>OBJECT_TYPE</nodeExpandedField> + <defaultGroupFields /> + <entityField>#ENTITY</entityField> + <linkedColumns> + <element>OBJECT_TYPE</element> + <element>GROUP_TITLE</element> + </linkedColumns> + <isCreatable v="false" /> + <isEditable v="false" /> + <informationField>TITLE</informationField> + <columns> + <neonTreeTableColumn> + <name>75cd966b-ee07-42bb-ac6b-b29d93cb4c51</name> + <entityField>TITLE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>e5a62307-2b26-4891-9a4b-55342f693e97</name> + <entityField>GROUP_TITLE</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>3302f6db-8bb4-4e48-b89b-273439e46a31</name> + <entityField>OBJECT_TYPE</entityField> + </neonTreeTableColumn> + </columns> + </treeTableViewTemplate> </children> </neonView> -- GitLab