From c547d3559295c7fb64bc7b2fe766e025a20d60e4 Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Wed, 18 Mar 2020 12:26:03 +0100
Subject: [PATCH] FEAT #13253 TIME 1:30 add attached elements

---
 .../sent-numeric-package-page.component.html  | 12 +--
 .../sent-numeric-package-page.component.scss  |  6 ++
 .../sent-numeric-package-page.component.ts    | 74 +++++++++++++------
 src/frontend/lang/lang-en.ts                  |  7 +-
 src/frontend/lang/lang-fr.ts                  |  7 +-
 src/frontend/lang/lang-nl.ts                  |  7 +-
 6 files changed, 80 insertions(+), 33 deletions(-)

diff --git a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
index 1b0a9d89227..f0031cff034 100644
--- a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
+++ b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
@@ -92,14 +92,14 @@
         </div>
         <div style="overflow: auto;max-height: 300px;">
             <mat-list *ngIf="numericPackage.mainExchangeDoc !== null">
-                <h3 mat-subheader class="attachLabel">{{lang.mainDocNumericPackage}}</h3>
+                <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.mainDocNumericPackageToSend : lang.mainDocNumericPackage}}</h3>
                 <mat-list-item class="numericPackageAttach" *ngIf="numericPackage.mainExchangeDoc !== null">
                     <p mat-line class="numericPackageAttachItem">
                         <span
                             style="overflow: hidden;text-overflow: ellipsis;">{{numericPackage.mainExchangeDoc.label}}</span>
                         <span class="badge">{{numericPackage.mainExchangeDoc.typeLabel}}</span>
                         <span class="subInfo">.{{numericPackage.mainExchangeDoc.format}}</span>
-                        <button mat-icon-button color="warn" (click)="numericPackage.mainExchangeDoc=null">
+                        <button mat-icon-button *ngIf="canManageMail()" color="warn" (click)="numericPackage.mainExchangeDoc=null">
                             <mat-icon class="fa fa-trash"></mat-icon>
                         </button>
                     </p>
@@ -107,14 +107,14 @@
             </mat-list>
             <mat-divider *ngIf="emailAttach.length > 0"></mat-divider>
             <mat-list *ngIf="emailAttach.length > 0">
-                <h3 mat-subheader class="attachLabel">{{lang.attachmentsNumericPackage}}</h3>
+                <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.attachmentsNumericPackageToSend : lang.attachmentsNumericPackage}}</h3>
                 <mat-list-item class="numericPackageAttach" *ngFor="let attach of emailAttach; let i=index">
                     <p mat-line class="numericPackageAttachItem">
                         <span style="overflow: hidden;text-overflow: ellipsis;"
                             [title]="attach.label">{{attach.label}}</span>
                         <span class="badge">{{attach.typeLabel}}</span>
                         <span class="subInfo">.{{attach.format}}</span>
-                        <button mat-icon-button color="warn" (click)="removeAttach(i)">
+                        <button mat-icon-button *ngIf="canManageMail()" color="warn" (click)="removeAttach(i)">
                             <mat-icon class="fa fa-trash"></mat-icon>
                         </button>
                     </p>
@@ -133,7 +133,8 @@
                 (afterSelected)="mergeSignEmailTemplate($event)">
             </plugin-select-search>
         </div>-->
-        <div class="row" style="margin: 0;" *ngIf="!canManageMail()">
+        <mat-divider></mat-divider>
+        <div class="row" style="margin: 0;padding-top: 10px;" *ngIf="!canManageMail()">
             <div class="col-md-9">
                 <label class="attachLabel">{{lang.actionsHistory}}</label>
                 <div class="messageExchangeHistory">
@@ -146,6 +147,7 @@
                         </div>
                         
                     </div>
+                    <div *ngIf="messageReview.length === 0" class="noAction">{{lang.noActionProcessed}}</div>
                 </div>
             </div>
             <div class="col-md-3 text-center">
diff --git a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.scss b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.scss
index dfd3cf2df92..2a8bd2cec10 100644
--- a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.scss
+++ b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.scss
@@ -112,4 +112,10 @@
     &Date {
         color: $primary;
     }
+}
+
+.noAction {
+    padding: 10px;
+    opacity: 0.5;
+    font-style: italic;
 }
