From 110823ada76987d9971941f5c250d9e37f9820c0 Mon Sep 17 00:00:00 2001 From: Sebastian Pongratz <s.pongratz@adito.de> Date: Tue, 11 Aug 2020 08:43:45 +0000 Subject: [PATCH] =?UTF-8?q?#1056853=20unverkn=C3=BCpfte=20mails=20anpassun?= =?UTF-8?q?gen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entity/Activity_entity/Activity_entity.aod | 12 ++ .../recordcontainers/db/conditionProcess.js | 6 +- .../isunlinked/filterConditionProcess.js | 23 ++++ .../isunlinked/filterValuesProcess.js | 3 + .../activityids_param/valueProcess.js | 6 +- .../drop_action/onActionProcess.js | 1 + .../_____LANGUAGE_EXTRA.aod | 29 ++++- .../_____LANGUAGE_de/_____LANGUAGE_de.aod | 104 +++--------------- .../_____LANGUAGE_en/_____LANGUAGE_en.aod | 29 ++++- process/IncomingEmailExecutor_lib/process.js | 13 ++- 10 files changed, 130 insertions(+), 96 deletions(-) create mode 100644 entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterConditionProcess.js create mode 100644 entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterValuesProcess.js diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index c9558baefe..0dc1eae96a 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -4,6 +4,9 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Activity_entity/documentation.adoc</documentation> <title>Activity</title> + <siblings> + <element>ActivityLink_entity</element> + </siblings> <grantDeleteProcess>%aditoprj%/entity/Activity_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Activity_entity/contentTitleProcess.js</contentTitleProcess> <afterUiInit>%aditoprj%/entity/Activity_entity/afterUiInit.js</afterUiInit> @@ -740,6 +743,15 @@ <filterConditionProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess> <filtertype>BASIC</filtertype> </filterExtensionSet> + <filterExtension> + <name>IsUnlinked</name> + <title>Is unlinked activity</title> + <contentType>BOOLEAN</contentType> + <filterValuesProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterConditionProcess.js</filterConditionProcess> + <isLookupFilter v="false" /> + <filtertype>BASIC</filtertype> + </filterExtension> </filterExtensions> </dbRecordContainer> </recordContainers> diff --git a/entity/Activity_entity/recordcontainers/db/conditionProcess.js b/entity/Activity_entity/recordcontainers/db/conditionProcess.js index 6b1c96c3d1..ee923b83f2 100644 --- a/entity/Activity_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Activity_entity/recordcontainers/db/conditionProcess.js @@ -40,7 +40,11 @@ if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars. if (vars.exists("$param.ActivityIDs_param") && vars.get("$param.ActivityIDs_param")) { var acticityIds = JSON.parse(vars.get("$param.ActivityIDs_param")); - condition.and("ACTIVITY.ACTIVITYID", acticityIds, SqlBuilder.IN()); + if (acticityIds.length == 0) { + condition.and("ACTIVITY.ACTIVITYID", ""); // Bedingung um kein Ergebnis zu bekommen + } else { + condition.and("ACTIVITY.ACTIVITYID", acticityIds, SqlBuilder.IN()); + } } if (vars.getString("$param.OnlyInnate_param") == "true") diff --git a/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterConditionProcess.js b/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterConditionProcess.js new file mode 100644 index 0000000000..3e01b63784 --- /dev/null +++ b/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterConditionProcess.js @@ -0,0 +1,23 @@ +import("KeywordRegistry_basic"); +import("system.logging"); +import("Sql_lib"); +import("system.vars"); +import("system.result"); + +var operator = vars.get("$local.operator"); +var rawvalue = vars.get("$local.rawvalue"); +var operator2 = vars.get("$local.operator2"); +var sqlCond = ""; + +if(operator == "1" && rawvalue == "1" || operator == "2" && rawvalue == "0") + operator2 = SqlBuilder.IN(); +else if(operator == "1" && rawvalue == "0" || operator == "2" && rawvalue == "1") + operator2 = SqlBuilder.NOT_IN(); +else + sqlCond = "1=1"; + +if (sqlCond == "") + sqlCond = new SqlBuilder().where("ACTIVITY.ACTIVITYID", new SqlBuilder().select("ACTIVITYLINK.ACTIVITY_ID").from("ACTIVITYLINK").groupBy("ACTIVITYLINK.ACTIVITY_ID"), operator2); + + +result.string(sqlCond); \ No newline at end of file diff --git a/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterValuesProcess.js b/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterValuesProcess.js new file mode 100644 index 0000000000..056eacc69d --- /dev/null +++ b/entity/Activity_entity/recordcontainers/db/filterextensions/isunlinked/filterValuesProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.object([["true", translate.text("Yes")], ["false", translate.text("No")]]); \ No newline at end of file diff --git a/entity/UniversalFileProcessor_entity/entityfields/activities/children/activityids_param/valueProcess.js b/entity/UniversalFileProcessor_entity/entityfields/activities/children/activityids_param/valueProcess.js index 826d12e6b5..005f7ca5ac 100644 --- a/entity/UniversalFileProcessor_entity/entityfields/activities/children/activityids_param/valueProcess.js +++ b/entity/UniversalFileProcessor_entity/entityfields/activities/children/activityids_param/valueProcess.js @@ -1,4 +1,8 @@ import("system.vars"); import("system.result"); -result.string(vars.exists("$global.ACTIVITY_IDS")? vars.get("$global.ACTIVITY_IDS"):"[]"); \ No newline at end of file +if (vars.exists("$global.ACTIVITY_IDS") && vars.get("$global.ACTIVITY_IDS")) { + result.string(vars.get("$global.ACTIVITY_IDS")); +} else { + result.string("[]"); +} \ No newline at end of file diff --git a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js index 43feeb0289..8f1c9f0ead 100644 --- a/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js +++ b/entity/UniversalFileProcessor_entity/entityfields/drop_action/onActionProcess.js @@ -32,6 +32,7 @@ for (var i = 0, l = files.length; i < l; i++) var mailObj = _getMailObj(files[i]); if (mailObj) { + mailObj.filename = files[i].filename; var incomingMailExec = new IncomingEmailExecutor(mailObj); incomingMailExec.setAlias(dbAlias); var mailImportResult = incomingMailExec.autoProcess() diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index 7d7faf2906..977fdd9d8d 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -6804,7 +6804,34 @@ <key>${SQL_LIB_FIELD_WRONG_FORMAT}</key> </entry> <entry> - <key>Settings</key> + <key>yellow</key> + </entry> + <entry> + <key>Borrow</key> + </entry> + <entry> + <key>Is unlinked activity</key> + </entry> + <entry> + <key>Fantasy</key> + </entry> + <entry> + <key>Extend</key> + </entry> + <entry> + <key>Krimi</key> + </entry> + <entry> + <key>red</key> + </entry> + <entry> + <key>Return</key> + </entry> + <entry> + <key>green</key> + </entry> + <entry> + <key>Actionthriller</key> </entry> <entry> <key>No new recipients found that can be added to the bulk mail.</key> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 14b87249af..b5e2a98425 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -32,7 +32,6 @@ </entry> <entry> <key>Finished</key> - <value>Abgeschlossen</value> </entry> <entry> <key>Show my organisations</key> @@ -82,10 +81,6 @@ <key>Has marketing approved this step?</key> <value>Hat das Marketing diesem Schritt zugestimmt?</value> </entry> - <entry> - <key>Create model</key> - <value>Modell erstellen</value> - </entry> <entry> <key>Task done</key> <value>Aufgabe abgeschlossen</value> @@ -700,10 +695,6 @@ <key>None</key> <value>Keine</value> </entry> - <entry> - <key>Edit workflow</key> - <value>Workflow bearbeiten</value> - </entry> <entry> <key>Date of request</key> <value>Datum der Anforderung</value> @@ -2098,10 +2089,6 @@ <key>{$TASK_STATUS}</key> <value>Status</value> </entry> - <entry> - <key>and open modeler</key> - <value>und Modeler öffnen</value> - </entry> <entry> <key>Task</key> <value>Aufgabe</value> @@ -4017,9 +4004,11 @@ </entry> <entry> <key>false</key> + <value>falsch</value> </entry> <entry> <key>true</key> + <value>wahr</value> </entry> <entry> <key>${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3</key> @@ -5063,7 +5052,7 @@ </entry> <entry> <key>Read</key> - <value>Gelesen</value> + <value>gelesen</value> </entry> <entry> <key>Permission Set ID</key> @@ -6738,7 +6727,7 @@ </entry> <entry> <key>archive</key> - <value>Archivieren</value> + <value>archivieren</value> </entry> <entry> <key>Bangladesh</key> @@ -8265,10 +8254,6 @@ Bitte Datumseingabe prüfen</value> <key>Contactreport</key> <value>Kontaktbericht</value> </entry> - <entry> - <key>The Sales Project can only be filled when a company has been specified</key> - <value>Das Vertriebsprojekt kann nur ausgefüllt werden, wenn eine Firma angegeben ist</value> - </entry> <entry> <key>Appointment planned</key> <value>Termin vereinbart</value> @@ -8583,7 +8568,6 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Zip</key> - <value>Plz</value> </entry> <entry> <key>type</key> @@ -8740,93 +8724,35 @@ Bitte Datumseingabe prüfen</value> <value>gültig ab (in </value> </entry> <entry> - <key>workflow notification</key> - <value>Workflow Benachrichtigung</value> - </entry> - <entry> - <key>leadimport notification</key> - </entry> - <entry> - <key>bulk mail sent</key> - </entry> - <entry> - <key>download ready</key> - </entry> - <entry> - <key>No new recipients found that can be added to the bulk mail.</key> - <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value> - </entry> - <entry> - <key>Permission received</key> - <value>erhaltene Berechtigung</value> - </entry> - <entry> - <key>granted permission</key> - <value>vergebene Berechtigung</value> - </entry> - <entry> - <key>Receive new Department Permission</key> - <value>Neue Abteilungs-Berechtigung erhalten</value> - </entry> - <entry> - <key>Receive new User Permission</key> - <value>Neue Benutzer-Berechtigung erhalten</value> - </entry> - <entry> - <key>export</key> - </entry> - <entry> - <key>No new recipients found that can be added to the serial letter.</key> - <value>Keine neuen Empfänger, die zum Serienbrief werden können, gefunden.</value> - </entry> - <entry> - <key>export using the selected template</key> - <value>Mit der ausgewählten Vorlage Exportieren</value> + <key>yellow</key> </entry> <entry> - <key>send mail</key> - <value>E-Mail losschicken</value> + <key>Borrow</key> </entry> <entry> - <key>Total in euros</key> + <key>Is unlinked activity</key> + <value>Ist eine unverknüpfte Aktivität</value> </entry> <entry> - <key>Workflow Model</key> + <key>Fantasy</key> </entry> <entry> - <key>{SEND_MAIL}</key> - <value>Email versenden</value> + <key>Extend</key> </entry> <entry> - <key>The workflow could not be deployed</key> + <key>Krimi</key> </entry> <entry> - <key>Workflow deploy failed</key> + <key>red</key> </entry> <entry> - <key>Download letter and create Activity</key> - </entry> - <entry> - <key>{SENT_MAIL}</key> - </entry> - <entry> - <key>Add Participants</key> - </entry> - <entry> - <key>and open Report</key> - </entry> - <entry> - <key>Add Recipients</key> - </entry> - <entry> - <key>New</key> - <value>Neu</value> + <key>Return</key> </entry> <entry> - <key>Release</key> + <key>green</key> </entry> <entry> - <key>Archived</key> + <key>Actionthriller</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index a36b9b673f..1db9b01933 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -6870,7 +6870,34 @@ <key>Valid from (as </key> </entry> <entry> - <key>Settings</key> + <key>yellow</key> + </entry> + <entry> + <key>Borrow</key> + </entry> + <entry> + <key>Is unlinked activity</key> + </entry> + <entry> + <key>Fantasy</key> + </entry> + <entry> + <key>Extend</key> + </entry> + <entry> + <key>Krimi</key> + </entry> + <entry> + <key>red</key> + </entry> + <entry> + <key>Return</key> + </entry> + <entry> + <key>green</key> + </entry> + <entry> + <key>Actionthriller</key> </entry> <entry> <key>No new recipients found that can be added to the bulk mail.</key> diff --git a/process/IncomingEmailExecutor_lib/process.js b/process/IncomingEmailExecutor_lib/process.js index a43fbc1f56..555f4f161b 100644 --- a/process/IncomingEmailExecutor_lib/process.js +++ b/process/IncomingEmailExecutor_lib/process.js @@ -28,6 +28,7 @@ function IncomingEmailExecutor(pMail) this.mailSubject = this.rawMail[mail.MAIL_SUBJECT] || ""; this.mailSender = this.rawMail[mail.MAIL_SENDER]; this.mailSentDate = this.rawMail[mail.MAIL_SENTDATE]; + this.filename = this.rawMail.filename; var mailRecipientsTo = this.rawMail[mail.RECIPIENT_TO].split(";"); var mailRecipientsCc = this.rawMail[mail.RECIPIENT_CC].split(";"); @@ -194,14 +195,20 @@ IncomingEmailExecutor.prototype.createActivity = function(pAdditionalLinks) subject: this.mailSubject, content: this.getMailtextAsHtml(), categoryKeywordId: $KeywordRegistry.activityCategory$mail(), - directionKeywordId: this.activityData.direction || this.failbackActivityData.direction, - responsibleContactId: this.activityData.employeeContactId || this.failbackActivityData.employeeContactId + directionKeywordId: this.activityData.direction || this.failbackActivityData.direction }; + + if (vars.get("$sys.isclient")){ + activityDataForInsert.responsibleContactId = EmployeeUtils.getCurrentContactId(); + } else { + activityDataForInsert.responsibleContactId = this.activityData.employeeContactId || this.failbackActivityData.employeeContactId; + } + var activityLinks = this.activityData.links || this.failbackActivityData.links; if (pAdditionalLinks) activityLinks = activityLinks.concat(pAdditionalLinks); activityLinks = ArrayUtils.distinct2d(activityLinks);//TODO: better check before adding the elements into the array if it already exists there - var activityDocs = [["mail.eml", util.encodeBase64String(mail.toRFC(this.rawMail)), true]]; + var activityDocs = [[this.filename || "mail.eml", util.encodeBase64String(mail.toRFC(this.rawMail)), true]]; var activityRes = ActivityUtils.insertNewActivity(activityDataForInsert, activityLinks, activityDocs, this._alias, this.mailSentDate); return activityRes; -- GitLab