From 743c61d68046d099dd831856020441e9ed26033d Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Wed, 30 Jan 2019 15:40:39 +0100
Subject: [PATCH] FEAT #9062 add var lang

---
 .../list/filters/filters-tool.component.ts    |  43 +++---
 .../summarySheet/summary-sheet.component.html |  40 +++---
 .../summarySheet/summary-sheet.component.scss |  36 +++++
 .../summarySheet/summary-sheet.component.ts   | 136 +++++++++++-------
 src/frontend/lang/lang-en.ts                  |  16 ++-
 src/frontend/lang/lang-fr.ts                  |  14 ++
 src/frontend/lang/lang-nl.ts                  |  14 ++
 7 files changed, 207 insertions(+), 92 deletions(-)

diff --git a/src/frontend/app/list/filters/filters-tool.component.ts b/src/frontend/app/list/filters/filters-tool.component.ts
index 615b1e9be7f..5c6fed82114 100644
--- a/src/frontend/app/list/filters/filters-tool.component.ts
+++ b/src/frontend/app/list/filters/filters-tool.component.ts
@@ -76,7 +76,7 @@ export class FiltersToolComponent implements OnInit {
 
         if (typeof value === 'string') {
             const filterValue = value.toLowerCase();
-                
+
             return opt.filter(item => this.latinisePipe.transform(item['label'].toLowerCase()).indexOf(this.latinisePipe.transform(filterValue)) != -1);
         }
     };
@@ -198,7 +198,7 @@ export class FiltersToolComponent implements OnInit {
                             {
                                 id: 'categories',
                                 value: element.id,
-                                label: (element.id !== null ? element.label : this.lang.undefined) ,
+                                label: (element.id !== null ? element.label : this.lang.undefined),
                                 count: element.count
                             }
                         )
@@ -210,7 +210,7 @@ export class FiltersToolComponent implements OnInit {
                             {
                                 id: 'priorities',
                                 value: element.id,
-                                label: (element.id !== null ? element.label : this.lang.undefined) ,
+                                label: (element.id !== null ? element.label : this.lang.undefined),
                                 count: element.count
                             }
                         )
@@ -222,7 +222,7 @@ export class FiltersToolComponent implements OnInit {
                             {
                                 id: 'statuses',
                                 value: element.id,
-                                label: (element.id !== null ? element.label : this.lang.undefined) ,
+                                label: (element.id !== null ? element.label : this.lang.undefined),
                                 count: element.count
                             }
                         )
@@ -236,7 +236,7 @@ export class FiltersToolComponent implements OnInit {
                             {
                                 id: 'entities',
                                 value: element.entityId,
-                                label: (element.id !== null ? element.label : this.lang.undefined) ,
+                                label: (element.id !== null ? element.label : this.lang.undefined),
                                 count: element.count
                             }
                         )
@@ -250,7 +250,7 @@ export class FiltersToolComponent implements OnInit {
                             {
                                 id: 'subEntities',
                                 value: element.entityId,
-                                label: (element.id !== null ? element.label : this.lang.undefined) ,
+                                label: (element.id !== null ? element.label : this.lang.undefined),
                                 count: element.count
                             }
                         )
@@ -262,7 +262,7 @@ export class FiltersToolComponent implements OnInit {
                         this.stateForm.controls['stateGroup'].setValue(this.metaSearchInput);
                         this.metaSearchInput = '';
                     }, 200);
-                } 
+                }
             });
 
         this.stateGroupOptions = this.stateForm.get('stateGroup')!.valueChanges
@@ -274,25 +274,26 @@ export class FiltersToolComponent implements OnInit {
 
     openListAdmin(): void {
         this.dialog.open(ListAdministrationComponent, {
-          width: '800px',
-          data: {
-              ownerId   : this.currentBasketInfo.ownerId,
-              groupId   : this.currentBasketInfo.groupId,
-              basketId  : this.currentBasketInfo.basketId,
-              filters   : this.filtersListService.getUrlFilters()
-          }
+            width: '800px',
+            data: {
+                ownerId: this.currentBasketInfo.ownerId,
+                groupId: this.currentBasketInfo.groupId,
+                basketId: this.currentBasketInfo.basketId,
+                filters: this.filtersListService.getUrlFilters()
+            }
         });
     }
 
     openSummarySheet(): void {
         this.dialog.open(SummarySheetComponent, {
-          width: '800px',
-          data: {
-              ownerId   : this.currentBasketInfo.ownerId,
-              groupId   : this.currentBasketInfo.groupId,
-              basketId  : this.currentBasketInfo.basketId,
-              filters   : this.filtersListService.getUrlFilters()
-          }
+            autoFocus: false,
+            width: '800px',
+            data: {
+                ownerId: this.currentBasketInfo.ownerId,
+                groupId: this.currentBasketInfo.groupId,
+                basketId: this.currentBasketInfo.basketId,
+                filters: this.filtersListService.getUrlFilters()
+            }
         });
     }
 }
