From d7ee19c1795b41d72e42b3e12ddf370b4edd7729 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Thu, 9 Jul 2020 16:42:35 +0200
Subject: [PATCH] fix: some Ouput fixes

---
 bin/backend/controls/OutputDialog.js | 15 ++++++------
 locale.xml                           |  4 ++--
 src/QUI/ERP/Output/Output.php        | 34 ++++++++++++++--------------
 3 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/bin/backend/controls/OutputDialog.js b/bin/backend/controls/OutputDialog.js
index f8d2e4f..0c88ea1 100644
--- a/bin/backend/controls/OutputDialog.js
+++ b/bin/backend/controls/OutputDialog.js
@@ -245,7 +245,8 @@ define('package/quiqqer/erp/bin/backend/controls/OutputDialog', [
                 Form.elements.template.addEvent('change', function (event) {
                     self.$Template = {
                         id      : event.target.value,
-                        provider: event.target.get('data-provider')
+                        provider: event.target.getElement('option[value="' + event.target.value + '"]')
+                            .get('data-provider')
                     };
 
                     self.$renderPreview();
@@ -373,8 +374,8 @@ define('package/quiqqer/erp/bin/backend/controls/OutputDialog', [
                         id   : entityId,
                         t    : self.getAttribute('entityType'),
                         oid  : self.getId(),
-                        tpl  : Form.elements.template.value,
-                        tplpr: Form.elements.template.get('data-provider')
+                        tpl  : self.$Template.id,
+                        tplpr: self.$Template.provider
                     }),
                     id    : id,
                     styles: {
@@ -427,8 +428,8 @@ define('package/quiqqer/erp/bin/backend/controls/OutputDialog', [
                         id   : entityId,
                         t    : self.getAttribute('entityType'),
                         oid  : self.getId(),
-                        tpl  : Form.elements.template.value,
-                        tplpr: Form.elements.template.get('data-provider')
+                        tpl  : self.$Template.id,
+                        tplpr: self.$Template.provider
                     }),
                     id    : id,
                     styles: {
@@ -584,8 +585,8 @@ define('package/quiqqer/erp/bin/backend/controls/OutputDialog', [
                     'package'       : 'quiqqer/erp',
                     entityId        : self.getAttribute('entityId'),
                     entityType      : self.getAttribute('entityType'),
-                    template        : Form.elements.template.value,
-                    templateProvider: Form.elements.template.get('data-provider'),
+                    template        : self.$Template.id,
+                    templateProvider: self.$Template.provider,
                     mailSubject     : self.$Mail.subject,
                     mailContent     : self.$Mail.content,
                     onError         : reject
diff --git a/locale.xml b/locale.xml
index 152db02..88807e8 100644
--- a/locale.xml
+++ b/locale.xml
@@ -416,8 +416,8 @@
             <en><![CDATA[No templates found]]></en>
         </locale>
         <locale name="controls.OutputDialog.no_preview">
-            <de><![CDATA[Die Vorschau ist aktuell nicht verfügbar, da keine Vorlage ausgewählt oder gefunden wurde.]]></de>
-            <en><![CDATA[The preview is currently not available because no template was selected or found.]]></en>
+            <de><![CDATA[Das Dokument ist aktuell nicht verfügbar, da keine Vorlage ausgewählt oder gefunden wurde.]]></de>
+            <en><![CDATA[The document is currently not available because no template was selected or found.]]></en>
         </locale>
         <locale name="controls.OutputDialog.preview_error">
             <de><![CDATA[Die Vorschau konnte leider nicht geladen werden. Bitte prüfen Sie die Fehler-Logs oder kontaktieren Sie einen Administrator.]]></de>
diff --git a/src/QUI/ERP/Output/Output.php b/src/QUI/ERP/Output/Output.php
index 0c62fd2..10491ea 100644
--- a/src/QUI/ERP/Output/Output.php
+++ b/src/QUI/ERP/Output/Output.php
@@ -400,16 +400,16 @@ protected static function getAllOutputProviders()
                 }
 
                 /** @var OutputProviderInterface $class */
-                $class = $packageProvider['erpOutput'][0];
+                foreach ($packageProvider['erpOutput'] as $class) {
+                    if (!\class_exists($class)) {
+                        continue;
+                    }
 
-                if (!\class_exists($class)) {
-                    continue;
+                    $providerClasses[] = [
+                        'class'   => $class,
+                        'package' => $installedPackage['name']
+                    ];
                 }
-
-                $providerClasses[] = [
-                    'class'   => $class,
-                    'package' => $installedPackage['name']
-                ];
             } catch (QUI\Exception $Exception) {
                 QUI\System\Log::writeException($Exception);
             }
@@ -443,17 +443,17 @@ protected static function getAllOutputTemplateProviders()
                 }
 
                 /** @var OutputTemplateProviderInterface $class */
-                $class = $packageProvider['erpOutputTemplate'][0];
+                foreach ($packageProvider['erpOutputTemplate'] as $class) {
+                    if (!\class_exists($class)) {
+                        continue;
+                    }
 
-                if (!\class_exists($class)) {
-                    continue;
+                    $providerClasses[] = [
+                        'class'           => $class,
+                        'package'         => $installedPackage['name'],
+                        'isSystemDefault' => $installedPackage['name'] === 'quiqqer/invoice-accounting-template'
+                    ];
                 }
-
-                $providerClasses[] = [
-                    'class'           => $class,
-                    'package'         => $installedPackage['name'],
-                    'isSystemDefault' => $installedPackage['name'] === 'quiqqer/invoice-accounting-template'
-                ];
             } catch (QUI\Exception $Exception) {
                 QUI\System\Log::writeException($Exception);
             }
-- 
GitLab