From b752af10e9f67f914a6facf92f229d2cc79fe17c Mon Sep 17 00:00:00 2001 From: "b.ulrich" <b.ulrich@bulrich.aditosoftware.local> Date: Mon, 24 Feb 2020 11:37:23 +0100 Subject: [PATCH] =?UTF-8?q?[Projekt:=20Entwicklung=20-=20Neon][TicketNr.:?= =?UTF-8?q?=201047858][DSGVO:=20Zustimmung=20bei=20Eintrag=20der=20E-Mail?= =?UTF-8?q?=20=C3=BCber=20UnlinkedMails]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recordcontainers/jdito/onInsert.js | 16 ++++++++-------- .../mailastext_param/valueProcess.js | 2 +- .../recordcontainers/dummyjdito/onUpdate.js | 4 ++++ process/DataPrivacy_lib/process.js | 7 ++++--- process/IncomingEmailExecutor_lib/process.js | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/entity/UnlinkedMailMappingLink_entity/recordcontainers/jdito/onInsert.js b/entity/UnlinkedMailMappingLink_entity/recordcontainers/jdito/onInsert.js index 80412b871ce..9e1560a292a 100644 --- a/entity/UnlinkedMailMappingLink_entity/recordcontainers/jdito/onInsert.js +++ b/entity/UnlinkedMailMappingLink_entity/recordcontainers/jdito/onInsert.js @@ -1,9 +1,9 @@ -import("system.util"); -import("Sql_lib"); -import("system.db"); -import("DataPrivacy_lib"); -import("system.vars"); +import("system.datetime"); -var rowdata = vars.get("$local.rowdata") -var contactId = rowdata["CONTACT_ID.value"] -DataPrivacyUtils.notifyNeedDataPrivacyUpdate(contactId); \ No newline at end of file +/* In this process here basically nothing happens because everything is done within the UnlinkedMailMappingWrapper. + * To make the UnlinkedMailMappingLink_entity NOT read only we've to specify some code (comments excluded). This seems (and IS) odd but it's currenty + * the only way to do the job + * If you wan't more information about the entity and why it exists like this: See the documentation of the entity. + * + * Tl;dr; do not remove the following line: */ +datetime.date(); \ No newline at end of file diff --git a/entity/UnlinkedMailMappingWrapper_entity/entityfields/mailastext_param/valueProcess.js b/entity/UnlinkedMailMappingWrapper_entity/entityfields/mailastext_param/valueProcess.js index 1e60e708982..706b1b035a7 100644 --- a/entity/UnlinkedMailMappingWrapper_entity/entityfields/mailastext_param/valueProcess.js +++ b/entity/UnlinkedMailMappingWrapper_entity/entityfields/mailastext_param/valueProcess.js @@ -9,7 +9,7 @@ if (unlinkedMailId) { res = newSelect("AB_UNLINKEDMAIL.MAIL") .from("AB_UNLINKEDMAIL") - .and("AB_UNLINKEDMAIL.AB_UNLINKEDMAILID", unlinkedMailId) + .where("AB_UNLINKEDMAIL.AB_UNLINKEDMAILID", unlinkedMailId) .cell(); } result.string(res); \ No newline at end of file diff --git a/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js b/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js index 42654e03c0f..f6cc9442f35 100644 --- a/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js +++ b/entity/UnlinkedMailMappingWrapper_entity/recordcontainers/dummyjdito/onUpdate.js @@ -1,3 +1,4 @@ +import("DataPrivacy_lib"); import("system.datetime"); import("KeywordRegistry_basic"); import("system.util"); @@ -65,6 +66,9 @@ var activityRes = incomingMailExec.createActivity(activityLinks); incomingMailExec.deleteUnlinkedMail(unlinkedMailId); if (communicationsToInsert.length > 0) +{ db.inserts(communicationsToInsert); + DataPrivacyUtils.notifyNeedDataPrivacyUpdate(); +} neon.refreshAll();//this is needed for the dashboard: other elements are refreshed and display for example unlinkedMails \ No newline at end of file diff --git a/process/DataPrivacy_lib/process.js b/process/DataPrivacy_lib/process.js index f1bda31c814..f70dc73377e 100644 --- a/process/DataPrivacy_lib/process.js +++ b/process/DataPrivacy_lib/process.js @@ -436,7 +436,8 @@ DataPrivacyUtils.collectAll = function(pContactId, pFilterCond) * Notify the user to update the data privacy informations. * It is only displayed if it is a Person. * - * @param {String} pContactId the current contactId + * @param {String} [pContactId] contactId that is used to vertify whether the contact is a person-contact (-> showmessage) + * or not (-> do not show message), if param is null (-> show message without this check) * @param {Boolean} pShowMessage if false: nothing happens * * @return {void} @@ -449,8 +450,8 @@ DataPrivacyUtils.notifyNeedDataPrivacyUpdate = function(pContactId, pShowMessage var isActive = JSON.parse(project.getPreferenceValue("custom.dsgvo.active", "true")); if (!isActive) return; - - if (ContactUtils.getContactTypeByContactId(pContactId) > 1) { // if person + + if (pContactId == undefined || ContactUtils.getContactTypeByContactId(pContactId) > 1) { // if person // TODO: jump to DataPrivacy-Tab of contact question.showMessage(translate.text("Your changes may have an impact on the data privacy information (GDPR).\n Please update these."), question.INFORMATION, translate.text("Update data privacy information")); } diff --git a/process/IncomingEmailExecutor_lib/process.js b/process/IncomingEmailExecutor_lib/process.js index 57ee608b846..ce4cbed2796 100644 --- a/process/IncomingEmailExecutor_lib/process.js +++ b/process/IncomingEmailExecutor_lib/process.js @@ -204,7 +204,7 @@ IncomingEmailExecutor.prototype.createActivity = function(pAdditionalLinks) IncomingEmailExecutor.prototype.deleteUnlinkedMail = function (pUnlinkedMailId) { - newWhere("AB_UNLINKEDMAIL.AB_UNLINKEDMAILID", pUnlinkedMailId, undefined, undefined, this._alias) + newWhereIfSet("AB_UNLINKEDMAIL.AB_UNLINKEDMAILID", pUnlinkedMailId, undefined, undefined, this._alias) .deleteData(true, "AB_UNLINKEDMAIL"); } -- GitLab