diff --git a/src/frontend/app/list/summarySheet/summary-sheet.component.html b/src/frontend/app/list/summarySheet/summary-sheet.component.html
index 3e7f398b480..69747cb5267 100644
--- a/src/frontend/app/list/summarySheet/summary-sheet.component.html
+++ b/src/frontend/app/list/summarySheet/summary-sheet.component.html
@@ -1,21 +1,21 @@
-<div mat-dialog-content>
+<div mat-dialog-content class="summarySheet">
     <div *ngIf="loading" class="loader">
         <mat-spinner></mat-spinner>
     </div>
-    <div class="row" style="font-size:10px;padding: 10px;">
-        <div class="col-md-4" style="text-align: left;">
-            QrCode
+    <div class="row header">
+        <div class="col-md-4 text-left" [class.disabled]="!withQrcode">
+            <mat-slide-toggle [(ngModel)]="withQrcode" color="primary">res_id (QrCode)</mat-slide-toggle>
         </div>
-        <div class="col-md-4" style="text-align: center;">
-            Fiche de liaison <br/> Numéro chrono
+        <div class="col-md-4 text-center">
+            {{lang.summarySheet}} - {{lang.chronoNumber}}
         </div>
-        <div class="col-md-4" style="text-align: right;">
-            Nom de l'application / Date d'impression
+        <div class="col-md-4 text-right">
+            {{lang.appName}} / {{lang.printDate}}
         </div>
     </div>
-    <div class="row" style="text-align: center;font-weight: bold;font-size: 24px;padding: 10px;">
-        <div class="col-md-12" style="border: solid 1px black;">
-            Objet
+    <div class="row">
+        <div class="col-md-12 title">
+            {{lang.object}}
         </div>
     </div>
     <div class="row">
@@ -23,27 +23,25 @@
             <div cdkDropList #dataAvailableList="cdkDropList" [cdkDropListData]="dataAvailable" class="cdk-list"
                 (cdkDropListDropped)="drop($event)">
                 <ng-container *ngFor="let item of dataAvailable">
-                <div class="columns" [class.disabled]="!item.enabled"  *ngIf="item.unit !== 'qrcode'" cdkDrag id="{{item.unit}}"
-                    style="position: relative;">
-                    
-                        <div style="position: absolute;top: 0;">
+                    <div class="columns" [class.disabled]="!item.enabled" *ngIf="item.unit !== 'qrcode'" cdkDrag id="{{item.unit}}"
+                        style="position: relative;">
+                        <div class="unitTitle">
                             {{item.label}}
                         </div>
-                        <div class="row" style="padding-top: 20px;width: 100%;opacity:0.5;">
+                        <div class="row" class="unitData">
                             <div class="{{item.css}}" *ngFor="let itemData of item.desc">
                                 {{itemData}}
                             </div>
                         </div>
-                        <mat-slide-toggle [(ngModel)]="item.enabled" color="primary" style="position: absolute;right:10px;"></mat-slide-toggle>
-                    
-                </div>
-            </ng-container>
+                        <mat-slide-toggle [(ngModel)]="item.enabled" color="primary" class="unitToggle"></mat-slide-toggle>
+                    </div>
+                </ng-container>
             </div>
         </div>
     </div>
 </div>
 
 <div mat-dialog-actions class="actions">
-    <button mat-raised-button mat-button color="primary" (click)="genSummarySheets();">Générer les fiches de liaisons</button>
+    <button mat-raised-button mat-button color="primary" (click)="genSummarySheets();">{{lang.genSummarySheets}}</button>
     <button mat-raised-button mat-button [mat-dialog-close]="">{{lang.cancel}}</button>
 </div>
