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

1081225 caching fix for keyword whitelist and blacklist

parent 9740eade
No related branches found
No related tags found
No related merge requests found
Showing
with 55 additions and 28 deletions
......@@ -2,8 +2,7 @@ import("system.result");
import("Keyword_lib");
import("system.text");
import("Loghistory_lib");
import("KeywordRegistry_basic")
import("KeywordData_lib")
import("KeywordRegistry_basic");
var params = Translate4LogParams.load();
var res = "";
......@@ -13,7 +12,7 @@ if (reasons)
reasons = text.decodeMS(reasons);
if (reasons.length)
{
var keywordMap = KeywordData.getKeyIdMap($KeywordRegistry.salesprojectWonLost(), params.locale);
var keywordMap = KeywordUtils.getEntryObject($KeywordRegistry.salesprojectWonLost(), params.locale);
//translate and join all keyIds to titles, if not found the value is discarded
res = reasons.reduce(function (accumulator, currentVal){
if (keywordMap[currentVal])
......
......@@ -45,7 +45,7 @@ function _get360Data(pContactId, pContextList)
{
var group = context
if(pContextList[context].hasOwnProperty("setGroupBy") && pContextList[context].hasOwnProperty("groupByKeyword"))
var groupKeyword = Utils.objectFromMap(new Map(KeywordUtils.getEntryNamesAndIdsByContainer(pContextList[context]["groupByKeyword"])));
var groupKeyword = Utils.objectFromMap(new Map(KeywordUtils.getEntryArray(pContextList[context]["groupByKeyword"])));
var res = ContextUtils.getContextDataViaReadEntity(context, pContextList[context], filter, pContactId);
if(res.length > 0)
......
import("system.translate");
import("Keyword_lib");
import("KeywordData_lib");
import("Sql_lib");
import("system.result");
import("system.vars");
......
import("system.translate");
import("Keyword_lib");
import("KeywordData_lib");
import("Sql_lib");
import("system.result");
import("system.vars");
......
import("Keyword_lib");
import("KeywordData_lib");
import("Sql_lib");
import("system.result");
import("system.vars");
......
......@@ -2,7 +2,7 @@ import("system.result");
import("KeywordRegistry_basic");
import("Keyword_lib");
let keywords = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.dsgvoReason());
let keywords = KeywordUtils.getEntryArray($KeywordRegistry.dsgvoReason());
keywords.shift();
......
......@@ -202,6 +202,10 @@
<state>READONLY</state>
<valueProcess>%aditoprj%/entity/KeywordEntry_entity/entityfields/keyid_alwaysreadonly/valueProcess.js</valueProcess>
</entityField>
<entityParameter>
<name>Locale_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<dbRecordContainer>
......
......@@ -3,4 +3,5 @@ import("system.translate");
import("system.vars");
var title = vars.get("$field.TITLE");
result.string(translate.text(title));
var locale = vars.get("$param.Locale_param");
result.string(locale ? translate.text(title, locale) : translate.text(title));
import("CachedRecordContainer_lib");
import("system.result")
var res = CachedRecordContainerUtils.getCommonKey("$param.ContainerName_param", "$param.BlacklistIds_param", "$param.OnlyActives_param"
, "$param.WhitelistIds_param");
var res = CachedRecordContainerUtils.getCommonKey(
"$param.ContainerName_param",
"$param.BlacklistIds_param",
"$param.OnlyActives_param",
"$param.WhitelistIds_param",
"$param.Locale_param"
);
result.string(res);
......@@ -19,7 +19,7 @@ if (category)
}
if (vars.get("$param.OnlyActives_param") == "true")
if (Utils.toBoolean(vars.get("$param.OnlyActives_param")))
{
cond.and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
}
......
import("CachedRecordContainer_lib");
import("system.result")
var res = CachedRecordContainerUtils.getCommonKey("$param.ContainerName_param","$param.OnlyActives_param");
var res = CachedRecordContainerUtils.getCommonKey(
"$param.ContainerName_param",
"$param.BlacklistIds_param",
"$param.OnlyActives_param",
"$param.WhitelistIds_param",
"$param.Locale_param"
);
result.string(res);
import("Util_lib");
import("system.db");
import("system.result");
import("system.translate");
......@@ -39,7 +40,7 @@ if (blacklist && blacklist.length > 0)
keywordStatement.and("AB_KEYWORD_ENTRY.KEYID", blacklist, SqlBuilder.NOT_IN());
}
if (vars.get("$param.OnlyActives_param") == "true")
if (Utils.toBoolean(vars.get("$param.OnlyActives_param")))
{
keywordStatement.and("AB_KEYWORD_ENTRY.ISACTIVE", "1");
}
......@@ -77,15 +78,27 @@ if(vars.exists("$param.ContainerName_param"))
resultSet = keywordStatement
.and("AB_KEYWORD_CATEGORY.NAME", containerParam)
.orderBy(sortingField + " " + sortingDirection)
.table()
;
.table();
// If sorting is set to translated title (="2"), it must be done separately after DB query because translation can't be done in a query
if(isSortingByTranslatedTitle)
if (isSortingByTranslatedTitle)
{
resultSet.sort(function(pFirst, pSecond) {
var titleA = translate.text(pFirst[CATEGORY_RESULT_INDEX_NAME]).toUpperCase();
var titleB = translate.text(pSecond[CATEGORY_RESULT_INDEX_NAME]).toUpperCase();
var locale = vars.get("$param.Locale_param");
resultSet.sort(function(pFirst, pSecond)
{
var titleA = pFirst[CATEGORY_RESULT_INDEX_NAME];
var titleB = pSecond[CATEGORY_RESULT_INDEX_NAME];
if (locale)
{
titleA = translate.text(titleA, locale).toUpperCase();
titleB = translate.text(titleB, locale).toUpperCase();
}
else
{
titleA = translate.text(titleA).toUpperCase();
titleB = translate.text(titleB).toUpperCase();
}
if (titleA < titleB) {
return isSortingAsc ? -1 : 1;
......@@ -103,4 +116,4 @@ else
resultSet = keywordStatement.orderBy("AB_KEYWORD_ENTRY.SORTING asc").table();
}
result.object(resultSet);
result.object(resultSet);
\ No newline at end of file
......@@ -4,7 +4,7 @@ import("KeywordRegistry_basic");
import("Keyword_lib");
var dupStatus = vars.getString("$field.LEADDUP_STATUS");
var values = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.dupStatus());
var values = KeywordUtils.getEntryArray($KeywordRegistry.dupStatus());
for (let i = 0; i < values.length; i++)
{
......
......@@ -156,6 +156,8 @@
<name>DocumentTemplates</name>
<dependency>
<name>dependency</name>
<entityName>DocumentTemplate_entity</entityName>
<fieldName>#PROVIDER</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
......
......@@ -3,7 +3,7 @@ import("system.result");
import("KeywordRegistry_basic");
import("Keyword_lib");
var mediums = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.communicationMediumCampaign(), null, true);
var mediums = KeywordUtils.getEntryArray($KeywordRegistry.communicationMediumCampaign(), null, true);
var filterFields = [];
mediums.forEach(function ([mediumId, mediumTitle])
{
......
......@@ -3,7 +3,7 @@ import("system.result");
import("KeywordRegistry_basic");
import("Keyword_lib");
var mediums = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.communicationMediumCampaign(), null, true);
var mediums = KeywordUtils.getEntryArray($KeywordRegistry.communicationMediumCampaign(), null, true);
var filterFields = [];
mediums.forEach(function ([mediumId, mediumTitle])
{
......
......@@ -4,7 +4,7 @@ import("KeywordRegistry_basic");
import("Keyword_lib");
import("Sql_lib");
var salesprojectPhases = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase());
var salesprojectPhases = KeywordUtils.getEntryArray($KeywordRegistry.salesprojectPhase());
var dropDownEntries = [];
var counter = 0;
......
......@@ -10,7 +10,7 @@ import("Util_lib");
var res = [];
var ids = vars.get("$local.idvalues");
var disabledPhases = JSON.parse(vars.get("$param.DisabledPhases_param")) || [];
var steps = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase(), null, true);
var steps = KeywordUtils.getEntryArray($KeywordRegistry.salesprojectPhase(), null, true);
var selected = vars.exists("$param.CurrentPhase_param") && vars.get("$param.CurrentPhase_param");
// filter only for steps reqested by the system
......
......@@ -5,7 +5,7 @@ import("system.vars");
import("Util_lib");
var currentPhase = vars.get("$field.PHASE");
var allPhasesInOrder = KeywordUtils.getEntryNamesAndIdsByContainer($KeywordRegistry.salesprojectPhase()).map(function (row){
var allPhasesInOrder = KeywordUtils.getEntryArray($KeywordRegistry.salesprojectPhase()).map(function (row){
return row[0];
});
......
......@@ -2,4 +2,4 @@ import("system.result");
import("Keyword_lib");
import("KeywordRegistry_basic");
result.object(KeywordUtils.getEntryNamesAndIdsByContainer("SalesprojectWonLost"));
\ No newline at end of file
result.object(KeywordUtils.getEntryArray($KeywordRegistry.salesprojectWonLost()));
\ 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