From bf0d6914b9f054b5079fa44ac81a9d73bc0f1a29 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Sun, 23 Feb 2020 21:54:59 +0100
Subject: [PATCH] FEAT #12072 Reload only sended email after some secondes

---
 .../sended-resource-list.component.ts         | 26 ++++++++++++++++++-
 src/frontend/lang/lang-en.ts                  |  1 +
 src/frontend/lang/lang-fr.ts                  |  1 +
 src/frontend/lang/lang-nl.ts                  |  1 +
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/frontend/app/sendedResource/sended-resource-list.component.ts b/src/frontend/app/sendedResource/sended-resource-list.component.ts
index 0732d662ec0..04b0cfd73b5 100644
--- a/src/frontend/app/sendedResource/sended-resource-list.component.ts
+++ b/src/frontend/app/sendedResource/sended-resource-list.component.ts
@@ -267,7 +267,31 @@ export class SendedResourceListComponent implements OnInit {
                 tap(() => {
                     this.loadList();
                     setTimeout(() => {
-                        this.loadList(); 
+                        this.sendedResources.map((draftElement: any) => {
+                            if (draftElement.status == 'WAITING' && draftElement.type == 'email') {
+                                this.http.get(`../../rest/emails/${draftElement.id}`).pipe(
+                                    tap((data: any) => {
+                                        if (data.status == 'SENT' || data.status == 'ERROR') {
+                                            if (data.status == 'SENT') {
+                                                this.notify.success(this.lang.emailSent);
+                                            } else {
+                                                this.notify.error(this.lang.emailCannotSent);
+                                            }
+                                            this.sendedResources.map((element: any, key: number) => {
+                                                if (element.id == draftElement.id && element.type == 'email') {
+                                                    this.sendedResources[key].status = data.status;
+                                                    this.sendedResources[key].sendDate = data.sendDate;
+                                                }
+                                            });
+                                        }
+                                    })
+                                ).subscribe();
+                            }
+                        });
+                        setTimeout(() => {
+                            this.dataSource = new MatTableDataSource(this.sendedResources);
+                            this.dataSource.sort = this.sort;
+                        }, 0);
                     }, 3000);
                 }),
                 catchError((err: any) => {
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 22190e85af1..14975ff0731 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1554,6 +1554,7 @@ export const LANG_EN = {
     "emptySubject" : "Empty subject",
     "noAvailableMenu" : "No available menu",
     "emailSent" : "Email sent",
+    "emailCannotSent" : "Error during sending email",
     "editAcknowledgementReceipt" : "Edit the acknowledgement receipt",
     "insufficientPrivilege" : "Privilege insuffisant",
     "cannotMergeTags" : "This tag has a parent or children : impossible to merge tags",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 6e1074f975c..10c1ac88958 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1593,6 +1593,7 @@ export const LANG_FR = {
     "emptySubject" : "Objet vide",
     "noAvailableMenu" : "Aucun menu disponible",
     "emailSent" : "Courriel envoyé",
+    "emailCannotSent" : "Erreur lors de l'envoi du courriel",
     "editAcknowledgementReceipt" : "Editer l'accusé de réception",
     "insufficientPrivilege" : "Privilège insuffisant",
     "cannotMergeTags" : "Ce mot-clé possède un parent ou des enfants : impossible de le fusionner avec un autre mot clé.",
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 61010d4644f..c4767a2e1d3 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1579,6 +1579,7 @@ export const LANG_NL = {
     "emptySubject" : "Empty subject", //_TO_TRANSLATE
     "noAvailableMenu" : "No available menu", //_TO_TRANSLATE
     "emailSent" : "Email sent", //_TO_TRANSLATE
+    "emailCannotSent" : "Error during sending email", //_TO_TRANSLATE
     "editAcknowledgementReceipt" : "Edit the acknowledgement receipt", //_TO_TRANSLATE
     "insufficientPrivilege" : "Privilege insuffisant", //TRANSLATE
     "cannotMergeTags" : "This tag has a parent or children : impossible to merge tags",//_TO_TRANSLATE
-- 
GitLab