diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod index eed32e047eeee11830af5758f92e36931aa249c1..650f4c8e4d069bb6dacebfa14a434e26254513e4 100644 --- a/entity/BulkMail_entity/BulkMail_entity.aod +++ b/entity/BulkMail_entity/BulkMail_entity.aod @@ -1,222 +1,216 @@ -<?xml version="1.0" encoding="UTF-8"?> -<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.10" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.10"> - <name>BulkMail_entity</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:AT</icon> - <title>Bulk mail</title> - <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess> - <titlePlural>Bulk mails</titlePlural> - <recordContainer>db</recordContainer> - <entityFields> - <entityProvider> - <name>#PROVIDER</name> - <dependencies> - <entityDependency> - <name>88f8ded7-fe8f-41ef-8e01-030bae0867ee</name> - <entityName>BulkMailAddRecipients_entity</entityName> - <fieldName>BulkMails</fieldName> - <isConsumer v="false" /> - </entityDependency> - </dependencies> - </entityProvider> - <entityField> - <name>BULKMAILID</name> - </entityField> - <entityField> - <name>NAME</name> - <title>Name</title> - <mandatory v="true" /> - </entityField> - <entityField> - <name>SUBJECT</name> - <title>Subject</title> - </entityField> - <entityField> - <name>DESCRIPTION</name> - <title>Description</title> - </entityField> - <entityField> - <name>DOCUMENTTEMPLATE_ID</name> - <title>Document Template</title> - <consumer>Templates</consumer> - <mandatory v="false" /> - <onValueChange>%aditoprj%/entity/BulkMail_entity/entityfields/documenttemplate_id/onValueChange.js</onValueChange> - </entityField> - <entityConsumer> - <name>Recipients</name> - <dependency> - <name>dependency</name> - <entityName>BulkMailRecipient_entity</entityName> - <fieldName>BulkMailRecipients</fieldName> - </dependency> - <children> - <entityParameter> - <name>BulkMailId_param</name> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/children/bulkmailid_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>Templates</name> - <dependency> - <name>dependency</name> - <entityName>DocumentTemplate_entity</entityName> - <fieldName>DocumentTemplateProvider</fieldName> - </dependency> - <children> - <entityParameter> - <name>DocumentTemplateType_param</name> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>DocumentTemplateTypeClassification_param</name> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityField> - <name>STATUS</name> - <title>Status</title> - <consumer>StatusKeyword</consumer> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/displayValueProcess.js</displayValueProcess> - </entityField> - <entityField> - <name>SENDER</name> - <title>Sender address</title> - <mandatory v="true" /> - <onValidation>%aditoprj%/entity/BulkMail_entity/entityfields/sender/onValidation.js</onValidation> - </entityField> - <entityActionField> - <name>sendMail</name> - <title>Send</title> - <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess> - <iconId>VAADIN:PAPERPLANE</iconId> - <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess> - </entityActionField> - <entityField> - <name>ICON</name> - <contentType>IMAGE</contentType> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/icon/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>preview</name> - <contentType>HTML</contentType> - <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js</displayValueProcess> - </entityField> - <entityConsumer> - <name>StatusKeyword</name> - <dependency> - <name>dependency</name> - <entityName>KeywordEntry_entity</entityName> - <fieldName>SpecificContainerKeywords</fieldName> - </dependency> - <children> - <entityParameter> - <name>ContainerName_param</name> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/statuskeyword/children/containername_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityField> - <name>BINDATA</name> - <contentType>FILE</contentType> - <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bindata/stateProcess.js</stateProcess> - </entityField> - <entityFieldGroup> - <name>subjectPreview</name> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/subjectpreview/valueProcess.js</valueProcess> - <fields> - <element>SUBJECT</element> - </fields> - </entityFieldGroup> - <entityActionField> - <name>openAdminView</name> - <title>Open admin view</title> - <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess> - <iconId>VAADIN:CURLY_BRACKETS</iconId> - <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess> - </entityActionField> - <entityParameter> - <name>PresetRecipients_param</name> - <expose v="true" /> - </entityParameter> - <entityField> - <name>content</name> - <title>Content</title> - <contentType>HTML</contentType> - <contentTypeProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js</contentTypeProcess> - <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/valueProcess.js</valueProcess> - </entityField> - </entityFields> - <recordContainers> - <dbRecordContainer> - <name>db</name> - <alias>Data_alias</alias> - <fromClauseProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> - <onDBInsert>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js</onDBInsert> - <onDBUpdate>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> - <onDBDelete>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js</onDBDelete> - <linkInformation> - <linkInformation> - <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name> - <tableName>BULKMAIL</tableName> - <primaryKey>BULKMAILID</primaryKey> - <isUIDTable v="true" /> - <readonly v="false" /> - </linkInformation> - <linkInformation> - <name>914d6373-4409-44e5-882a-3f795b196d7b</name> - <tableName>DOCUMENTTEMPLATE</tableName> - <primaryKey>DOCUMENTTEMPLATEID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - </linkInformation> - <recordFieldMappings> - <dbRecordFieldMapping> - <name>BULKMAILID.value</name> - <recordfield>BULKMAIL.BULKMAILID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DESCRIPTION.value</name> - <recordfield>BULKMAIL.DESCRIPTION</recordfield> - <isFilterable v="true" /> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DOCUMENTTEMPLATE_ID.value</name> - <recordfield>BULKMAIL.DOCUMENTTEMPLATE_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>NAME.value</name> - <recordfield>BULKMAIL.NAME</recordfield> - <isFilterable v="true" /> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>SUBJECT.value</name> - <recordfield>BULKMAIL.SUBJECT</recordfield> - <isFilterable v="true" /> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>SENDER.value</name> - <recordfield>BULKMAIL.SENDER</recordfield> - <isFilterable v="true" /> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>DOCUMENTTEMPLATE_ID.displayValue</name> - <recordfield>DOCUMENTTEMPLATE.NAME</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>STATUS.value</name> - <recordfield>BULKMAIL.STATUS</recordfield> - <isFilterable v="true" /> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>STATUS.displayValue</name> - <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - </recordFieldMappings> - </dbRecordContainer> - </recordContainers> -</entity> +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.10" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.10"> + <name>BulkMail_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:AT</icon> + <title>Bulk mail</title> + <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess> + <titlePlural>Bulk mails</titlePlural> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>88f8ded7-fe8f-41ef-8e01-030bae0867ee</name> + <entityName>BulkMailAddRecipients_entity</entityName> + <fieldName>BulkMails</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityField> + <name>BULKMAILID</name> + </entityField> + <entityField> + <name>NAME</name> + <title>Name</title> + <mandatory v="true" /> + </entityField> + <entityField> + <name>SUBJECT</name> + <title>Subject</title> + </entityField> + <entityField> + <name>DESCRIPTION</name> + <title>Description</title> + </entityField> + <entityField> + <name>DOCUMENTTEMPLATE_ID</name> + <title>Document Template</title> + <consumer>Templates</consumer> + <mandatory v="false" /> + <onValueChange>%aditoprj%/entity/BulkMail_entity/entityfields/documenttemplate_id/onValueChange.js</onValueChange> + </entityField> + <entityConsumer> + <name>Recipients</name> + <dependency> + <name>dependency</name> + <entityName>BulkMailRecipient_entity</entityName> + <fieldName>BulkMailRecipients</fieldName> + </dependency> + <children> + <entityParameter> + <name>BulkMailId_param</name> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/recipients/children/bulkmailid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Templates</name> + <dependency> + <name>dependency</name> + <entityName>DocumentTemplate_entity</entityName> + <fieldName>DocumentTemplateProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>DocumentTemplateType_param</name> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>DocumentTemplateTypeClassification_param</name> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>STATUS</name> + <title>Status</title> + <consumer>StatusKeyword</consumer> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/status/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>SENDER</name> + <title>Sender address</title> + <mandatory v="true" /> + <onValidation>%aditoprj%/entity/BulkMail_entity/entityfields/sender/onValidation.js</onValidation> + </entityField> + <entityActionField> + <name>sendMail</name> + <title>Send</title> + <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess> + <iconId>VAADIN:PAPERPLANE</iconId> + <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess> + </entityActionField> + <entityField> + <name>ICON</name> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/icon/valueProcess.js</valueProcess> + </entityField> + <entityConsumer> + <name>StatusKeyword</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/statuskeyword/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>BINDATA</name> + <contentType>FILE</contentType> + <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/bindata/stateProcess.js</stateProcess> + </entityField> + <entityFieldGroup> + <name>subjectPreview</name> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/subjectpreview/valueProcess.js</valueProcess> + <fields> + <element>SUBJECT</element> + </fields> + </entityFieldGroup> + <entityActionField> + <name>openAdminView</name> + <title>Open admin view</title> + <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess> + <iconId>VAADIN:CURLY_BRACKETS</iconId> + <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess> + </entityActionField> + <entityParameter> + <name>PresetRecipients_param</name> + <expose v="true" /> + </entityParameter> + <entityField> + <name>content</name> + <title>Content</title> + <contentTypeProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js</contentTypeProcess> + <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/content/displayValueProcess.js</displayValueProcess> + </entityField> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <fromClauseProcess>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> + <onDBInsert>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js</onDBInsert> + <onDBUpdate>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> + <onDBDelete>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js</onDBDelete> + <linkInformation> + <linkInformation> + <name>6444866d-42ee-4b7b-8536-6dc8f6437c45</name> + <tableName>BULKMAIL</tableName> + <primaryKey>BULKMAILID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + <linkInformation> + <name>914d6373-4409-44e5-882a-3f795b196d7b</name> + <tableName>DOCUMENTTEMPLATE</tableName> + <primaryKey>DOCUMENTTEMPLATEID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>BULKMAILID.value</name> + <recordfield>BULKMAIL.BULKMAILID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DESCRIPTION.value</name> + <recordfield>BULKMAIL.DESCRIPTION</recordfield> + <isFilterable v="true" /> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DOCUMENTTEMPLATE_ID.value</name> + <recordfield>BULKMAIL.DOCUMENTTEMPLATE_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>NAME.value</name> + <recordfield>BULKMAIL.NAME</recordfield> + <isFilterable v="true" /> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>SUBJECT.value</name> + <recordfield>BULKMAIL.SUBJECT</recordfield> + <isFilterable v="true" /> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>SENDER.value</name> + <recordfield>BULKMAIL.SENDER</recordfield> + <isFilterable v="true" /> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DOCUMENTTEMPLATE_ID.displayValue</name> + <recordfield>DOCUMENTTEMPLATE.NAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATUS.value</name> + <recordfield>BULKMAIL.STATUS</recordfield> + <isFilterable v="true" /> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATUS.displayValue</name> + <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js b/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js index e7996a89667933fc400f3fe807ef1a03e8b71f57..af9657e3dd0e8e678b257e83dd8f9c5955e21e3f 100644 --- a/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js +++ b/entity/BulkMail_entity/entityfields/content/contentTypeProcess.js @@ -1,15 +1,28 @@ +import("Bulkmail_lib"); import("system.result"); import("Document_lib"); import("system.vars"); +import("DocumentTemplate_lib"); var upload = vars.get("$field.BINDATA"); -var filename = DocumentUtil.getFilenameFromUpload(upload); -var type = DocumentUtil.getFileExtensionFromUpload(filename); -result.string( - ({ +var contentType, type, filename, template; +if (upload) +{ + filename = DocumentUtil.getFilenameFromUpload(upload); + type = DocumentUtil.getFileExtensionFromUpload(filename); + contentType = ({ "txt" : "LONG_TEXT", "html" : "HTML", "htm" : "HTML", "eml" : "HTML" - })[type] || "LONG_TEXT" -); \ No newline at end of file + })[type] || "LONG_TEXT"; +} +else +{ + template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID")); + type = template.type; + contentType = type == DocumentTemplate.types.HTML || type == DocumentTemplate.types.EML + ? "HTML" + : "LONG_TEXT"; +} +result.string(contentType); \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js b/entity/BulkMail_entity/entityfields/content/displayValueProcess.js similarity index 97% rename from entity/BulkMail_entity/entityfields/preview/displayValueProcess.js rename to entity/BulkMail_entity/entityfields/content/displayValueProcess.js index 2befdfd6ae93c13f5766876054b51e28c7c606c6..d676eae7a0822b5beea69cae722adc4b4cd7c67e 100644 --- a/entity/BulkMail_entity/entityfields/preview/displayValueProcess.js +++ b/entity/BulkMail_entity/entityfields/content/displayValueProcess.js @@ -1,19 +1,19 @@ -import("Bulkmail_lib"); -import("system.text"); -import("Employee_lib"); -import("system.vars"); -import("system.result"); -import("system.neon"); -import("DocumentTemplate_lib"); - -//if this was done for every row, like in a lookup, the performance would be very bad -if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_MASK) -{ - var template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID")); - - var contactId = EmployeeUtils.getCurrentContactId(); - var preview = template.getReplacedEmailsByContactIds([contactId]); - - result.string(preview[contactId].body); -} - +import("Bulkmail_lib"); +import("system.text"); +import("Employee_lib"); +import("system.vars"); +import("system.result"); +import("system.neon"); +import("DocumentTemplate_lib"); + +//if this was done for every row, like in a lookup, the performance would be very bad +if (vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_MASK) +{ + var template = BulkMailUtils.getBulkMailTemplate(vars.get("$field.BULKMAILID"), vars.get("$field.DOCUMENTTEMPLATE_ID")); + + var contactId = EmployeeUtils.getCurrentContactId(); + var preview = template.getReplacedEmailsByContactIds([contactId]); + + result.string(preview[contactId].body); +} + diff --git a/entity/BulkMail_entity/entityfields/content/stateProcess.js b/entity/BulkMail_entity/entityfields/content/stateProcess.js deleted file mode 100644 index 3556de9c2f8a50d3a7d0eaee2900e769c1eb2a9c..0000000000000000000000000000000000000000 --- a/entity/BulkMail_entity/entityfields/content/stateProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(neon.COMPONENTSTATE_EDITABLE); -else - result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/content/valueProcess.js b/entity/BulkMail_entity/entityfields/content/valueProcess.js index 7b157c6cc8c6ee66d4083c68bee963b411b2748e..cdd38f9be7f91cf29e2a8b9b6600a4a24e67de84 100644 --- a/entity/BulkMail_entity/entityfields/content/valueProcess.js +++ b/entity/BulkMail_entity/entityfields/content/valueProcess.js @@ -8,16 +8,25 @@ import("DocumentTemplate_lib"); if (vars.get("$this.value") == null) { var upload = vars.get("$field.BINDATA"); - var binData = DocumentUtil.getBindataFromUpload(upload); - var filename = DocumentUtil.getFilenameFromUpload(upload); - var type = DocumentUtil.getFileExtensionFromUpload(filename); - type = ({ - "txt" : DocumentTemplate.types.TXT, - "html" : DocumentTemplate.types.HTML, - "htm" : DocumentTemplate.types.HTML, - "eml" : DocumentTemplate.types.EML - })[type]; - var template = new DocumentTemplate(binData, type); + var template; + if (upload) + { + var binData = DocumentUtil.getBindataFromUpload(upload); + var filename = DocumentUtil.getFilenameFromUpload(upload); + var type = DocumentUtil.getFileExtensionFromUpload(filename); + type = ({ + "txt" : DocumentTemplate.types.TXT, + "html" : DocumentTemplate.types.HTML, + "htm" : DocumentTemplate.types.HTML, + "eml" : DocumentTemplate.types.EML + })[type]; + template = new DocumentTemplate(binData, type); + + } + else + { + template = DocumentTemplate.loadTemplate(vars.get("$field.DOCUMENTTEMPLATE_ID")); + } var content = template.getReplacedContent({}, true); result.string(content); diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js index 1a0d7b3b5e8ed56dc8088006903a9851f1bbef62..dd2d0ecc46f46ab5786a9679f05a1c8d9ef54fa8 100644 --- a/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js +++ b/entity/BulkMail_entity/recordcontainers/db/onDBInsert.js @@ -1,3 +1,4 @@ +import("DocumentTemplate_lib"); import("system.result"); import("system.vars"); import("system.db"); @@ -9,13 +10,26 @@ import("Bulkmail_lib"); var content = vars.get("$field.content"); var originalBinData = vars.get("$field.BINDATA"); -var filename; +var filename, type, template; if(vars.get("$field.BINDATA")) +{ filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.BINDATA")); + type = DocumentUtil.getFileExtensionFromUpload(filename); + type = ({ + "txt" : DocumentTemplate.types.TXT, + "html" : DocumentTemplate.types.HTML, + "htm" : DocumentTemplate.types.HTML, + "eml" : DocumentTemplate.types.EML + })[type]; +} +else +{ + template = DocumentTemplate.loadTemplate(vars.get("$field.DOCUMENTTEMPLATE_ID")); + type = template.type; +} -var type = DocumentUtil.getFileExtensionFromUpload(filename); -if (type == "html" || type == "eml") +if (type == DocumentTemplate.types.EML || type == DocumentTemplate.types.HTML) content = "<html>" + content + "</html>"; var bindata = util.encodeBase64String(content); diff --git a/neonView/BulkMailTest_view/BulkMailTest_view.aod b/neonView/BulkMailTest_view/BulkMailTest_view.aod index c6442e56b066bfb47f58b9154ef3e9fa9d2a2fcb..0192108f415f42bf1caa993021dd5e997e7dc130 100644 --- a/neonView/BulkMailTest_view/BulkMailTest_view.aod +++ b/neonView/BulkMailTest_view/BulkMailTest_view.aod @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>BulkMailTest_view</name> - <title>Preview</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericViewTemplate> - <name>Subject</name> - <showDrawer v="true" /> - <drawerCaption>Subject</drawerCaption> - <fixedDrawer v="true" /> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d85c2b49-3a32-4261-95aa-6e13d9debe46</name> - <entityField>subjectPreview</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Body</name> - <showDrawer v="true" /> - <drawerCaption>Content</drawerCaption> - <fixedDrawer v="true" /> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>13d21d66-6f52-4535-9cb9-3b26db11dfbf</name> - <entityField>preview</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>BulkMailTest_view</name> + <title>Preview</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericViewTemplate> + <name>Subject</name> + <showDrawer v="true" /> + <drawerCaption>Subject</drawerCaption> + <fixedDrawer v="true" /> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>d85c2b49-3a32-4261-95aa-6e13d9debe46</name> + <entityField>subjectPreview</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Body</name> + <showDrawer v="true" /> + <drawerCaption>Content</drawerCaption> + <fixedDrawer v="true" /> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>af0d45a2-a96f-4031-a93d-62ac177efb43</name> + <entityField>content</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView>