From eb44f1d692c850f0ef394125f6f1e7f06cec8010 Mon Sep 17 00:00:00 2001
From: Thomas Zilio <Dasc3er@users.noreply.github.com>
Date: Thu, 4 Apr 2019 19:52:15 -0700
Subject: [PATCH] Fix #292

Aggiunto pulsante separato per il controllo sulle credenziali email.
---
 modules/smtp/actions.php | 16 +++++++---------
 modules/smtp/buttons.php | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 9 deletions(-)
 create mode 100644 modules/smtp/buttons.php

diff --git a/modules/smtp/actions.php b/modules/smtp/actions.php
index 19009bf88..ee5563b0c 100644
--- a/modules/smtp/actions.php
+++ b/modules/smtp/actions.php
@@ -67,16 +67,14 @@ switch (post('op')) {
             }
         }
 
+        break;
+
+    case 'test':
         $mail = new Mail($id_record);
-        if (!empty($mail)) {
-            if ($mail->testSMTP()) {
-                flash()->info(tr('Connessione SMTP riuscita'));
-            } else {
-                flash()->error(tr('Connessione SMTP non riuscita'));
-            }
-        } else {
-            flash()->error(tr('Errore'));
-        }
+
+        echo json_encode( [
+            'test' => $mail->testSMTP(),
+        ]);
 
         break;
 
diff --git a/modules/smtp/buttons.php b/modules/smtp/buttons.php
new file mode 100644
index 000000000..837522dac
--- /dev/null
+++ b/modules/smtp/buttons.php
@@ -0,0 +1,38 @@
+<?php
+
+echo '
+<button type="button" class="btn btn-primary" onclick="testAccount(this)">
+    <i class="fa fa-id-card-o"></i> '.tr('Controlla credenziali').'
+</button>
+
+<script>
+function testAccount(btn){
+    var restore = buttonLoading(btn);
+
+    $.ajax({
+        url: globals.rootdir + "/actions.php",
+        cache: false,
+        type: "POST",
+        data: {
+            id_module: globals.id_module,
+            id_record: globals.id_record,
+            op: "test",
+        },
+        success: function(data) {
+            buttonRestore(btn, restore);
+            
+            data = JSON.parse(data);
+            if(data.test){
+                swal("'.tr('Connessione SMTP riuscita').'", "'.tr("Connessione all'account SMTP completata con successo").'", "success");
+            }else{
+            swal("'.tr('Connessione SMTP fallita').'", "'.tr("Impossibile connettersi all'account SMTP").'", "error");
+            }
+        },
+        error: function(data) {
+            swal("'.tr('Errore').'", "'.tr('Errore durante il test').'", "error");
+
+            buttonRestore(btn, restore);
+        }
+    });
+}
+</script>';