\ No newline at end of file
diff --git a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
index 07a0ca5c143..928e198d460 100644
--- a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
+++ b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
@@ -209,12 +209,42 @@ export class SentNumericPackagePageComponent implements OnInit {
                     this.reference = data.reference;
                     this.messageReview = data.messageReview.map((item: any) => {
                         return {
-                            date : this.functions.formatFrenchDateToObjectDate(item.substring(1,19),'/'),
-                            content : item.substring(21),
+                            date: this.functions.formatFrenchDateToObjectDate(item.substring(1, 19), '/'),
+                            content: item.substring(21),
                         }
                     });
                     this.messageReview = this.reversePipe.transform(this.messageReview);
 
+
+                    console.log(this.emailAttachTool);
+
+                    if (data.disposition.tablename === 'res_letterbox') {
+                        this.numericPackage.mainExchangeDoc = {
+                            ...this.emailAttachTool['document'].list[0],
+                            typeLabel: this.lang.mainDocument,
+                            type: 'document'
+                        }
+                        
+                        this.emailAttach = this.emailAttach.concat(this.emailAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1));
+                    } else {
+                        this.numericPackage.mainExchangeDoc = {
+                            ...this.emailAttachTool['attachments'].list.filter((item: any) => item.id == data.disposition.res_id)[0],
+                            type: 'attachments'
+                        }
+                        this.emailAttach = this.emailAttach.concat(this.emailAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1 && item.id != data.disposition.res_id));
+
+                    }
+
+                    if (data.resMasterAttached && data.disposition.tablename !== 'res_letterbox') {
+                        this.emailAttach.push({
+                            ...this.emailAttachTool['document'].list[0],
+                            typeLabel: this.lang.mainDocument,
+                            type: 'document'
+                        });
+                    }
+
+                    this.emailAttach = this.emailAttach.concat(this.emailAttachTool['notes'].list.filter((item: any) => data.notes.indexOf(item.id.toString()) > -1));
+
                     resolve(true);
                 }),
                 catchError((err) => {
@@ -406,7 +436,7 @@ export class SentNumericPackagePageComponent implements OnInit {
     }
 
     deleteEmail() {
-	// TODO : useless ? can not delete m2m
+        // TODO : useless ? can not delete m2m
         const dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.delete, msg: this.lang.confirmAction } });
 
         dialogRef.afterClosed().pipe(
@@ -513,28 +543,28 @@ export class SentNumericPackagePageComponent implements OnInit {
         this.http.get(`../../rest/messageExchanges/${this.data.emailId}/archiveContent`, { responseType: "blob" }).pipe(
             tap((data: any) => {
                 let downloadLink = document.createElement('a');
-                    downloadLink.href = window.URL.createObjectURL(data);
+                downloadLink.href = window.URL.createObjectURL(data);
 
-                    let today: any;
-                    let dd: any;
-                    let mm: any;
-                    let yyyy: any;
+                let today: any;
+                let dd: any;
+                let mm: any;
+                let yyyy: any;
 
-                    today = new Date();
-                    dd = today.getDate();
-                    mm = today.getMonth() + 1;
-                    yyyy = today.getFullYear();
+                today = new Date();
+                dd = today.getDate();
+                mm = today.getMonth() + 1;
+                yyyy = today.getFullYear();
 
-                    if (dd < 10) {
-                        dd = '0' + dd;
-                    }
-                    if (mm < 10) {
-                        mm = '0' + mm;
-                    }
-                    today = dd + '-' + mm + '-' + yyyy;
-                    downloadLink.setAttribute('download', this.lang.summarySheetsAlt + "_" + today + ".pdf");
-                    document.body.appendChild(downloadLink);
-                    downloadLink.click();
+                if (dd < 10) {
+                    dd = '0' + dd;
+                }
+                if (mm < 10) {
+                    mm = '0' + mm;
+                }
+                today = dd + '-' + mm + '-' + yyyy;
+                downloadLink.setAttribute('download', this.lang.summarySheetsAlt + "_" + today + ".pdf");
+                document.body.appendChild(downloadLink);
+                downloadLink.click();
             }),
             catchError((err) => {
                 this.notify.handleSoftErrors(err);
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index f89f2c6db0b..2e9cc9a3c71 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1601,8 +1601,10 @@ export const LANG_EN = {
     "attachItemToNumericPackage" : "Attach an element to sending mail",
     "note" : "Note",
     "addNoteToNumericPackage" : "Add a note Ajouter to sending mail",
-    "mainDocNumericPackage" : "Main document of sending mail", 
-    "attachmentsNumericPackage" : "Attachments of sending mail", 
+    "mainDocNumericPackage" : "Main document of sent mail", 
+    "attachmentsNumericPackage" : "Attachments of sent mail", 
+    "mainDocNumericPackageToSend" : "Main document of sending mail", 
+    "attachmentsNumericPackageToSend" : "Attachments of sending mail", 
     "closeSidePanel" : "Close side panel",
     "openSidePanel" : "Open side panel",
     "saveAsPrivateModel" : "Save as private model",
@@ -1610,4 +1612,5 @@ export const LANG_EN = {
     "createFolder" : "Create a folder",
     "downloadNumericPackage" : "Download the numeric package",
     "actionsHistory" : "Actions history",
+    "noActionProcessed": "No action processed",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index a19ecff3b62..41ad95fe466 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1640,8 +1640,10 @@ export const LANG_FR = {
     "mailSubject" : "Objet du courrier", 
     "attachItemToNumericPackage" : "Attacher un document / une pièce jointe au courrier à transmettre", 
     "addNoteToNumericPackage" : "Ajouter une annotation au courrier à transmettre", 
-    "mainDocNumericPackage" : "Document principal du courrier à transmettre", 
-    "attachmentsNumericPackage" : "Pièces attachés du courrier à transmettre", 
+    "mainDocNumericPackage" : "Document principal du courrier transmis", 
+    "attachmentsNumericPackage" : "Pièces attachés du courrier transmis",
+    "mainDocNumericPackageToSend" : "Document principal du courrier à transmettre", 
+    "attachmentsNumericPackageToSend" : "Pièces attachés du courrier à transmettre", 
     "closeSidePanel" : "Fermer le panneau latéral",
     "openSidePanel" : "Ouvrir le panneau latéral",
     "saveAsPrivateModel" : "Enregistrer en tant que modèle privé",
@@ -1649,4 +1651,5 @@ export const LANG_FR = {
     "createFolder" : "Créer un dossier",
     "downloadNumericPackage" : "Télécharger le pli numérique",
     "actionsHistory" : "Historique des actions",
+    "noActionProcessed": "Aucune action effectuée",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 241b4d5b2cc..d09b4069d22 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1626,8 +1626,10 @@ export const LANG_NL = {
     "attachItemToNumericPackage" : "Attach an element to sending mail", //_TO_TRANSLATE
     "note" : "Note", //_TO_TRANSLATE
     "addNoteToNumericPackage" : "Add a note Ajouter to sending mail", //_TO_TRANSLATE
-    "mainDocNumericPackage" : "Main document of sending mail", //_TO_TRANSLATE
-    "attachmentsNumericPackage" : "Attachments of sending mail", //_TO_TRANSLATE
+    "mainDocNumericPackage" : "Main document of sent mail", //_TO_TRANSLATE
+    "attachmentsNumericPackage" : "Attachments of sent mail", //_TO_TRANSLATE
+    "mainDocNumericPackageToSend" : "Main document of sending mail", //_TO_TRANSLATE
+    "attachmentsNumericPackageToSend" : "Attachments of sending mail", //_TO_TRANSLATE
     "closeSidePanel" : "Close side panel", //_TO_TRANSLATE
     "openSidePanel" : "Open side panel", //_TO_TRANSLATE
     "saveAsPrivateModel" : "Save as private model", //_TO_TRANSLATE
@@ -1635,4 +1637,5 @@ export const LANG_NL = {
     "createFolder" : "Create a folder", //_TO_TRANSLATE
     "downloadNumericPackage" : "Download the numeric package", //_TO_TRANSLATE
     "actionsHistory" : "Actions history", //_TO_TRANSLATE
+    "noActionProcessed": "No action processed", //_TO_TRANSLATE
 };
-- 
GitLab