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 5674a609894df9caab3d12ca999f715491cc4cf6..a62dadce588ce4bd5cbf63f67ef8dcdf0076da91 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 @@ -55,19 +55,19 @@ <mat-form-field> <mat-label class="attachLabel">{{lang.mailSubject}}</mat-label> <input matInput [readonly]="!canManageMail()" [(ngModel)]="numericPackage.object" maxlength="70" required> - <button mat-icon-button matSuffix *ngFor="let keyVal of emailAttachTool | keyvalue" - [disabled]="!canManageMail() || emailAttachTool[keyVal.key].list.length === 0" [title]="emailAttachTool[keyVal.key].title" - (click)="$event.stopPropagation();currentEmailAttachTool=keyVal.key;" + <button mat-icon-button matSuffix *ngFor="let keyVal of numericPackageAttachTool | keyvalue" + [disabled]="!canManageMail() || numericPackageAttachTool[keyVal.key].list.length === 0" [title]="numericPackageAttachTool[keyVal.key].title" + (click)="$event.stopPropagation();numericPackageCurrentAttachTool=keyVal.key;" [matMenuTriggerFor]="emailAttachListMenu"> - <mat-icon class="{{emailAttachTool[keyVal.key].icon}}" + <mat-icon class="{{numericPackageAttachTool[keyVal.key].icon}}" [class.activeButton]="isSelectedAttachType(keyVal.key)" color="primary"> </mat-icon> </button> <mat-menu #emailAttachListMenu="matMenu" [class]="'attachListMenu'"> - <ng-container *ngFor="let keyVal of emailAttachTool | keyvalue"> - <ng-container *ngIf="keyVal.key === currentEmailAttachTool"> + <ng-container *ngFor="let keyVal of numericPackageAttachTool | keyvalue"> + <ng-container *ngIf="keyVal.key === numericPackageCurrentAttachTool"> <button mat-menu-item style="line-height: normal;" disableRipple - *ngFor="let attach of emailAttachTool[keyVal.key].list" + *ngFor="let attach of numericPackageAttachTool[keyVal.key].list" [disabled]="isSelectedAttach(attach,keyVal.key)" (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original');"> <span (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original')" @@ -86,7 +86,7 @@ <input matInput [value]="reference" readonly> </mat-form-field> <div class="attachMsg" - *ngIf="numericPackage.mainExchangeDoc === null && emailAttach.length === 0 && canManageMail()"> + *ngIf="numericPackage.mainExchangeDoc === null && numericPackageAttach.length === 0 && canManageMail()"> {{lang.attachItemToNumericPackage}} <i class="fas fa-arrow-up"></i> </div> @@ -105,10 +105,10 @@ </p> </mat-list-item> </mat-list> - <mat-divider *ngIf="emailAttach.length > 0"></mat-divider> - <mat-list *ngIf="emailAttach.length > 0"> + <mat-divider *ngIf="numericPackageAttach.length > 0"></mat-divider> + <mat-list *ngIf="numericPackageAttach.length > 0"> <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.attachmentsNumericPackageToSend : lang.attachmentsNumericPackage}}</h3> - <mat-list-item class="numericPackageAttach" *ngFor="let attach of emailAttach; let i=index"> + <mat-list-item class="numericPackageAttach" *ngFor="let attach of numericPackageAttach; let i=index"> <p mat-line class="numericPackageAttachItem"> <span style="overflow: hidden;text-overflow: ellipsis;" [title]="attach.label">{{attach.label}}</span> @@ -169,10 +169,10 @@ <span class="divider-modal"></span> <div mat-dialog-actions class="actions"> <button mat-raised-button color="primary" - *ngIf="canManageMail() && privilegeService.hasCurrentUserPrivilege('sendmail') && emailStatus !== 'ERROR'" (click)="onSubmit()" + *ngIf="canManageMail() && privilegeService.hasCurrentUserPrivilege('sendmail') && numericPackageStatus !== 'ERROR'" (click)="onSubmit()" [disabled]="recipients.length === 0 || numericPackage.mainExchangeDoc === null || loading">{{lang.send}}</button> <button mat-raised-button color="warn" (click)="deleteEmail()" - *ngIf="data.emailId && !loading && emailStatus === 'ERROR'" - [disabled]="headerService.user.id !== emailCreatorId">{{lang.delete}}</button> + *ngIf="data.emailId && !loading && numericPackageStatus === 'ERROR'" + [disabled]="headerService.user.id !== numericPackageCreatorId">{{lang.delete}}</button> </div> </div> \ 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 7bda26d7cc39c02aa8e1e2f4939aae45791805e3..5859f19dbb85ad3e627960a9f8863781ec4603f5 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 @@ -30,8 +30,6 @@ export class SentNumericPackagePageComponent implements OnInit { lang: any = LANG; loading: boolean = true; - readonly separatorKeysCodes: number[] = [COMMA]; - availableEmailModels: any[] = []; availableSignEmailModels: any[] = []; @@ -41,10 +39,6 @@ export class SentNumericPackagePageComponent implements OnInit { recipients: any[] = []; - copies: any[] = []; - - invisibleCopies: any[] = []; - recipientsCtrl: FormControl = new FormControl(); emailSignListForm = new FormControl(); @@ -52,14 +46,10 @@ export class SentNumericPackagePageComponent implements OnInit { filteredEmails: Observable<string[]>; - showCopies: boolean = false; - showInvisibleCopies: boolean = false; - - emailCreatorId: number = null; - emailId: number = null; - emailStatus: string = 'WAITING'; - currentEmailAttachTool: string = ''; - emailAttachTool: any = { + numericPackageCreatorId: number = null; + numericPackageStatus: string = 'WAITING'; + numericPackageCurrentAttachTool: string = ''; + numericPackageAttachTool: any = { document: { icon: 'fa fa-file', title: this.lang.attachMainDocument, @@ -76,7 +66,7 @@ export class SentNumericPackagePageComponent implements OnInit { list: [] }, }; - emailAttach: any = []; + numericPackageAttach: any = []; numericPackage: any = { mainExchangeDoc: null, @@ -196,13 +186,13 @@ export class SentNumericPackagePageComponent implements OnInit { this.http.get(`../../rest/messageExchanges/${emailId}`).pipe( map((data: any) => data.messageExchange), tap((data: any) => { - this.emailCreatorId = data.userId; + this.numericPackageCreatorId = data.userId; this.recipients = [data.recipient]; this.currentSender.label = data.sender; this.numericPackage.object = data.object; - this.emailStatus = data.status.toUpperCase(); + this.numericPackageStatus = data.status.toUpperCase(); this.numericPackage.content = data.body; this.communicationType = data.communicationType; this.reference = data.reference; @@ -215,34 +205,34 @@ export class SentNumericPackagePageComponent implements OnInit { this.messageReview = this.reversePipe.transform(this.messageReview); - console.log(this.emailAttachTool); + console.log(this.numericPackageAttachTool); if (data.disposition.tablename === 'res_letterbox') { this.numericPackage.mainExchangeDoc = { - ...this.emailAttachTool['document'].list[0], + ...this.numericPackageAttachTool['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)); + this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['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], + ...this.numericPackageAttachTool['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)); + this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['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], + this.numericPackageAttach.push({ + ...this.numericPackageAttachTool['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)); + this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['notes'].list.filter((item: any) => data.notes.indexOf(item.id.toString()) > -1)); resolve(true); }), @@ -315,12 +305,12 @@ export class SentNumericPackagePageComponent implements OnInit { tap((data: any) => { Object.keys(data).forEach(element => { if (element === 'resource') { - this.emailAttachTool.document.list = []; + this.numericPackageAttachTool.document.list = []; if (!this.functions.empty(data[element])) { - this.emailAttachTool.document.list = [data[element]]; + this.numericPackageAttachTool.document.list = [data[element]]; } } else { - this.emailAttachTool[element].list = data[element].map((item: any) => { + this.numericPackageAttachTool[element].list = data[element].map((item: any) => { return { ...item, original: item.original !== undefined ? item.original : true, @@ -399,7 +389,7 @@ export class SentNumericPackagePageComponent implements OnInit { onSubmit() { this.loading = true; - this.emailStatus = 'WAITING'; + this.numericPackageStatus = 'WAITING'; if (this.data.emailId === null) { if (this.numericPackage.object === '') { const dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.confirm, msg: this.lang.warnEmptySubject } }); @@ -422,7 +412,7 @@ export class SentNumericPackagePageComponent implements OnInit { createEmail(closeModal: boolean = true) { this.http.post(`../../rest/resources/${this.data.resId}/messageExchange`, this.formatNumericPackage()).pipe( tap(() => { - this.notify.success(`Pli numérique envoyé`); + this.notify.success(this.lang.numericPackageSent); this.closeModal('success'); }), @@ -435,32 +425,28 @@ export class SentNumericPackagePageComponent implements OnInit { } deleteEmail() { - // 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( - // filter((data: string) => data === 'ok'), - // exhaustMap(() => this.http.delete(`../../rest/emails/${this.data.emailId}`)), - // tap(() => { - // this.notify.success(this.lang.emailDeleted); - // this.closeModal('success'); - // }), - // finalize(() => this.loading = false), - // catchError((err) => { - // this.notify.handleSoftErrors(err); - // return of(false); - // }) + filter((data: string) => data === 'ok'), + exhaustMap(() => this.http.delete(`../../rest/messageExchanges/${this.data.emailId}`)), + tap(() => { + this.notify.success(this.lang.numericPackageDeleted); + this.closeModal('success'); + }), + finalize(() => this.loading = false), + catchError((err) => { + this.notify.handleSoftErrors(err); + return of(false); + }) ).subscribe(); } updateEmail(closeModal: boolean = true) { this.http.put(`../../rest/emails/${this.data.emailId}`, this.formatNumericPackage()).pipe( tap(() => { - if (this.emailStatus === 'DRAFT') { - // this.notify.success(this.lang.draftUpdated); - } else { - this.notify.success(`Pli numérique envoyé`); - } + + this.notify.success(this.lang.numericPackageSent); if (closeModal) { this.closeModal('success'); @@ -482,7 +468,7 @@ export class SentNumericPackagePageComponent implements OnInit { type: type } } else { - this.emailAttach.push({ + this.numericPackageAttach.push({ ...item, typeLabel: item.typeLabel !== undefined ? item.typeLabel : this.lang.mainDocument, type: type @@ -491,7 +477,7 @@ export class SentNumericPackagePageComponent implements OnInit { } removeAttach(index: number) { - this.emailAttach.splice(index, 1); + this.numericPackageAttach.splice(index, 1); } formatNumericPackage() { @@ -509,23 +495,23 @@ export class SentNumericPackagePageComponent implements OnInit { numericPackage.object = this.numericPackage.object; numericPackage.content = this.numericPackage.content; numericPackage.contacts = this.recipients.map(recipient => recipient.id); - numericPackage.joinAttachment = this.emailAttach.filter((attach: any) => attach.type === 'attachments').map((attach: any) => attach.id); - numericPackage.notes = this.emailAttach.filter((attach: any) => attach.type === 'notes').map((attach: any) => attach.id); + numericPackage.joinAttachment = this.numericPackageAttach.filter((attach: any) => attach.type === 'attachments').map((attach: any) => attach.id); + numericPackage.notes = this.numericPackageAttach.filter((attach: any) => attach.type === 'notes').map((attach: any) => attach.id); numericPackage.senderEmail = this.currentSender.id; return numericPackage; } isSelectedAttach(item: any, type: string) { - return this.emailAttach.filter((attach: any) => attach.id === item.id && attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && this.numericPackage.mainExchangeDoc.id === item.id && type === this.numericPackage.mainExchangeDoc.type); + return this.numericPackageAttach.filter((attach: any) => attach.id === item.id && attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && this.numericPackage.mainExchangeDoc.id === item.id && type === this.numericPackage.mainExchangeDoc.type); } isSelectedAttachType(type: string) { - return this.emailAttach.filter((attach: any) => attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && type === this.numericPackage.mainExchangeDoc.type); + return this.numericPackageAttach.filter((attach: any) => attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && type === this.numericPackage.mainExchangeDoc.type); } canManageMail() { - if ((this.data.emailId === null) || (this.emailStatus !== 'SENT' && this.headerService.user.id === this.emailCreatorId)) { + if ((this.data.emailId === null) || (this.numericPackageStatus !== 'SENT' && this.headerService.user.id === this.numericPackageCreatorId)) { this.recipientsCtrl.enable(); return true; } else { diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index 2e9cc9a3c714d7a92ad51d012a0a1be399b40d08..2aa83d359274bbfa409a0d1403d053200f9ea7d6 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -1596,6 +1596,8 @@ export const LANG_EN = { "noPrivileges" : "Insufficient privileges", "mustDeleteUsersWithNoPrivileges" : "You must delete users with insufficient privileges", "sendNumericPackage" : "Send a numeric package", + "numericPackageSent" : "Numeric package sent", + "numericPackageDeleted" : "Numeric package deleted", "sendNumericPackageInfo" : "You can send mail and attachments between <b> two instances </b> of Maarch Courrier. <br /> <br /> You will receive <b> an acknowledgment of receipt </b> and you will be able <b> follow the progress </b> of the mail at the recipient. (see <a href=\"{0}\" target=\"_blank\"> Maarch2GEC </a> for more information).", "mailSubject" : "Mail subject", "attachItemToNumericPackage" : "Attach an element to sending mail", diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 41ad95fe466e5bea3d067ece7d75baf55ddd60a6..427c40007455c5016fcbd8321535e166078a5487 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1636,6 +1636,8 @@ export const LANG_FR = { "noPrivileges" : "Privilèges insuffisants", "mustDeleteUsersWithNoPrivileges" : "Veuillez supprimer les personnes dont les privilèges sont insuffisants", "sendNumericPackage" : "Envoyer un pli numérique", + "numericPackageSent" : "Pli numérique envoyé", + "numericPackageDeleted" : "Pli numérique supprimé", "sendNumericPackageInfo" : "Vous pouvez envoyer un courrier et des pièces jointes entre <b>deux instances</b> de Maarch Courrier.<br /><br />Vous recevrez <b>un accusé de réception</b> et vous pourrez <b>suivre l'avancement</b> du courrier chez le destinataire. (voir <a href=\"{0}\" target=\"_blank\">Maarch2GEC</a> pour plus d'informations).", "mailSubject" : "Objet du courrier", "attachItemToNumericPackage" : "Attacher un document / une pièce jointe au courrier à transmettre", diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index d09b4069d229859999be1031f2f7f964bf035ae9..d7ebd7fbdd9ad4b58219d5d6990e57809eb2e1cf 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -1621,6 +1621,8 @@ export const LANG_NL = { "noPrivileges" : "Insufficient privileges", //_TO_TRANSLATE "mustDeleteUsersWithNoPrivileges" : "You must delete users with insufficient privileges", //_TO_TRANSLATE "sendNumericPackage" : "Send a numeric package", //_TO_TRANSLATE + "numericPackageSent" : "Numeric package sent", //_TO_TRANSLATE + "numericPackageDeleted" : "Numeric package deleted", //_TO_TRANSLATE "sendNumericPackageInfo" : "You can send mail and attachments between <b> two instances </b> of Maarch Courrier. <br /> <br /> You will receive <b> an acknowledgment of receipt </b> and you will be able <b> follow the progress </b> of the mail at the recipient. (see <a href=\"{0}\" target=\"_blank\"> Maarch2GEC </a> for more information).", //_TO_TRANSLATE "mailSubject" : "Mail subject", //_TO_TRANSLATE "attachItemToNumericPackage" : "Attach an element to sending mail", //_TO_TRANSLATE