From d73e6b7f9fa49c9cd36867e4e030c83896ac6ceb Mon Sep 17 00:00:00 2001 From: "j.goderbauer" <j.goderbauer@adito.de> Date: Tue, 27 Nov 2018 13:15:06 +0100 Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1027750][JDito - libray Standard ist komplett definiert und wird in allen libs verwendet] refactor IndexSearch_lib --- .../indexsearchgroups/org/affectedIds.js | 15 +- .../indexsearchgroups/pers/affectedIds.js | 15 +- process/IndexSearch_lib/process.js | 129 ++++++++++-------- 3 files changed, 85 insertions(+), 74 deletions(-) diff --git a/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js index ae199b2018a..59126ad58df 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js @@ -2,12 +2,13 @@ import("system.db"); import("system.result"); import("system.vars"); import("IndexSearch_lib"); -var indexHelper, infoContainer, onUpdFn, tableName, res; +import("Sql_lib"); + +var infoContainer, onUpdFn, tableName, res; -indexHelper = new IndexsearchUtils(); tableName = vars.get("$local.table"); idValue = vars.get("$local.idvalue"); -infoContainer = indexHelper.createAffectedInfoContainer(idValue, null, vars.get("$local.action") +infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") ,function (){return vars.get("$local.columns")} ,function (){return vars.get("$local.oldvalues")} ,function (){return vars.get("$local.values")}); @@ -21,16 +22,16 @@ switch (tableName) res = db.array(db.COLUMN, "select RELATION.RELATIONID from RELATION where RELATION.PERS_ID is null and RELATION.ORG_ID = '" + idValue + "'"); break; case "ADDRESS": - res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ + res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, db.getColumnTypes("ADDRESS", ["ADDRESSID"])[0]] + [id, SqlUtils.getSingleColumnType("ADDRESS", ["ADDRESSID"])] ]]); }); break; case "COMM": - res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ + res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from COMM where COMMID = ?", [ - [id, db.getColumnTypes("COMM", ["COMMID"])[0]] + [id, SqlUtils.getSingleColumnType("COMM", ["COMMID"])] ]]); }); break; diff --git a/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js index a87cc105b49..80d3d357646 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js @@ -2,12 +2,13 @@ import("system.db"); import("system.result"); import("system.vars"); import("IndexSearch_lib"); -var indexHelper, infoContainer, onUpdFn, tableName, res; +import("Sql_lib"); + +var infoContainer, onUpdFn, tableName, res; -indexHelper = new IndexsearchUtils(); tableName = vars.get("$local.table"); idValue = vars.get("$local.idvalue"); -infoContainer = indexHelper.createAffectedInfoContainer(idValue, null, vars.get("$local.action") +infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") ,function (){return vars.get("$local.columns")} ,function (){return vars.get("$local.oldvalues")} ,function (){return vars.get("$local.values")}); @@ -24,16 +25,16 @@ switch (tableName) res = db.array(db.COLUMN, "select RELATION.RELATIONID from RELATION where RELATION.PERS_ID is not null and RELATION.ORG_ID = '" + idValue + "'"); break; case "ADDRESS": - res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ + res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, db.getColumnTypes("ADDRESS", ["ADDRESSID"])[0]] + [id, SqlUtils.getSingleColumnType("ADDRESS", ["ADDRESSID"])] ]]); }); break; case "COMM": - res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ + res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){ return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from COMM where COMMID = ?", [ - [id, db.getColumnTypes("COMM", ["COMMID"])[0]] + [id, SqlUtils.getSingleColumnType("COMM", ["COMMID"])] ]]); }); break; diff --git a/process/IndexSearch_lib/process.js b/process/IndexSearch_lib/process.js index 355f73d542a..87a8adbe541 100644 --- a/process/IndexSearch_lib/process.js +++ b/process/IndexSearch_lib/process.js @@ -1,61 +1,70 @@ -function IndexsearchUtils(){ - this.getAffectedIdValues = function(fieldname, affectedInfoContainer, updateFn){ - var affectedIds; - switch (affectedInfoContainer.action){ - case "I": - affectedIds = [affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]]; - break; - case "U": - affectedIds = updateFn.call(null, affectedInfoContainer.id); - break; - case "D": - affectedIds = [affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]]; - break; - } - return affectedIds || []; - } - - this.createAffectedInfoContainer = function(changedIdValue, changedTable, action, columnsFn, oldValueFn, newValueFn){ - var res, internalStorage; - internalStorage = {}; - res = { - id: changedIdValue - ,table: changedTable - ,action: action - ,columns: null //null for autocomplete in the ADITO-designer - ,oldValues: null - ,newValues: null - }; - Object.defineProperty(res, "columns", { - get: function(){ - if (internalStorage["columns"] == undefined) - internalStorage["columns"] = columnsFn.call(null); - return internalStorage["columns"]; - } - ,set: function (v){ - internalStorage["columns"] = v; - } - }); - Object.defineProperty(res, "oldValues", { - get: function(){ - if (internalStorage["oldValues"] == undefined) - internalStorage["oldValues"] = oldValueFn.call(null); - return internalStorage["oldValues"]; - } - ,set: function (v){ - internalStorage["oldValues"] = v; - } - }); - Object.defineProperty(res, "newValues", { - get: function(){ - if (internalStorage["newValues"] == undefined) - internalStorage["newValues"] = newValueFn.call(null); - return internalStorage["newValues"]; - } - ,set: function (v){ - internalStorage["newValues"] = v; - } - }); - return res; - } +/** +* provides static methods for special handling of entities in JDito-Processes +* do not create an instance of this +* @class +* @static +*/ +function IndexsearchUtils(){ +} + +//todo: comment +IndexsearchUtils.getAffectedIdValues = function(fieldname, affectedInfoContainer, updateFn) { + var affectedIds; + switch (affectedInfoContainer.action){ + case "I": + affectedIds = [affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]]; + break; + case "U": + affectedIds = updateFn.call(null, affectedInfoContainer.id); + break; + case "D": + affectedIds = [affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]]; + break; + } + return affectedIds || []; +} + +//todo: comment +IndexsearchUtils.createAffectedInfoContainer = function(changedIdValue, changedTable, action, columnsFn, oldValueFn, newValueFn) { + var res, internalStorage; + internalStorage = {}; + res = { + id: changedIdValue + ,table: changedTable + ,action: action + ,columns: null //null for autocomplete in the ADITO-designer + ,oldValues: null + ,newValues: null + }; + Object.defineProperty(res, "columns", { + get: function(){ + if (internalStorage["columns"] == undefined) + internalStorage["columns"] = columnsFn.call(null); + return internalStorage["columns"]; + } + ,set: function (v){ + internalStorage["columns"] = v; + } + }); + Object.defineProperty(res, "oldValues", { + get: function(){ + if (internalStorage["oldValues"] == undefined) + internalStorage["oldValues"] = oldValueFn.call(null); + return internalStorage["oldValues"]; + } + ,set: function (v){ + internalStorage["oldValues"] = v; + } + }); + Object.defineProperty(res, "newValues", { + get: function(){ + if (internalStorage["newValues"] == undefined) + internalStorage["newValues"] = newValueFn.call(null); + return internalStorage["newValues"]; + } + ,set: function (v){ + internalStorage["newValues"] = v; + } + }); + return res; } \ No newline at end of file -- GitLab