From 5a3349bac7106d7f0e9535006681adc1210f2671 Mon Sep 17 00:00:00 2001 From: "a.schindlbeck" <a.schindlbeck@adito.de> Date: Tue, 29 Sep 2020 15:03:48 +0200 Subject: [PATCH] #1063997 Favorites: Filter Product/Price by Favorites + Refactor --- .../favorite_filter/filterValuesProcess.js | 2 +- .../favorite_filter/filterValuesProcess.js | 2 +- .../favoriten_filter/filterValuesProcess.js | 2 +- .../favorits_filter/filterValuesProcess.js | 2 +- entity/Product_entity/Product_entity.aod | 9 +++++++++ .../favorite_filter/filterConditionProcess.js | 11 +++++++++++ .../favorite_filter/filterValuesProcess.js | 5 +++++ .../Productprice_entity/Productprice_entity.aod | 16 +++++++++++++++- .../productprice_objecttype/valueProcess.js | 3 +++ .../favoritefilter/filterConditionProcess.js | 11 +++++++++++ .../favoritefilter/filterValuesProcess.js | 4 ++++ .../ProductpricePreview_view.aod | 6 ++++++ process/Favorites_lib/process.js | 2 +- 13 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js create mode 100644 entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js create mode 100644 entity/Productprice_entity/entityfields/productprice_objecttype/valueProcess.js create mode 100644 entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js create mode 100644 entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterValuesProcess.js diff --git a/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js b/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js index 59afaeee93..371a5b567d 100644 --- a/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js +++ b/entity/Offer_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js @@ -1,5 +1,5 @@ import("system.result"); import("Favorites_lib"); -result.object(FavoritesUtil.getUserNotificationGroups()); +result.object(FavoritesUtil.getUserFavoriteGroups()); diff --git a/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js b/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js index 59afaeee93..371a5b567d 100644 --- a/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js +++ b/entity/Order_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js @@ -1,5 +1,5 @@ import("system.result"); import("Favorites_lib"); -result.object(FavoritesUtil.getUserNotificationGroups()); +result.object(FavoritesUtil.getUserFavoriteGroups()); diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/favoriten_filter/filterValuesProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/favoriten_filter/filterValuesProcess.js index 59afaeee93..371a5b567d 100644 --- a/entity/Organisation_entity/recordcontainers/db/filterextensions/favoriten_filter/filterValuesProcess.js +++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/favoriten_filter/filterValuesProcess.js @@ -1,5 +1,5 @@ import("system.result"); import("Favorites_lib"); -result.object(FavoritesUtil.getUserNotificationGroups()); +result.object(FavoritesUtil.getUserFavoriteGroups()); diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/favorits_filter/filterValuesProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/favorits_filter/filterValuesProcess.js index abda1bae0c..0ebab765b8 100644 --- a/entity/Person_entity/recordcontainers/db/filterextensions/favorits_filter/filterValuesProcess.js +++ b/entity/Person_entity/recordcontainers/db/filterextensions/favorits_filter/filterValuesProcess.js @@ -1,4 +1,4 @@ import("system.result"); import("Favorites_lib"); -result.object(FavoritesUtil.getUserNotificationGroups()); \ No newline at end of file +result.object(FavoritesUtil.getUserFavoriteGroups()); \ No newline at end of file diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod index 01c9b42d47..5fbf1ca2f5 100644 --- a/entity/Product_entity/Product_entity.aod +++ b/entity/Product_entity/Product_entity.aod @@ -614,6 +614,15 @@ <filterConditionProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess> <filtertype>BASIC</filtertype> </filterExtensionSet> + <filterExtension> + <name>Favorite_filter</name> + <title>Favoritegroup</title> + <contentType>TEXT</contentType> + <filterValuesProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js</filterConditionProcess> + <groupedRecordField></groupedRecordField> + <filtertype>BASIC</filtertype> + </filterExtension> </filterExtensions> </dbRecordContainer> <indexRecordContainer> diff --git a/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js new file mode 100644 index 0000000000..2db1e9e36c --- /dev/null +++ b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js @@ -0,0 +1,11 @@ +import("Favorites_lib"); +import("system.result"); +import("Sql_lib"); + +var favoFilterCond = newWhere(); +var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup(); + +for(i = 0; i < rowIds.length; i++) + favoFilterCond.or("PRODUCT.PRODUCTID", rowIds[i], SqlBuilder.EQUAL()); + +result.string(favoFilterCond.toString()); \ No newline at end of file diff --git a/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js new file mode 100644 index 0000000000..371a5b567d --- /dev/null +++ b/entity/Product_entity/recordcontainers/db/filterextensions/favorite_filter/filterValuesProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Favorites_lib"); + +result.object(FavoritesUtil.getUserFavoriteGroups()); + diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod index 88bf091386..61bf5454ab 100644 --- a/entity/Productprice_entity/Productprice_entity.aod +++ b/entity/Productprice_entity/Productprice_entity.aod @@ -9,7 +9,7 @@ <element>Product_entity</element> </siblings> <onValidation>%aditoprj%/entity/Productprice_entity/onValidation.js</onValidation> - <useFavorites v="false" /> + <useFavorites v="true" /> <titlePlural>Prices</titlePlural> <recordContainer>db</recordContainer> <entityFields> @@ -234,6 +234,10 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityField> + <name>PRODUCTPRICE_OBJECTTYPE</name> + <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/productprice_objecttype/valueProcess.js</valueProcess> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> @@ -329,6 +333,16 @@ <expression>%aditoprj%/entity/Productprice_entity/recordcontainers/db/recordfieldmappings/fromquantity.displayvalue/expression.js</expression> </dbRecordFieldMapping> </recordFieldMappings> + <filterExtensions> + <filterExtension> + <name>FavoriteFilter</name> + <title>Favoritegroup</title> + <contentType>TEXT</contentType> + <filterValuesProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js</filterConditionProcess> + <filtertype>BASIC</filtertype> + </filterExtension> + </filterExtensions> </dbRecordContainer> </recordContainers> </entity> diff --git a/entity/Productprice_entity/entityfields/productprice_objecttype/valueProcess.js b/entity/Productprice_entity/entityfields/productprice_objecttype/valueProcess.js new file mode 100644 index 0000000000..4296d2e68b --- /dev/null +++ b/entity/Productprice_entity/entityfields/productprice_objecttype/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("Productprice"); \ No newline at end of file diff --git a/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js new file mode 100644 index 0000000000..c657ebe1ac --- /dev/null +++ b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterConditionProcess.js @@ -0,0 +1,11 @@ +import("Favorites_lib"); +import("system.result"); +import("Sql_lib"); + +var favoFilterCond = newWhere(); +var rowIds = FavoritesUtil.getRowIdsOfFavoriteGroup(); + +for(i = 0; i < rowIds.length; i++) + favoFilterCond.or("PRODUCTPRICE.PRODUCTPRICEID", rowIds[i], SqlBuilder.EQUAL()); + +result.string(favoFilterCond.toString()); \ No newline at end of file diff --git a/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterValuesProcess.js b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterValuesProcess.js new file mode 100644 index 0000000000..0ebab765b8 --- /dev/null +++ b/entity/Productprice_entity/recordcontainers/db/filterextensions/favoritefilter/filterValuesProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Favorites_lib"); + +result.object(FavoritesUtil.getUserFavoriteGroups()); \ No newline at end of file diff --git a/neonView/ProductpricePreview_view/ProductpricePreview_view.aod b/neonView/ProductpricePreview_view/ProductpricePreview_view.aod index bf1fad13d5..bb51611211 100644 --- a/neonView/ProductpricePreview_view/ProductpricePreview_view.aod +++ b/neonView/ProductpricePreview_view/ProductpricePreview_view.aod @@ -16,6 +16,12 @@ <subtitleField>PRODUCT_ID</subtitleField> <entityField>#ENTITY</entityField> </cardViewTemplate> + <favoriteViewTemplate> + <name>Favorites</name> + <objectType>PRODUCTPRICE_OBJECTTYPE</objectType> + <rowId>PRODUCTPRICEID</rowId> + <entityField>#ENTITY</entityField> + </favoriteViewTemplate> <genericViewTemplate> <name>PriceInfo</name> <showDrawer v="true" /> diff --git a/process/Favorites_lib/process.js b/process/Favorites_lib/process.js index 7d1efcc674..04ae6f9b9e 100644 --- a/process/Favorites_lib/process.js +++ b/process/Favorites_lib/process.js @@ -7,7 +7,7 @@ import("Sql_lib"); function FavoritesUtil(){} -FavoritesUtil.getUserNotificationGroups = function() +FavoritesUtil.getUserFavoriteGroups = function() { var allTypes = []; var alias = favorite.getFavoritesAlias(); -- GitLab