From 9d165c07dd6d28bb1ca034023ca7542bb251de6b Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Wed, 11 Sep 2019 14:30:03 +0200
Subject: [PATCH] fix document template - onvalidation if type is undefined

---
 .../entityfields/content/onValueChange.js     |  3 +-
 .../DocumentTemplate_entity/onValidation.js   | 52 +++++++++++--------
 2 files changed, 32 insertions(+), 23 deletions(-)

diff --git a/entity/DocumentTemplate_entity/entityfields/content/onValueChange.js b/entity/DocumentTemplate_entity/entityfields/content/onValueChange.js
index 0dddbf5140..57e4a12ec0 100644
--- a/entity/DocumentTemplate_entity/entityfields/content/onValueChange.js
+++ b/entity/DocumentTemplate_entity/entityfields/content/onValueChange.js
@@ -1,3 +1,4 @@
 import("system.vars");
+
 // needed to correctly save the file
-vars.set("$context.changedContentByUser", true);
\ No newline at end of file
+vars.set("$context.changedContentByUser", true);
diff --git a/entity/DocumentTemplate_entity/onValidation.js b/entity/DocumentTemplate_entity/onValidation.js
index f850a1f939..001768435b 100644
--- a/entity/DocumentTemplate_entity/onValidation.js
+++ b/entity/DocumentTemplate_entity/onValidation.js
@@ -1,7 +1,6 @@
 import("system.neon");
 import("system.translate");
 import("system.result");
-import("system.logging");
 import("system.vars");
 import("Bulkmail_lib");
 import("DocumentTemplate_lib");
@@ -12,27 +11,36 @@ if (vars.exists("$context.currentTemplateType") && (vars.get("$sys.recordstate")
     var kind = vars.get("$field.KIND");
     var classification = vars.get("$field.CLASSIFICATION");
     
-    var type = vars.get("$context.currentTemplateType");
-    // Bulkmail
-    if (kind == $KeywordRegistry.documentTemplateType$mail() && classification == $KeywordRegistry.documentTemplateTypeCategory$serial() 
-            && !BulkMailUtils.isValidTemplateType(type)
-    // Single mail
-     || kind == $KeywordRegistry.documentTemplateType$mail() && classification == $KeywordRegistry.documentTemplateTypeCategory$single() 
-            && type != DocumentTemplate.types.EML && type != DocumentTemplate.types.HTML && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
-    // Single letter
-     || kind == $KeywordRegistry.documentTemplateType$letter() && classification == $KeywordRegistry.documentTemplateTypeCategory$single()
-            && type != DocumentTemplate.types.DOCX && type != DocumentTemplate.types.ODT && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
-    // Bulkletter
-     || kind == $KeywordRegistry.documentTemplateType$letter() && classification == $KeywordRegistry.documentTemplateTypeCategory$serial()
-            && type != DocumentTemplate.types.ODT
-    // Modular HTML template
-     || kind == $KeywordRegistry.documentTemplateType$textModular() && classification == $KeywordRegistry.documentTemplateTypeCategory$htmlTemplate()
-            && type != DocumentTemplate.types.HTML
-    // Modular - all except HTML template
-     || kind == $KeywordRegistry.documentTemplateType$textModular() && classification != $KeywordRegistry.documentTemplateTypeCategory$htmlTemplate()
-            && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
-    )
+    var type;
+    if (vars.exists("$context.currentTemplateType"))
+        type = vars.get("$context.currentTemplateType");
+    
+    if (type == "undefined")
+        type = undefined;
+    
+    if (type != undefined)
     {
-        result.string(translate.text("Wrong filetype for the current document template type and classification."))
+        // Bulkmail
+        if (kind == $KeywordRegistry.documentTemplateType$mail() && classification == $KeywordRegistry.documentTemplateTypeCategory$serial() 
+                && !BulkMailUtils.isValidTemplateType(type)
+        // Single mail
+         || kind == $KeywordRegistry.documentTemplateType$mail() && classification == $KeywordRegistry.documentTemplateTypeCategory$single() 
+                && type != DocumentTemplate.types.EML && type != DocumentTemplate.types.HTML && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
+        // Single letter
+         || kind == $KeywordRegistry.documentTemplateType$letter() && classification == $KeywordRegistry.documentTemplateTypeCategory$single()
+                && type != DocumentTemplate.types.DOCX && type != DocumentTemplate.types.ODT && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
+        // Bulkletter
+         || kind == $KeywordRegistry.documentTemplateType$letter() && classification == $KeywordRegistry.documentTemplateTypeCategory$serial()
+                && type != DocumentTemplate.types.ODT
+        // Modular HTML template
+         || kind == $KeywordRegistry.documentTemplateType$textModular() && classification == $KeywordRegistry.documentTemplateTypeCategory$htmlTemplate()
+                && type != DocumentTemplate.types.HTML
+        // Modular - all except HTML template
+         || kind == $KeywordRegistry.documentTemplateType$textModular() && classification != $KeywordRegistry.documentTemplateTypeCategory$htmlTemplate()
+                && type != DocumentTemplate.types.PLAIN && type != DocumentTemplate.types.TXT
+        )
+        {
+            result.string(translate.text("Wrong filetype for the current document template type and classification."))
+        }
     }
 }
\ No newline at end of file
-- 
GitLab