From a9b1421c2e29b9a485abf07d98e3387dee22dd5d Mon Sep 17 00:00:00 2001 From: Sebastian Listl <s.listl@adito.de> Date: Wed, 16 Dec 2020 16:36:35 +0100 Subject: [PATCH] ContextUtils.getContexts blacklist logic changed --- process/Context_lib/process.js | 48 ++++++++++++++++++++-------------- process/Util_lib/process.js | 2 +- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index 40e6e00d4c2..5d0a3a81c1d 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -269,28 +269,36 @@ ContextUtils.loadContent = function(pEntity, pUid, pFields, pExcludeIDs, pProvid */ ContextUtils.getContexts = function(pBlacklist, pInvertBlacklist) { - if (pInvertBlacklist == undefined) - pInvertBlacklist = false; - - - var contexts = project.getDataModels(project.DATAMODEL_KIND_CONTEXT); - var contextsStandardList = ["Organisation", "Person", "PrivatePerson", "Activity", "Salesproject", "Contract", "Offer", "Order", "Product", "Task", - "Campaign", "CampaignStep", "SupportTicket", "Leadimport"]; - - contexts = contexts.filter(function(pContext) { - if (contextsStandardList.indexOf(pContext[0]) > -1) - return true; - return false; - }); - - if (pBlacklist) + var whitelist; + if (pInvertBlacklist && pBlacklist) + whitelist = new Set(pBlacklist); + else { - contexts = contexts.filter(function(pContext) { - if (pBlacklist && pBlacklist.indexOf(pContext[0]) > -1 != pInvertBlacklist) - return false; - return true; - }); + whitelist = new Set() + .add("Organisation") + .add("Person") + .add("PrivatePerson") + .add("Activity") + .add("Salesproject") + .add("Contract") + .add("Offer") + .add("Order") + .add("Product") + .add("Task") + .add("Campaign") + .add("CampaignStep") + .add("SupportTicket") + .add("Leadimport"); + + if (pBlacklist) + pBlacklist.forEach(whitelist["delete"], whitelist); } + + var contexts = project.getDataModels(project.DATAMODEL_KIND_CONTEXT); + contexts = contexts.filter(function(context) + { + return whitelist.has(context[0]); + }); return contexts.map(ContextUtils._contextDataMapping).sort(function(pContext1, pContext2) { diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js index 00ddb82a71b..154076f048f 100644 --- a/process/Util_lib/process.js +++ b/process/Util_lib/process.js @@ -411,7 +411,7 @@ Utils.objectValues = function (pObject) */ Utils.buildFilterObj = function(pFilterObj, pFieldName, pOperator, pContentType, pValue, pKey, pParentOperator) { - + //TODO: maybe something like this should be inside the JditoFilter_lib, but more fluent if(pParentOperator && pParentOperator != "AND" && pParentOperator != "OR") throw new Error(translate.text("Illegal Parent Operator in buildFilterObj-Function: "+pParentOperator)); -- GitLab