Skip to content
Snippets Groups Projects
Commit c71e54e9 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

Merge branch 'm_1083068_default_weblinks' into '2021.1'

M 1083068 default weblinks

See merge request xrm/basic!1202
parents a8261a8c a23de603
No related branches found
No related tags found
No related merge requests found
Showing
with 218 additions and 7 deletions
......@@ -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
<?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
<?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
<?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
<?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
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
import("system.result");
import("KeywordRegistry_basic");
result.string($KeywordRegistry.linkEvaluationType());
\ No newline at end of file
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);
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
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);
......@@ -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")
}
......
import("system.result");
import("Keyword_lib");
import("KeywordRegistry_basic");
result.string(KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.linkEvaluationType(), "WEBLINK.LINKEVALUATIONTYPE"));
\ No newline at end of file
......@@ -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>
......
......@@ -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>
......
......@@ -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
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment