From c400e79059fc0a5d749105b7b981504080e076b2 Mon Sep 17 00:00:00 2001 From: "s.pongratz" <s.pongratz@adito.de> Date: Wed, 23 Jun 2021 11:28:49 +0200 Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1082902][[Beobachtungen] verschiedene Bugfixes] --- .../entityfields/object_field/valueProcess.js | 4 ++- .../object_filter/valueProcess.js | 8 +++--- process/Observation_lib/process.js | 25 +++++++++++-------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/entity/Observation_entity/entityfields/object_field/valueProcess.js b/entity/Observation_entity/entityfields/object_field/valueProcess.js index 99147fd1e3f..ba84c95e57d 100644 --- a/entity/Observation_entity/entityfields/object_field/valueProcess.js +++ b/entity/Observation_entity/entityfields/object_field/valueProcess.js @@ -4,4 +4,6 @@ import("system.result"); import("system.neon"); if (!vars.get("$this.value") && vars.get("$field.OBJECT_TYPE") && (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT)) - result.string(Observation.getAllFieldValue(vars.get("$field.OBJECT_TYPE"))); \ No newline at end of file +{ + result.string(Observation.getAllFieldValue(vars.get("$field.OBJECT_TYPE"))); +} diff --git a/entity/Observation_entity/entityfields/object_filter/valueProcess.js b/entity/Observation_entity/entityfields/object_filter/valueProcess.js index 4d4ffd95197..df026f7192e 100644 --- a/entity/Observation_entity/entityfields/object_filter/valueProcess.js +++ b/entity/Observation_entity/entityfields/object_filter/valueProcess.js @@ -3,16 +3,16 @@ import("Context_lib"); import("system.vars"); import("system.result"); -let isFilterParamExists = vars.exists("$param.ObjectFilter_param") && vars.get("$param.ObjectFilter_param"); +let filterParam = vars.get("$param.ObjectFilter_param"); let resFilter; -if ((vars.get("$this.value") == null || vars.get("$this.value") == "") && vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID") && !isFilterParamExists) +if ((vars.get("$this.value") == null || vars.get("$this.value") == "") && vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID") && !filterParam) { resFilter = Observation.getContextFilter(vars.get("$field.OBJECT_TYPE"), null); } -else if (!vars.get("$this.value") && isFilterParamExists) +else if (!vars.get("$this.value") && filterParam) { - resFilter = vars.get("$param.ObjectFilter_param"); + resFilter = filterParam; } if (resFilter) diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js index 51e6bfcf7eb..469abca0373 100644 --- a/process/Observation_lib/process.js +++ b/process/Observation_lib/process.js @@ -192,7 +192,7 @@ Observation.prototype.checkFilterAndPermissions = function (pUserTitle, pFilterO // check if the observation has been alredy checkt if (this.storedFilterResults[storedIndex]) { - return this.storedFilterResults[storedIndex]; + return JSON.parse(this.storedFilterResults[storedIndex]); } try @@ -224,7 +224,7 @@ Observation.prototype.checkFilterAndPermissions = function (pUserTitle, pFilterO filterResult = null; } - this.storedFilterResults[storedIndex] = filterResult; + this.storedFilterResults[storedIndex] = JSON.stringify(filterResult); return filterResult } @@ -241,7 +241,7 @@ Observation.prototype.parseAndFilterObjectFields = function (pObjectFields, pUse if (this.storedObservedFields[storedIndex]) { - return this.storedObservedFields[storedIndex] + return JSON.parse(this.storedObservedFields[storedIndex]); } let observeFields = {}; @@ -260,7 +260,7 @@ Observation.prototype.parseAndFilterObjectFields = function (pObjectFields, pUse } }, this); - this.storedObservedFields[storedIndex] = observeFields; + this.storedObservedFields[storedIndex] = JSON.stringify(observeFields); return observeFields; } @@ -285,7 +285,7 @@ Observation.prototype._checkDependencies = function (pObserver, pDependentContex var dependentCheckVars = {} dependentCheckVars[WorkflowVariables.TRIGGER()] = this.callerVariables[WorkflowVariables.TRIGGER()]; dependentCheckVars[WorkflowVariables.TARGET_CONTEXT()] = pDependentContext; - dependentCheckVars[WorkflowVariables.EVENT_USER()] = pObserver; + dependentCheckVars[WorkflowVariables.EVENT_USER()] = this.callerVariables[WorkflowVariables.EVENT_USER()]; Object.keys(pTempObserver[pObserver][Observation.RECORDS_SPECIFIC_VALUES()]).forEach(function (pRecordID) { let specificRecordValues = pTempObserver[pObserver][Observation.RECORDS_SPECIFIC_VALUES()][pRecordID]; @@ -322,7 +322,7 @@ Observation.prototype._formatFieldsToLoad = function (pFilterResults) let res = {}; let fieldsToLoad = this.callerVariables[WorkflowVariables.FIELDS_TO_LOAD()] - if (Array.isArray(fieldsToLoad)) + if (Array.isArray(fieldsToLoad) && !Utils.isNullOrEmpty(fieldsToLoad)) { let recordFields = {}; let pro = project.getRecordContainerModel(this.callerVariables[Observation.ENTITY_NAME()])["recordFieldMappings"]; @@ -394,7 +394,7 @@ Observation.prototype.checkObservation = function(pObservationId) var filterResult; // exclude the user who made the changes. - if (user)// && pVariables[WorkflowVariables.EVENT_USER()] !== observation[2]) + if (user && this.callerVariables[WorkflowVariables.EVENT_USER()] !== user["name"]) { filterResult = this.checkFilterAndPermissions(user.title, observation[1], observation[0]); @@ -405,6 +405,10 @@ Observation.prototype.checkObservation = function(pObservationId) return filterResult; } + if (Utils.isNullOrEmpty(observation[3])) + { + observation[3] = Observation.getAllFieldValue(this.callerVariables[WorkflowVariables.TARGET_CONTEXT()]); + } tempObserver[observation[2]] = this.parseAndFilterObjectFields(observation[3], user.title, filterResult); tempObserver[observation[2]][Observation.RECORDS_SPECIFIC_VALUES()] = this._formatFieldsToLoad(filterResult); } @@ -448,8 +452,9 @@ Observation.prototype.checkObservation = function(pObservationId) */ Observation._syncTempObservationAndObservation = function (pTempObserver, pObservers, pObserverUserID, pChangedRows) { - if (pTempObserver[pObserverUserID] && (!Utils.isNullOrEmpty(pTempObserver[pObserverUserID][Observation.OBJECT_IDs()]))) - { + if (pTempObserver[pObserverUserID] && (!pTempObserver[pObserverUserID][Observation.OBJECT_IDs()] || + Object.keys(pTempObserver[pObserverUserID][Observation.OBJECT_IDs()]).length > 0)) + { if (!pObservers[pObserverUserID]) { pObservers[pObserverUserID] = pTempObserver[pObserverUserID]; @@ -613,7 +618,7 @@ Observation._notification = function (pVariables, pFilteredVariables, pObservers pFilteredVariables.notificationUser = pObserver; var isNewDescription = false; - if (pFilteredVariables != {}){ + if (!Utils.isNullOrEmpty(pFilteredVariables)){ var rowData = pVariables[WorkflowVariables.ROWDATA()]; Object.keys(pObservers[pObserver]).forEach(function (field) { if (pVariables[WorkflowVariables.CHANGED_ROWS()].indexOf(field) > -1) -- GitLab