diff --git a/entity/Favorite_entity/Favorite_entity.aod b/entity/Favorite_entity/Favorite_entity.aod index 73dce01c7e4211209cb9737193b8c94d5a41587c..30d6d10d52ca35fbe128fabe38c54d100f8f111f 100644 --- a/entity/Favorite_entity/Favorite_entity.aod +++ b/entity/Favorite_entity/Favorite_entity.aod @@ -2,7 +2,13 @@ <entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.14" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.14"> <name>Favorite_entity</name> <majorModelMode>DISTRIBUTED</majorModelMode> - <recordContainer>dbRecordContainer</recordContainer> + <icon>VAADIN:STAR</icon> + <title>Favorite</title> + <grantCreate v="true" /> + <grantUpdate v="true" /> + <grantDelete v="true" /> + <titlePlural>Favorites</titlePlural> + <recordContainer>jDitoRecordContainer</recordContainer> <entityFields> <entityProvider> <name>#PROVIDER</name> @@ -18,7 +24,6 @@ </entityField> <entityField> <name>ROW_ID</name> - <onValueChange>%aditoprj%/entity/Favorite_entity/entityfields/row_id/onValueChange.js</onValueChange> </entityField> <entityField> <name>OBJECT_TYPE</name> @@ -37,88 +42,50 @@ <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> + <name>PICTURE</name> + <title>favos</title> + <contentType>IMAGE</contentType> </entityField> </entityFields> <recordContainers> - <dbRecordContainer> - <name>dbRecordContainer</name> - <alias>_____SYSTEMALIAS</alias> - <isReadOnly v="true" /> - <hasDependentRecords v="true" /> - <fromClauseProcess>%aditoprj%/entity/Favorite_entity/recordcontainers/dbrecordcontainer/fromClauseProcess.js</fromClauseProcess> - <conditionProcess>%aditoprj%/entity/Favorite_entity/recordcontainers/dbrecordcontainer/conditionProcess.js</conditionProcess> - <orderClauseProcess>%aditoprj%/entity/Favorite_entity/recordcontainers/dbrecordcontainer/orderClauseProcess.js</orderClauseProcess> - <linkInformation> - <linkInformation> - <name>ad8d8f1b-d086-433f-80b7-116b99a983af</name> - <tableName>ASYS_RECORD</tableName> - <primaryKey>ID</primaryKey> - <isUIDTable v="true" /> - <readonly v="true" /> - </linkInformation> - <linkInformation> - <name>d4bb5cdf-dc73-4906-b4c4-40c963cbdbc1</name> - <tableName>ASYS_RECORDGROUP</tableName> - <primaryKey>ID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - </linkInformation> + <jDitoRecordContainer> + <name>jDitoRecordContainer</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <isFilterable v="true" /> + <isSortable v="true" /> + <contentProcess>%aditoprj%/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js</contentProcess> + <rowCountProcess>%aditoprj%/entity/Favorite_entity/recordcontainers/jditorecordcontainer/rowCountProcess.js</rowCountProcess> + <onDelete>%aditoprj%/entity/Favorite_entity/recordcontainers/jditorecordcontainer/onDelete.js</onDelete> <recordFieldMappings> - <dbRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>GROUP_ID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>GROUP_TITLE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>GROUP_TYPE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>OBJECT_TYPE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PICTURE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ROW_ID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>TITLE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> <name>UID.value</name> - <recordfield>ASYS_RECORD.ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> <name>USER_ID.value</name> - <recordfield>ASYS_RECORDGROUP.USER_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ROW_ID.value</name> - <recordfield>ASYS_RECORD.ROW_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>OBJECT_TYPE.value</name> - <recordfield>ASYS_RECORD.OBJECT_TYPE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>GROUP_TYPE.value</name> - <recordfield>ASYS_RECORDGROUP.GROUP_TYPE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>GROUP_TITLE.value</name> - <recordfield>ASYS_RECORDGROUP.TITLE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>GROUP_ID.value</name> - <recordfield>ASYS_RECORDGROUP.ID</recordfield> - </dbRecordFieldMapping> + </jDitoRecordFieldMapping> </recordFieldMappings> - </dbRecordContainer> + </jDitoRecordContainer> </recordContainers> </entity> diff --git a/entity/Favorite_entity/entityfields/row_id/onValueChange.js b/entity/Favorite_entity/entityfields/row_id/onValueChange.js deleted file mode 100644 index 4de49031452a0092d3e0c50046e48de18165a7dc..0000000000000000000000000000000000000000 --- a/entity/Favorite_entity/entityfields/row_id/onValueChange.js +++ /dev/null @@ -1,136 +0,0 @@ -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 = ["PROJECTCODE"]; - config.entity("Salesproject_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "SupportTicket") - { - titleFieldNames = ["TASK_SUBJECT"]; - config.entity("SupportTicket_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "Leadimport") - { - titleFieldNames = ["NAME"]; - config.entity("Leadimport_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "ExportTemplate") - { - titleFieldNames = ["TITLE"]; - config.entity("ExportTemplate_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "Employee") - { - titleFieldNames = ["TITLE"]; - config.entity("Employee_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "DocumentTemplate") - { - titleFieldNames = ["NAME"]; - config.entity("DocumentTemplate_entity"); - config.fields(titleFieldNames); - nameResult = entities.getRow(config)[titleFieldNames[0]]; - } - - if(vars.get("$field.OBJECT_TYPE") == "Campaign") - { - titleFieldNames = ["NAME"]; - config.entity("Campaign_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/Favorite_entity/recordcontainers/dbrecordcontainer/conditionProcess.js b/entity/Favorite_entity/recordcontainers/dbrecordcontainer/conditionProcess.js deleted file mode 100644 index 94f570ca54105be1b7183ae2618d92536573ffbd..0000000000000000000000000000000000000000 --- a/entity/Favorite_entity/recordcontainers/dbrecordcontainer/conditionProcess.js +++ /dev/null @@ -1,12 +0,0 @@ -import("Sql_lib"); -import("system.result"); -import("system.vars"); -import("system.util"); -import("system.tools"); - -var user = tools.getCurrentUser(); -var userid = user["name"]; - -var cond = newWhereIfSet("ASYS_RECORDGROUP.USER_ID", userid) - -result.string(cond.toString()); \ No newline at end of file diff --git a/entity/Favorite_entity/recordcontainers/dbrecordcontainer/fromClauseProcess.js b/entity/Favorite_entity/recordcontainers/dbrecordcontainer/fromClauseProcess.js deleted file mode 100644 index f89516ba427d966c0a6171af32d9adf48fde1f14..0000000000000000000000000000000000000000 --- a/entity/Favorite_entity/recordcontainers/dbrecordcontainer/fromClauseProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.string("ASYS_RECORD left join ASYS_RECORDGROUP on ASYS_RECORD.RECORDGROUP_ID = ASYS_RECORDGROUP.ID"); \ No newline at end of file diff --git a/entity/Favorite_entity/recordcontainers/dbrecordcontainer/orderClauseProcess.js b/entity/Favorite_entity/recordcontainers/dbrecordcontainer/orderClauseProcess.js deleted file mode 100644 index 638f4d14222915e485918dab175b033643a6cae7..0000000000000000000000000000000000000000 --- a/entity/Favorite_entity/recordcontainers/dbrecordcontainer/orderClauseProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.db"); - -result.object({ - "ASYS_RECORD.OBJECT_TYPE": db.DESCENDING, - "ASYS_RECORDGROUP.TITLE": db.DESCENDING - }); \ No newline at end of file diff --git a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a6ab741bed67275aa7af4647ced3a0b28a116261 --- /dev/null +++ b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/contentProcess.js @@ -0,0 +1,66 @@ +import("system.vars"); +import("Context_lib"); +import("system.result"); +import("system.favorite"); +import("system.tools"); +import("system.entities"); + +var loadConfig; + + +if(vars.get("$sys.selection") && vars.get("$sys.selection").length != 0) +{ + var selected = vars.get("$sys.selection"); + var selectedFavos = []; + + for(i = 0; i < selected.length; i++) + { + selectedFavos.push(buildFavorite(favorite.getFavoriteById(selected[i]))); + } + result.object(selectedFavos); +} +else +{ + var allFavorites = favorite.getAllFavorites(tools.getCurrentUser()["name"]); + var finishedFavoritesForDisplay = []; + + for(i = 0; i < allFavorites.length; i++) + { + var favo = allFavorites[i]; + finishedFavoritesForDisplay.push(buildFavorite(favo)); + } + + result.object(finishedFavoritesForDisplay); +} + +function buildFavorite(favo) +{ + loadConfig = entities.createConfigForLoadingRows(); + loadConfig.entity(ContextUtils.getEntity(favo["objecttype"])); + loadConfig.uid(favo["rowid"]); + loadConfig.fields(["#CONTENTTITLE", "#IMAGE"]); + var row = entities.getRow(loadConfig); + + var groupid = favo["group"]["groupid"]; + var grouptitle = favo["group"]["grouptitle"]; + var grouptype = favo["group"]["grouptype"]; + var objecttype = favo["objecttype"]; + var image = row["#IMAGE"]; + var rowid = favo["rowid"]; + var title = row["#CONTENTTITLE"]; + var id = favo["id"]; + var user = favo["group"]["groupuser"]; + + return [ + groupid, + grouptitle, + grouptype, + objecttype, + image, + rowid, + title, + id, + user + ]; +} + diff --git a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/onDelete.js b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/onDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..fc4c8d8f0b7757575883cd6dc57fc66a6520db1f --- /dev/null +++ b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/onDelete.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.favorite"); + +favorite.removeFavoriteById(vars.get("$local.uid")); \ No newline at end of file diff --git a/entity/Favorite_entity/recordcontainers/jditorecordcontainer/rowCountProcess.js b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/rowCountProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..cfea6a572865c0874b5a740a43379c5a48644109 --- /dev/null +++ b/entity/Favorite_entity/recordcontainers/jditorecordcontainer/rowCountProcess.js @@ -0,0 +1,5 @@ +import("system.tools"); +import("system.result"); +import("system.favorite"); + +result.string(favorite.getAllFavorites(tools.getCurrentUser()["name"]).length); \ No newline at end of file diff --git a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod index c0472064057f4e9bea5b32fab8d0ddd861773322..f24dbfa624536af565fbdf6fa98436b6688e1cee 100644 --- a/neonView/FavoriteFilter_view/FavoriteFilter_view.aod +++ b/neonView/FavoriteFilter_view/FavoriteFilter_view.aod @@ -3,7 +3,7 @@ <name>FavoriteFilter_view</name> <title>FavoriteFilter_view</title> <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="false" /> + <filterable v="true" /> <layout> <groupLayout> <name>layout</name> @@ -13,15 +13,23 @@ <tableViewTemplate> <name>FavoriteFilter</name> <iconField>#IMAGE</iconField> - <titleField>ROW_ID</titleField> - <subtitleField>GROUP_TITLE</subtitleField> - <descriptionField>OBJECT_TYPE</descriptionField> + <titleField>TITLE</titleField> <entityField>#ENTITY</entityField> - <linkedColumns /> + <linkedColumns> + <element>PICTURE</element> + <element>OBJECT_TYPE</element> + <element>TITLE</element> + <element>GROUP_TITLE</element> + </linkedColumns> + <fixedFilterFields /> <isCreatable v="false" /> <isEditable v="false" /> <title>favoriteFilter_view</title> <columns> + <neonTableColumn> + <name>a87e6491-7d8a-4009-9da8-c72348c22b4a</name> + <entityField>PICTURE</entityField> + </neonTableColumn> <neonTableColumn> <name>b235f917-4c59-4b8a-be07-ea5371f69f3b</name> <entityField>OBJECT_TYPE</entityField> @@ -30,43 +38,11 @@ <name>075e4e29-515c-4d9e-b195-f481af367b42</name> <entityField>TITLE</entityField> </neonTableColumn> - <neonTableColumn> - <name>9cd27b17-be4d-4621-91d5-42f3d1e8ee7d</name> - <entityField>TITLE_RELATION</entityField> - </neonTableColumn> <neonTableColumn> <name>929170b5-b460-4558-9aa6-f7657f49098c</name> <entityField>GROUP_TITLE</entityField> </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>