Skip to content
Snippets Groups Projects
Commit aee97f2a authored by Martin Groppe's avatar Martin Groppe
Browse files

Merge branch '2000543_weblink_optimization' into '2021.2.0'

2000543 weblink optimization

See merge request xrm/basic!1298
parents cf0e3afb 0d7fd65a
No related branches found
No related tags found
No related merge requests found
Showing
with 111 additions and 21 deletions
......@@ -4,8 +4,10 @@
<title>Weblink</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/Weblink_entity/documentation.adoc</documentation>
<icon>NEON:FILTER</icon>
<contentTitleProcess>%aditoprj%/entity/Weblink_entity/contentTitleProcess.js</contentTitleProcess>
<iconId>NEON:FILTER</iconId>
<imageProcess>%aditoprj%/entity/Weblink_entity/imageProcess.js</imageProcess>
<titlePlural>Weblinks</titlePlural>
<recordContainer>db</recordContainer>
<entityFields>
......@@ -24,18 +26,23 @@
</entityField>
<entityField>
<name>DATE_NEW</name>
<contentType>DATE</contentType>
<valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/date_new/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>USER_NEW</name>
<title>Creator</title>
<valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/user_new/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>DATE_EDIT</name>
<title>Edited on</title>
<contentType>DATE</contentType>
<valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/date_edit/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>USER_EDIT</name>
<title>Editor</title>
<valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/user_edit/valueProcess.js</valueProcess>
</entityField>
<entityField>
......@@ -70,11 +77,6 @@
</entityParameter>
</children>
</entityConsumer>
<entityField>
<name>LINKTYPE_ICON</name>
<contentType>IMAGE</contentType>
<valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/linktype_icon/valueProcess.js</valueProcess>
</entityField>
<entityProvider>
<name>#PROVIDER_AGGREGATES</name>
<useAggregates v="true" />
......@@ -183,6 +185,25 @@
</entityParameter>
</children>
</entityConsumer>
<entityField>
<name>weblinkClickCount</name>
<title>Clicks</title>
<contentType>NUMBER</contentType>
</entityField>
<entityField>
<name>dateLastChange</name>
<title>Edited on</title>
<contentType>DATE</contentType>
</entityField>
<entityField>
<name>userLastChange</name>
<title>Editor</title>
</entityField>
<entityField>
<name>dateLastClick</name>
<title>Last Click</title>
<contentType>DATE</contentType>
</entityField>
</entityFields>
<recordContainers>
<dbRecordContainer>
......@@ -261,6 +282,25 @@
<name>LINKEVALUATIONTYPE.displayValue</name>
<expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>weblinkClickCount.value</name>
<expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/weblinkclickcount.value/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>dateLastChange.value</name>
<expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/datelastchange.value/expression.js</expression>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>userLastChange.value</name>
<expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/userlstchange.value/expression.js</expression>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>dateLastClick.value</name>
<expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/datelastclick.value/expression.js</expression>
<isFilterable v="true" />
</dbRecordFieldMapping>
</recordFieldMappings>
<linkInformation>
<linkInformation>
......
import("system.result");
import("system.vars");
var res = ""
if(vars.get("$field.LINKTYPE") == 1)//leadforensics
res = "NEON:IMPORT"
if(vars.get("$field.LINKTYPE")=="EMAIL")
res = "VAADIN:MAILBOX"
result.string(res);
\ No newline at end of file
import("system.vars");
import("system.result");
result.string("TEXT:" + vars.getString("$field.PLACEHOLDER"));
\ No newline at end of file
import("system.result");
import("system.db");
result.object({
"WEBLINK.URL": db.ASCENDING
});
\ No newline at end of file
import("system.result");
import("Sql_lib");
var ret = {};
ret[SqlMaskingUtils.prototype.isNull("WEBLINK.DATE_EDIT", "WEBLINK.DATE_NEW")] = db.DESCENDING;
result.object(ret);
\ No newline at end of file
import("system.result");
import("Sql_lib");
var cond = SqlMaskingUtils.prototype.isNull("WEBLINK.DATE_EDIT", "WEBLINK.DATE_NEW");
result.string(cond);
\ No newline at end of file
import("system.result");
import("Sql_lib");
var cond = newSelect(new SqlMaskingUtils().max("WEBLINK_CLICK.DATE_OPENED"))
.from("WEBLINK_CLICK")
.where("WEBLINK_CLICK.WEBLINK_ID=WEBLINK.WEBLINKID");
result.string(cond.toString());
import("system.result");
import("Sql_lib");
var cond = SqlMaskingUtils.prototype.isNull("WEBLINK.USER_EDIT", "WEBLINK.USER_NEW");
result.string(cond);
\ No newline at end of file
import("system.result");
import("Sql_lib");
var cond = new SqlBuilder().selectCount("WEBLINK_CLICK.WEBLINK_CLICKID")
.from("WEBLINK_CLICK")
.where("WEBLINK_CLICK.WEBLINK_ID=WEBLINK.WEBLINKID");
result.string(cond.toString())
\ No newline at end of file
......@@ -14,6 +14,10 @@
<hideContentSearch v="false" />
<entityField>#ENTITY</entityField>
<columns>
<neonTableColumn>
<name>c0b2e410-bf20-463f-9ffc-c25fc3bde0f1</name>
<entityField>#IMAGE</entityField>
</neonTableColumn>
<neonTableColumn>
<name>ece26f14-59f5-44ac-8d2c-2d032fa4a668</name>
<entityField>URL</entityField>
......@@ -30,6 +34,18 @@
<name>2307e8e1-233f-44b7-94a4-dd0f6ae9257e</name>
<entityField>Tags</entityField>
</neonTableColumn>
<neonTableColumn>
<name>956a9a25-b728-4bc2-9d44-5f9ebc8db18c</name>
<entityField>dateLastClick</entityField>
</neonTableColumn>
<neonTableColumn>
<name>01c6c788-2ea9-42f6-a9bb-c6cca1eda574</name>
<entityField>dateLastChange</entityField>
</neonTableColumn>
<neonTableColumn>
<name>582046d6-aaa3-436c-9456-bc1cfbe33948</name>
<entityField>userLastChange</entityField>
</neonTableColumn>
</columns>
</tableViewTemplate>
</children>
......
......@@ -6,12 +6,13 @@
<headerFooterLayout>
<name>layout</name>
<header>card</header>
<footer>ScoreCard</footer>
</headerFooterLayout>
</layout>
<children>
<cardViewTemplate>
<name>card</name>
<iconField>LINKTYPE_ICON</iconField>
<iconField>#IMAGE</iconField>
<titleField>URL</titleField>
<subtitleField>LINKTYPE</subtitleField>
<descriptionField>SCORE</descriptionField>
......@@ -42,5 +43,14 @@
</entityFieldLink>
</fields>
</genericViewTemplate>
<scoreCardViewTemplate>
<name>ScoreCard</name>
<fields>
<entityFieldLink>
<name>854845fb-fc77-4bba-b954-8d6db20a7404</name>
<entityField>weblinkClickCount</entityField>
</entityFieldLink>
</fields>
</scoreCardViewTemplate>
</children>
</neonView>
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