diff --git a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js index f72044a7c9312c6e04b4e3649629c884e82dc082..43feeb028966f9f5e0da867224d550f289cc459b 100644 --- a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js +++ b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js @@ -35,9 +35,9 @@ for (var i = 0, l = files.length; i < l; i++) var incomingMailExec = new IncomingEmailExecutor(mailObj); incomingMailExec.setAlias(dbAlias); var mailImportResult = incomingMailExec.autoProcess() - if ((!mailImportResult.unlinkedMailId) && mailImportResult.activityId) + if ((!mailImportResult.isUnlinkedMail) && mailImportResult.activityId) status.activitiesCreated++; - else if (mailImportResult.unlinkedMailId && mailImportResult.activityId) + else if (mailImportResult.isUnlinkedMail && mailImportResult.activityId) status.unlinkedMailsCreated++; else status.skippedFiles++; diff --git a/process/IncomingEmailExecutor_lib/process.js b/process/IncomingEmailExecutor_lib/process.js index 6841b19deb7a2398849d77c40c770dd190e9e7a9..a43fbc1f56043c6699cdfb335d50981fba6f24f0 100644 --- a/process/IncomingEmailExecutor_lib/process.js +++ b/process/IncomingEmailExecutor_lib/process.js @@ -109,6 +109,11 @@ IncomingEmailExecutor.prototype.getMailtextAsHtml = function() } textInfos.push(attachmentHtml); } + + textInfos = textInfos.map(function (el) + { + return "<p>" + el + "</p><br>"; + }); //since the activity has always and only a HTML-content-field we need to ensure that there will be always a HTML-content if (this.rawMail[mail.MAIL_HTMLTEXT]) @@ -116,11 +121,10 @@ IncomingEmailExecutor.prototype.getMailtextAsHtml = function() else textInfos.push("<br/>\n" + text.text2html(this.rawMail[mail.MAIL_TEXT], true)); - var res = textInfos.join("<br/>\n"); + var res = textInfos.join("\n"); return res; } - IncomingEmailExecutor.prototype.getSenderInfo = function() { if (this._senderInfo == null) @@ -212,14 +216,14 @@ IncomingEmailExecutor.prototype.deleteUnlinkedMail = function (pUnlinkedMailId) IncomingEmailExecutor.prototype.autoProcess = function(pUnlinkedMailId) { let tempResult = {}; + tempResult.isUnlinkedMail = false; if (this.isUnlinkable()) { + tempResult.isUnlinkedMail = true; if (pUnlinkedMailId) return { unlinkedMailId: pUnlinkedMailId }; - else - tempResult.unlinkedMailId = this.insertUnlinkedMail(); } tempResult.activityId = this.createActivity().activityId; diff --git a/process/updateActivities_serverProzess/process.js b/process/updateActivities_serverProzess/process.js new file mode 100644 index 0000000000000000000000000000000000000000..65cbe7e7042b5872b3d4f9c6067df0227bc0c170 --- /dev/null +++ b/process/updateActivities_serverProzess/process.js @@ -0,0 +1,20 @@ +import("system.logging"); +import("system.db"); +import("Sql_lib"); + +var activities = new SqlBuilder().select(["ACTIVITY.INFO", "ACTIVITY.ACTIVITYID"]).from("ACTIVITY").where("ACTIVITY.CATEGORY", "MAIL").and("ACTIVITY.INFO", "<%", SqlBuilder.NOT_LIKE()).and("ACTIVITY.INFO","%<html>%", SqlBuilder.LIKE()).table(); +activities.forEach(function (row) { + let columnsToUpdate = ["INFO"]; + let newValue = row[0].split("<br/>\n").map(function (el) + { + if (el == "") + return "<br>"; + else if (el.startsWith("<html>")) + return el; + else + return "<p>" + el + "</p><br>"; + }).join("\n"); + let projectIdCondition = SqlCondition.equals("ACTIVITY.ACTIVITYID", row[1], "1=2"); + + db.updateData("ACTIVITY", columnsToUpdate, null, [newValue], projectIdCondition); +}); \ No newline at end of file diff --git a/process/updateActivities_serverProzess/updateActivities_serverProzess.aod b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod new file mode 100644 index 0000000000000000000000000000000000000000..51684eaceb296a2b5f75e7f1c82b373494b4e28e --- /dev/null +++ b/process/updateActivities_serverProzess/updateActivities_serverProzess.aod @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>updateActivities_serverProzess</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/updateActivities_serverProzess/process.js</process> + <restrictedRoles /> + <alias>Data_alias</alias> + <variants> + <element>EXECUTABLE</element> + </variants> +</process>