From a23de6032c7f6ef91b9347194ff50e1ed970e8eb Mon Sep 17 00:00:00 2001 From: Martin Groppe <m.groppe@adito.de> Date: Tue, 17 Aug 2021 11:09:58 +0000 Subject: [PATCH] M 1083068 default weblinks --- .../Data_alias/basic/2021.1.3/changelog.xml | 4 +- .../defaultWeblinks/alter_webLink.xml | 10 +++++ .../2021.1.3/defaultWeblinks/changelog.xml | 8 ++++ .../defaultWeblinks/insert_defaultLinks.xml | 40 +++++++++++++++++ .../insert_linkEvaluationTypeKeyword.xml | 43 +++++++++++++++++++ aliasDefinition/Data_alias/Data_alias.aod | 14 ++++++ entity/BulkMail_entity/BulkMail_entity.aod | 2 + .../WeblinkClick_entity.aod | 1 + entity/Weblink_entity/Weblink_entity.aod | 30 +++++++++++++ .../containername_param/valueProcess.js | 4 ++ .../linkevaluationtype/mandatoryProcess.js | 10 +++++ .../linkevaluationtype/stateProcess.js | 17 ++++++++ .../placeholder/mandatoryProcess.js | 10 +++++ .../entityfields/placeholder/onValidation.js | 7 +-- .../expression.js | 5 +++ .../WeblinkEdit_view/WeblinkEdit_view.aod | 4 ++ .../WeblinkPreview_view.aod | 4 ++ process/BulkmailAnalysis_lib/process.js | 7 +-- process/KeywordRegistry_basic/process.js | 5 +++ 19 files changed, 218 insertions(+), 7 deletions(-) create mode 100644 .liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml create mode 100644 .liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml create mode 100644 .liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml create mode 100644 .liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml create mode 100644 entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js create mode 100644 entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js create mode 100644 entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js create mode 100644 entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js create mode 100644 entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js diff --git a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml index 95973cf354..147d250c82 100644 --- a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml @@ -2,6 +2,8 @@ <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"> + + <include relativeToChangelogFile="true" file="defaultWeblinks/changelog.xml"/> <include relativeToChangelogFile="true" file="Checklist/changelog.xml"/> <include relativeToChangelogFile="true" file="alter_dataTypesToDateTime.xml"/> -</databaseChangeLog> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml new file mode 100644 index 0000000000..e65e6ece2e --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml @@ -0,0 +1,10 @@ +<?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="eda7428d-4adf-40c9-9395-f0fb6f5954cb"> + <addColumn tableName="WEBLINK"> + <column name="LINKEVALUATIONTYPE" type="VARCHAR(36)"/> + </addColumn> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml new file mode 100644 index 0000000000..44fb76e0ab --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml @@ -0,0 +1,8 @@ +<?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"> + <include relativeToChangelogFile="true" file="alter_webLink.xml"/> + <include relativeToChangelogFile="true" file="insert_linkEvaluationTypeKeyword.xml"/> + <include relativeToChangelogFile="true" file="insert_defaultLinks.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml new file mode 100644 index 0000000000..b34a130a76 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml @@ -0,0 +1,40 @@ +<?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="m.groppe" id="d29d909a-810e-4306-99da-a8e962d40dca"> + <insert tableName="weblink"> + <column name="WEBLINKID" value="dc0d1d5a-91e8-409f-9926-f5fc9bd17be5"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="pixel"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_IGNORE"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + <insert tableName="weblink"> + <column name="WEBLINKID" value="a54c1a08-779a-4a6f-8322-d7ceb77abf39"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="rejectEmail"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_UNSUBSCRIBE"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + <insert tableName="weblink"> + <column name="WEBLINKID" value="46d8ddcf-4287-499a-9524-ec08fce6a2f1"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="newsletter_confirmation"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_DEFAULT"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml new file mode 100644 index 0000000000..437be1c815 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml @@ -0,0 +1,43 @@ +<?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="m.groppe" id="199d9675-11d4-4bb3-9a1f-384dd53b6708"> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="NAME" value="LinkEvaluationType"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="404337d9-b7e9-47fd-9401-b859a8142696"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_DEFAULT"/> + <column name="TITLE" value="default"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="9143322a-30f1-44ac-b1bc-3190f5da9eef"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_UNSUBSCRIBE"/> + <column name="TITLE" value="unsubscribe"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="6f88dd99-ad20-4154-885c-cde4bcb68070"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_IGNORE"/> + <column name="TITLE" value="ignore"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 50495ae21d..152dc64c46 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -18333,6 +18333,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>LINKEVALUATIONTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod index 0d5114b36d..35cd4068f6 100644 --- a/entity/BulkMail_entity/BulkMail_entity.aod +++ b/entity/BulkMail_entity/BulkMail_entity.aod @@ -367,6 +367,7 @@ <entityField> <name>recipientCount</name> <title>Recipients</title> + <contentType>NUMBER</contentType> </entityField> <entityField> <name>deliveredMailCount</name> @@ -657,6 +658,7 @@ <dbRecordFieldMapping> <name>recipientCount.value</name> <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/recipientcount.value/expression.js</expression> + <isFilterable v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>bounceCount.value</name> diff --git a/entity/WeblinkClick_entity/WeblinkClick_entity.aod b/entity/WeblinkClick_entity/WeblinkClick_entity.aod index 0d3485450b..e8c1ad77c0 100644 --- a/entity/WeblinkClick_entity/WeblinkClick_entity.aod +++ b/entity/WeblinkClick_entity/WeblinkClick_entity.aod @@ -141,6 +141,7 @@ <dbRecordFieldMapping> <name>DATE_OPENED.value</name> <recordfield>WEBLINK_CLICK.DATE_OPENED</recordfield> + <isFilterable v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DEVICE_TYPE.value</name> diff --git a/entity/Weblink_entity/Weblink_entity.aod b/entity/Weblink_entity/Weblink_entity.aod index ca21ff58d1..44e7dec843 100644 --- a/entity/Weblink_entity/Weblink_entity.aod +++ b/entity/Weblink_entity/Weblink_entity.aod @@ -96,6 +96,7 @@ <entityField> <name>PLACEHOLDER</name> <title>Placeholder</title> + <mandatoryProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js</mandatoryProcess> <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/displayValueProcess.js</displayValueProcess> <onValidation>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/onValidation.js</onValidation> @@ -161,6 +162,27 @@ <title>Signal</title> <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/workflowsignal_name/stateProcess.js</stateProcess> </entityField> + <entityField> + <name>LINKEVALUATIONTYPE</name> + <title>Evaluation type</title> + <consumer>KeywordLinkEvaluationTypes</consumer> + <mandatoryProcess>%aditoprj%/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js</mandatoryProcess> + <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js</stateProcess> + </entityField> + <entityConsumer> + <name>KeywordLinkEvaluationTypes</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> @@ -231,6 +253,14 @@ <name>WORKFLOWSIGNAL_NAME.value</name> <recordfield>WEBLINK.WORKFLOWSIGNAL_NAME</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LINKEVALUATIONTYPE.value</name> + <recordfield>WEBLINK.LINKEVALUATIONTYPE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LINKEVALUATIONTYPE.displayValue</name> + <expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> diff --git a/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js b/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js new file mode 100644 index 0000000000..ea2a19798a --- /dev/null +++ b/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.linkEvaluationType()); \ No newline at end of file diff --git a/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js b/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js new file mode 100644 index 0000000000..95366a6d95 --- /dev/null +++ b/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js @@ -0,0 +1,10 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +result.string(linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect); diff --git a/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js b/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js new file mode 100644 index 0000000000..eb0cd9f7f6 --- /dev/null +++ b/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js @@ -0,0 +1,17 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +if (linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect) +{ + result.string(neon.COMPONENTSTATE_EDITABLE); +} +else +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js b/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js new file mode 100644 index 0000000000..95366a6d95 --- /dev/null +++ b/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js @@ -0,0 +1,10 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +result.string(linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect); diff --git a/entity/Weblink_entity/entityfields/placeholder/onValidation.js b/entity/Weblink_entity/entityfields/placeholder/onValidation.js index 8871cd1136..523e9437e0 100644 --- a/entity/Weblink_entity/entityfields/placeholder/onValidation.js +++ b/entity/Weblink_entity/entityfields/placeholder/onValidation.js @@ -10,11 +10,12 @@ if (vars.get("$local.value")) .from("WEBLINK") .where("WEBLINK.WEBLINKID", vars.get("$field.WEBLINKID"), SqlBuilder.NOT_EQUAL()) .and("WEBLINK.PLACEHOLDER is not null") - .arrayColumn(); + .arrayColumn() + .map(function (placeholder){return placeholder.toUpperCase()}); - var defaultPlaceholderNames = defaultPlaceholders.map(function(placeholder){return placeholder.placeholderName}); + var defaultPlaceholderNames = defaultPlaceholders.map(function(placeholder){return placeholder.placeholderName.toUpperCase()}); - if(defaultPlaceholderNames.includes(vars.get("$local.value")) || linkPlaceholders.includes(vars.get("$local.value"))) + if(defaultPlaceholderNames.includes(vars.get("$local.value").toUpperCase()) || linkPlaceholders.includes(vars.get("$local.value").toUpperCase())) { result.string("Placeholders must be unique") } diff --git a/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js b/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js new file mode 100644 index 0000000000..0c0f8d3adc --- /dev/null +++ b/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.linkEvaluationType(), "WEBLINK.LINKEVALUATIONTYPE")); \ No newline at end of file diff --git a/neonView/WeblinkEdit_view/WeblinkEdit_view.aod b/neonView/WeblinkEdit_view/WeblinkEdit_view.aod index 5c1ae63aad..0591c32d56 100644 --- a/neonView/WeblinkEdit_view/WeblinkEdit_view.aod +++ b/neonView/WeblinkEdit_view/WeblinkEdit_view.aod @@ -47,6 +47,10 @@ <name>8a33e22d-c607-4a56-8384-668cc225225d</name> <entityField>WORKFLOWSIGNAL_NAME</entityField> </entityFieldLink> + <entityFieldLink> + <name>57d8f3b6-2c98-404f-97a6-efcb89828346</name> + <entityField>LINKEVALUATIONTYPE</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <neonViewReference> diff --git a/neonView/WeblinkPreview_view/WeblinkPreview_view.aod b/neonView/WeblinkPreview_view/WeblinkPreview_view.aod index 3feb2f988f..e3b35722ae 100644 --- a/neonView/WeblinkPreview_view/WeblinkPreview_view.aod +++ b/neonView/WeblinkPreview_view/WeblinkPreview_view.aod @@ -36,6 +36,10 @@ <name>a807f6b9-252c-4545-a2c9-266c64012097</name> <entityField>WORKFLOWPROCESSDEFINITION_KEY</entityField> </entityFieldLink> + <entityFieldLink> + <name>a78a1f2d-4c1f-44cf-b8b8-c5b32ea2a8b9</name> + <entityField>LINKEVALUATIONTYPE</entityField> + </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/process/BulkmailAnalysis_lib/process.js b/process/BulkmailAnalysis_lib/process.js index c6ab18a3a1..0831ae1ed2 100644 --- a/process/BulkmailAnalysis_lib/process.js +++ b/process/BulkmailAnalysis_lib/process.js @@ -78,8 +78,8 @@ BulkMailAnalysisSql.prototype.buildSelect = function() .and("WEBLINK_CLICK.WEBLINK_ID" ,newSelect("WEBLINK.WEBLINKID") .from("WEBLINK") - .where("WEBLINK.PLACEHOLDER","pixel") - ,SqlBuilder.NOT_EQUAL()) + .where("WEBLINK.LINKEVALUATIONTYPE",[$KeywordRegistry.linkEvaluationType$default(),$KeywordRegistry.linkEvaluationType$unsubscribe()],SqlBuilder.IN()) + ,SqlBuilder.IN()) ) .leftJoin("MAIL_BOUNCE","MAIL_BOUNCE.MAIL_LOG_ID = MAIL_LOG.MAIL_LOGID") .where("MAIL_RUN.OBJECT_TYPE","bulkmail"); @@ -123,5 +123,6 @@ BulkMailAnalysisSql.countSelects = HARDBOUNCECOUNT:"count (distinct case when MAIL_BOUNCE.CATEGORY ='"+$KeywordRegistry.emailFilterType$bounceHard()+"' then MAIL_BOUNCE.MAIL_LOG_ID else null end)", SENDCOUNT:"count (distinct MAIL_LOG.MAIL_LOGID)", RECEIVEDCOUNT:"count (distinct case when MAIL_LOG.STATUS='"+$KeywordRegistry.bulkMailRecipientStatus$sent()+"' then MAIL_LOG.MAIL_LOGID else null end)", - UNSUBSCRIBECOUNT:"count (distinct case when WEBLINK_CLICK.WEBLINK_ID = '"+newSelect(["WEBLINK.WEBLINKID"]).from("WEBLINK").where("WEBLINK.PLACEHOLDER","rejectEmail").cell()+"' then WEBLINK_CLICK.MAIL_LOG_ID else null end)" + //Subsql gets executed because mssql doesnt allow subselects in the count. + UNSUBSCRIBECOUNT:"count (distinct case when WEBLINK_CLICK.WEBLINK_ID in ('"+newSelect(["WEBLINK.WEBLINKID"]).from("WEBLINK").where("WEBLINK.LINKEVALUATIONTYPE",$KeywordRegistry.linkEvaluationType$unsubscribe()).arrayColumn().join("','")+"') then WEBLINK_CLICK.MAIL_LOG_ID else null end)" } \ No newline at end of file diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index 95b3015437..2ce2fca15f 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -441,3 +441,8 @@ $KeywordRegistry.visitFrequency$semiannualy = function(){return "VISITFREQUENCYS $KeywordRegistry.visitFrequency$quarterly = function(){return "VISITFREQUENCYQUARTERLY";}; $KeywordRegistry.visitFrequency$monthly = function(){return "VISITFREQUENCYMONTHLY";}; $KeywordRegistry.visitFrequency$weekly = function(){return "VISITFREQUENCYWEEKLY";}; + +$KeywordRegistry.linkEvaluationType = function(){return "LinkEvaluationType";}; +$KeywordRegistry.linkEvaluationType$default = function(){return "LINKEVALUATION_DEFAULT";}; +$KeywordRegistry.linkEvaluationType$ignore = function(){return "LINKEVALUATION_IGNORE";}; +$KeywordRegistry.linkEvaluationType$unsubscribe = function(){return "LINKEVALUATION_UNSUBSCRIBE";}; \ No newline at end of file -- GitLab