\ No newline at end of file
diff --git a/src/frontend/app/list/summarySheet/summary-sheet.component.scss b/src/frontend/app/list/summarySheet/summary-sheet.component.scss
index e4f2eb72632..42d864004f3 100644
--- a/src/frontend/app/list/summarySheet/summary-sheet.component.scss
+++ b/src/frontend/app/list/summarySheet/summary-sheet.component.scss
@@ -14,6 +14,42 @@
     padding-bottom: 50px;
 }
 
+::ng-deep.mat-slide-toggle-content {
+    color: rgba(0, 0, 0, 0.87);
+}
+
+.summarySheet {
+    .header {
+        font-size: 10px;
+        padding: 10px;
+    }
+
+    .title {
+        text-align: center;
+        font-weight: bold;
+        font-size: 24px;
+        margin-top: 10px;
+        margin-bottom: 10px;
+        border: solid 1px black;
+    }
+
+    .unitTitle {
+        position: absolute;
+        top: 0;
+    }
+
+    .unitData {
+        padding-top: 20px;
+        width: 100%;
+        opacity: 0.5;
+    }
+
+    .unitToggle {
+        position: absolute;
+        right: 10px;
+    }
+}
+
 .cdk-list {
     width: 100%;
     max-width: 100%;
diff --git a/src/frontend/app/list/summarySheet/summary-sheet.component.ts b/src/frontend/app/list/summarySheet/summary-sheet.component.ts
index af38e2319b5..d7043f09f0f 100644
--- a/src/frontend/app/list/summarySheet/summary-sheet.component.ts
+++ b/src/frontend/app/list/summarySheet/summary-sheet.component.ts
@@ -1,85 +1,119 @@
-import { Component, OnInit, ViewChild, Inject } from '@angular/core';
+import { Component, OnInit, Inject } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { LANG } from '../../translate.component';
 import { NotificationService } from '../../notification.service';
 import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
-import {MAT_DIALOG_DATA} from '@angular/material';
+import { MAT_DIALOG_DATA } from '@angular/material';
 
 declare function $j(selector: any): any;
 
 @Component({
-    templateUrl : "summary-sheet.component.html",
-    styleUrls   : ['summary-sheet.component.scss'],
-    providers   : [NotificationService],
+    templateUrl: "summary-sheet.component.html",
+    styleUrls: ['summary-sheet.component.scss'],
+    providers: [NotificationService],
 })
 export class SummarySheetComponent implements OnInit {
 
-    lang            : any       = LANG;
-    loading         : boolean   = false;
+    lang: any = LANG;
+    loading: boolean = false;
 
-    dataAvailable : any[] = [
+    withQrcode: boolean = true;
+
+    dataAvailable: any[] = [
         {
-            unit : 'primaryInformations',
-            label : 'Informations pricipales',
+            unit: 'primaryInformations',
+            label: this.lang.primaryInformations,
             css: 'col-md-6 text-center',
-            desc : ['Date du courrier','Date d\'arrivée','Nature', 'Crée le', 'Type de document', 'Opérateur'],
-            enabled : true
+            desc: [
+                this.lang.mailDate, 
+                this.lang.arrivalDate, 
+                this.lang.nature, 
+                this.lang.creation_date, 
+                this.lang.mailType, 
+                this.lang.initiator
+            ],
+            enabled: true
         },
         {
-            unit : 'senderRecipientInformations',
-            label : 'Informations de destination',
+            unit: 'senderRecipientInformations',
+            label: this.lang.senderRecipientInformations,
             css: 'col-md-6 text-center',
-            desc : ['Expéditeur','Destinataire'],
-            enabled : true
+            desc: [
+                this.lang.sender, 
+                this.lang.recipient
+            ],
+            enabled: true
         },
         {
-            unit : 'secondaryInformations',
-            label : 'Informations secondaires',
+            unit: 'secondaryInformations',
+            label: this.lang.secondaryInformations,
             css: 'col-md-6 text-center',
-            desc : ['Catégorie','Statut','Priorité', 'Date limite de traitement'],
-            enabled : true
+            desc: [
+                this.lang.category_id,
+                this.lang.status,
+                this.lang.priority, 
+                this.lang.processLimitDate
+            ],
+            enabled: true
         },
         {
-            unit : 'diffusionList',
-            label : 'Liste de diffusion',
-            css: 'col-md-12 text-center',
-            desc : ['Attributaire','En copie(s)'],
-            enabled : true
+            unit: 'diffusionList',
+            label: this.data.lang.diffusionList,
+            css: 'col-md-6 text-center',
+            desc: [
+                this.lang.dest_user, 
+                this.lang.copyUsersEntities
+            ],
+            enabled: true
         },
         {
-            unit : 'avisWorkflow',
-            label : 'Circuit d\'avis',
+            unit: 'avisWorkflow',
+            label: this.lang.avis,
             css: 'col-md-4 text-center',
-            desc : ['Prénom Nom (entité traitante)','Rôle', 'Date de traitement'],
-            enabled : true
+            desc: [
+                this.lang.firstname + ' ' + this.lang.lastname + '('+ this.lang.destinationEntity +')', 
+                this.lang.role, 
+                this.lang.processDate
+            ],
+            enabled: true
         },
         {
-            unit : 'visaWorkflow',
-            label : 'Circuit de visa',
+            unit: 'visaWorkflow',
+            label: this.lang.visa,
             css: 'col-md-4 text-center',
-            desc : ['Prénom Nom (entité traitante)','Rôle', 'Date de traitement'],
-            enabled : true
+            desc: [
+                this.lang.firstname + ' ' + this.lang.lastname + '('+ this.lang.destinationEntity +')', 
+                this.lang.role, 
+                this.lang.processDate
+            ],
+            enabled: true
         },
         {
-            unit : 'notes',
-            label : 'Annotations',
+            unit: 'notes',
+            label: this.lang.notes,
             css: 'col-md-4 text-center',
-            desc : ['Prénom Nom','Date de création','Contenu'],
-            enabled : true
+            desc: [
+                this.lang.firstname + ' ' + this.lang.lastname, 
+                this.lang.creation_date, 
+                this.lang.content
+            ],
+            enabled: true
         },
         {
-            unit : 'freeField',
-            label : 'Commentaire(s)',
+            unit: 'freeField',
+            label: this.lang.comments,
             css: 'col-md-12 text-center',
-            desc : ['Note libre'],
-            enabled : true
+            desc: [
+                this.lang.freeNote
+            ],
+            enabled: true
         }
     ];
 
     constructor(public http: HttpClient, private notify: NotificationService, @Inject(MAT_DIALOG_DATA) public data: any) { }
 
     ngOnInit(): void {
-       //TO DO GET PARAM SUMMARY SHEET
+        //TO DO GET PARAM SUMMARY SHEET
     }
 
     drop(event: CdkDragDrop<string[]>) {
@@ -90,19 +124,23 @@ export class SummarySheetComponent implements OnInit {
 
     genSummarySheets() {
         this.loading = true;
-        let currElemData: any[] = [{
-            unit : 'qrcode',
-            label : '',
-        }];
+        let currElemData: any[] = [];
+
+        if (this.withQrcode) {
+            currElemData.push({
+                unit: 'qrcode',
+                label: '',
+            });
+        }
         this.dataAvailable.forEach((element: any) => {
             if (element.enabled) {
                 currElemData.push({
-                    unit : element.unit,
-                    label : element.label,
+                    unit: element.unit,
+                    label: element.label,
                 });
             }
         });
-        this.http.get('../../rest/resourcesList/users/' + this.data.ownerId + '/groups/' + this.data.groupId + '/baskets/' + this.data.basketId + '/summarySheets?units=' + btoa(JSON.stringify(currElemData)) + '&init' + this.data.filters, {responseType: "blob"})
+        this.http.get('../../rest/resourcesList/users/' + this.data.ownerId + '/groups/' + this.data.groupId + '/baskets/' + this.data.basketId + '/summarySheets?units=' + btoa(JSON.stringify(currElemData)) + '&init' + this.data.filters, { responseType: "blob" })
             .subscribe((data) => {
                 let downloadLink = document.createElement('a');
                 downloadLink.href = window.URL.createObjectURL(data);
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 4c5f70c4002..9f092bf5944 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -767,7 +767,8 @@ export const LANG_EN = {
     "recipient"                                     : "Recipient",
     "typist"                                     : "Typist",
     "signatureDate"                                     : "Signature date",
-    "comment"                                     : "Comments",
+    "comment"                                     : "Comment",
+    "comments"                                     : "Comments",
     "delimiter"                                     : "Delimiter",
     "datasToExport"                                     : "Datas to export",
     "searchDatas"                                     : "Search datas",
@@ -777,4 +778,17 @@ export const LANG_EN = {
     "chosenDatas"                                     : "Chosen data(s)",
     "removeAllDatas"                                     : "Remove all datas",
     "toExport"                                     : "Export",
+    "summarySheet"                                     : "Summary sheet",
+    "appName"                                     : "Application name",
+    "printDate"                                     : "Print date",
+    "genSummarySheets"                                     : "Generate Summary sheets",
+    "mailDate"                                     : "Mail date",
+    "mailType"                                     : "Mail type",
+    "initiator"                                     : "Initiator",
+    "primaryInformations"                            : "Primary informations",
+    "secondaryInformations"                            : "Secondary informations",
+    "senderRecipientInformations"                            : "Sender / Recipient informations",
+    "processDate"                            : "Process date",
+    "content"                            : "Content",
+    "freeNote"                            : "Free note",
 };
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index d9486e85286..3806b206654 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -794,6 +794,7 @@ export const LANG_FR = {
     "typist"                                     : "Rédacteur",
     "signatureDate"                                     : "Date de signature",
     "comment"                                     : "Commentaire",
+    "comments"                                     : "Commentaires",
     "delimiter"                                     : "Délimiteur",
     "datasToExport"                                     : "Données à exporter",
     "searchDatas"                                     : "Rechercher une donnée",
@@ -803,4 +804,17 @@ export const LANG_FR = {
     "chosenDatas"                                     : "Donnée(s) sélectionnée(s)",
     "removeAllDatas"                                     : "Enlever toutes les données",
     "toExport"                                     : "Exporter",
+    "summarySheet"                                     : "Fiche de liaison",
+    "appName"                                     : "Nom de l'application",
+    "printDate"                                     : "Date d'impression",
+    "genSummarySheets"                                     : "Générer les fiches de liaisons",
+    "mailDate"                                     : "Date du courrier",
+    "mailType"                                     : "Type de courrier",
+    "initiator"                                     : "Opérateur",
+    "primaryInformations"                            : "Informations pricipales",
+    "secondaryInformations"                            : "Informations secondaires",
+    "senderRecipientInformations"                            : "Informations de destination",
+    "processDate"                            : "Date de traitement",
+    "content"                            : "Contenu",
+    "freeNote"                            : "Note libre",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 2d3ce1854fa..cf2e020c496 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -797,6 +797,7 @@ export const LANG_NL = {
     "typist"                                     : "_TO_TRANSLATE",
     "signatureDate"                                     : "_TO_TRANSLATE",
     "comment"                                     : "_TO_TRANSLATE",
+    "comments"                                     : "_TO_TRANSLATE",
     "delimiter"                                     : "_TO_TRANSLATE",
     "datasToExport"                                     : "_TO_TRANSLATE",
     "searchDatas"                                     : "_TO_TRANSLATE",
@@ -806,4 +807,17 @@ export const LANG_NL = {
     "chosenDatas"                                     : "_TO_TRANSLATE",
     "removeAllDatas"                                     : "_TO_TRANSLATE",
     "toExport"                                     : "_TO_TRANSLATE",
+    "summarySheet"                                     : "_TO_TRANSLATE",
+    "appName"                                     : "_TO_TRANSLATE",
+    "printDate"                                     : "_TO_TRANSLATE",
+    "genSummarySheets"                                     : "_TO_TRANSLATE",
+    "mailDate"                                     : "_TO_TRANSLATE",
+    "mailType"                                     : "_TO_TRANSLATE",
+    "initiator"                                     : "_TO_TRANSLATE",
+    "primaryInformations"                                     : "_TO_TRANSLATE",
+    "secondaryInformations"                                     : "_TO_TRANSLATE",
+    "senderRecipientInformations"                                     : "_TO_TRANSLATE",
+    "processDate"                                     : "_TO_TRANSLATE",
+    "content"                                     : "_TO_TRANSLATE",
+    "freeNote"                                     : "_TO_TRANSLATE",
 };
-- 
GitLab