diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.html b/src/frontend/app/administration/sendmail/sendmail-administration.component.html index 2bd150ff32dddf53b20ef77c31824f2bd7ba939d..3e24229c5e7af53cbd279283cf019f4b809e79d6 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.html +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.html @@ -102,35 +102,22 @@ </mat-sidenav-content> <mat-sidenav #snav2 [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56" position='end' [opened]="mobileQuery.matches ? false : false" style="overflow-x:hidden;width:500px;" - (opened)="initServerConnection()"> + (opened)="initEmailSend()"> <mat-nav-list disableRipple="true"> - <h3 mat-subheader>État du serveur</h3> - <mat-list-item *ngIf="serverConnectionLoading"> - <mat-icon mat-list-icon fontSet="far" fontIcon="fa-circle fa-2x"></mat-icon> - <p mat-line> En cours de connexion... </p> - </mat-list-item> - <mat-list-item *ngIf="!serverConnectionLoading"> - <mat-icon mat-list-icon fontSet="fas" style="color:green" fontIcon="fa-circle fa-2x"></mat-icon> - <p mat-line> Connexion établie </p> - </mat-list-item> - <h3 mat-subheader>Test d'envoi</h3> + <h3 mat-subheader>{{lang.emailSendTest}}</h3> <div class="form-group" [style.opacity]="sendmail.type != 'smtp' ? '0.5' : '1'"> <div class="col-md-12"> <mat-form-field> - <input matInput placeholder="Adresse d'envoi" [disabled]="serverConnectionLoading"> - <mat-icon *ngIf="!serverConnectionLoading" title="Commencer le test" (click)="initEmailSend()" color="primary" style="cursor: pointer;" matSuffix + <input matInput placeholder="Adresse d'envoi" [(ngModel)]="currentUser.mail" [disabled]="serverConnectionLoading"> + <mat-icon *ngIf="!serverConnectionLoading" title="{{lang.beginSendTest}}" (click)="testEmailSend()" color="primary" style="cursor: pointer;" matSuffix class="fa fa-paper-plane fa-2x"></mat-icon> </mat-form-field> </div> </div> - <mat-list-item *ngIf="emailSendLoading"> - <mat-icon mat-list-icon fontSet="fas" fontIcon="fa-paper-plane fa-2x"></mat-icon> - <p mat-line> En cours d'envoi... </p> + <mat-list-item *ngIf="emailSendResult.msg != ''"> + <mat-icon mat-list-icon class= "fas {{emailSendResult.icon}} fa-2x"></mat-icon> + <p mat-line> {{emailSendResult.msg}} </p> </mat-list-item> - <mat-list-item *ngIf="!emailSendLoading"> - <mat-icon mat-list-icon fontSet="fas" style="color:green" fontIcon="fa-check fa-2x"></mat-icon> - <p mat-line> Envoi réussi </p> - </mat-list-item> </mat-nav-list> </mat-sidenav> </mat-sidenav-container> diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.scss b/src/frontend/app/administration/sendmail/sendmail-administration.component.scss index 42a6343a4b4899459c7afd7e51d3664c3ab34ba2..5cfcf4c8c618225f07b2a1a7afe18b2d990b22ea 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.scss +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.scss @@ -1,3 +1,11 @@ .mat-list-item:hover { background: inherit; +} + +.green { + color : green; +} + +.primary { + color : #135f7f; } \ No newline at end of file diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.ts b/src/frontend/app/administration/sendmail/sendmail-administration.component.ts index 00a6e63e2b6c93672f018b3d6fcd77665fcaec73..c8604b90700a14b35dd30182023c12d030da4a14 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.ts +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.ts @@ -4,7 +4,7 @@ import { HttpClient } from '@angular/common/http'; import { LANG } from '../../translate.component'; import { MatSidenav } from '@angular/material'; import { NotificationService } from '../../notification.service'; -import { HeaderService } from '../../../service/header.service'; +import { HeaderService } from '../../../service/header.service'; declare function $j(selector: any): any; @@ -18,15 +18,15 @@ declare var angularGlobals: any; }) export class SendmailAdministrationComponent implements OnInit { - @ViewChild('snav') public sidenavLeft : MatSidenav; - @ViewChild('snav2') public sidenavRight : MatSidenav; - - mobileQuery : MediaQueryList; - private _mobileQueryListener : () => void; + @ViewChild('snav') public sidenavLeft: MatSidenav; + @ViewChild('snav2') public sidenavRight: MatSidenav; - coreUrl : string; - lang : any = LANG; - loading : boolean = false; + mobileQuery: MediaQueryList; + private _mobileQueryListener: () => void; + + coreUrl: string; + lang: any = LANG; + loading: boolean = false; sendmail: any = { 'type': 'smtp', @@ -42,16 +42,16 @@ export class SendmailAdministrationComponent implements OnInit { smtpTypeList = [ { - id : 'smtp', - label : this.lang.smtp + id: 'smtp', + label: this.lang.smtp }, { - id : 'sendmail', - label : 'Sendmail' + id: 'sendmail', + label: 'Sendmail' }, { - id : 'qmail', - label : 'Qmail' + id: 'qmail', + label: 'Qmail' } ]; smtpTypeDesc = ''; @@ -60,7 +60,12 @@ export class SendmailAdministrationComponent implements OnInit { hidePassword: boolean = true; serverConnectionLoading: boolean = false; emailSendLoading: boolean = false; - + emailSendResult = { + icon : '', + msg : '' + }; + currentUser: any = {}; + constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private notify: NotificationService, private headerService: HeaderService) { @@ -82,7 +87,7 @@ export class SendmailAdministrationComponent implements OnInit { .subscribe((data: any) => { this.sendmail = data.configuration.value this.sendmailClone = JSON.parse(JSON.stringify(this.sendmail)); - this.smtpTypeDesc = this.lang[this.sendmail.type+'Desc']; + this.smtpTypeDesc = this.lang[this.sendmail.type + 'Desc']; this.loading = false; }, (err) => { this.notify.handleErrors(err); @@ -94,7 +99,7 @@ export class SendmailAdministrationComponent implements OnInit { } changeDesc(e: any) { - this.smtpTypeDesc = this.lang[e.selected.value+'Desc']; + this.smtpTypeDesc = this.lang[e.selected.value + 'Desc']; } onSubmit() { @@ -111,18 +116,41 @@ export class SendmailAdministrationComponent implements OnInit { return (JSON.stringify(this.sendmailClone) === JSON.stringify(this.sendmail)); } - - initServerConnection() { - this.serverConnectionLoading = true; - setTimeout(() => { - this.serverConnectionLoading = false; - }, 5000); + initEmailSend() { + this.emailSendResult = { + icon : '', + msg : '' + }; + if (this.currentUser.mail === undefined) { + this.http.get('../../rest/currentUser/profile') + .subscribe((data: any) => { + this.currentUser = data; + }); + } } - initEmailSend() { + testEmailSend() { + this.emailSendResult = { + icon : 'fa-paper-plane primary', + msg : this.lang.emailSendInProgress + }; + let email = { + "sender": { "email": this.currentUser.mail }, + "recipients": [this.currentUser.mail], + "object": "test mail envoi", + "body": "test mail envoi", + "document": { "isLinked": false, "original": false }, + "isHtml": false + } this.emailSendLoading = true; - setTimeout(() => { - this.emailSendLoading = false; - }, 5000); + + this.http.post('../../rest/emails', email) + .subscribe((data: any) => { + this.emailSendLoading = false; + this.emailSendResult = { + icon : 'fa-check green', + msg : this.lang.emailSendSuccess + }; + }); } } diff --git a/src/frontend/app/list/basket-list.component.ts b/src/frontend/app/list/basket-list.component.ts index 83a444fe1f820524713d9bc2e96dbc41fd9758a1..85eef1d911d387b466e7e7859324623c1fbafb79 100755 --- a/src/frontend/app/list/basket-list.component.ts +++ b/src/frontend/app/list/basket-list.component.ts @@ -1,10 +1,10 @@ -import { ChangeDetectorRef, Component, OnInit, ViewChild, Inject, EventEmitter, AfterViewInit } from '@angular/core'; +import { ChangeDetectorRef, Component, OnInit, ViewChild, EventEmitter } from '@angular/core'; import { MediaMatcher } from '@angular/cdk/layout'; import { HttpClient } from '@angular/common/http'; import { LANG } from '../translate.component'; import { merge, Observable, of as observableOf } from 'rxjs'; import { NotificationService } from '../notification.service'; -import { MatDialog, MatSidenav, MatPaginator, MatSort, MatBottomSheet, MatBottomSheetRef, MAT_BOTTOM_SHEET_DATA } from '@angular/material'; +import { MatDialog, MatSidenav, MatPaginator, MatSort, MatBottomSheet } from '@angular/material'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { startWith, switchMap, map, catchError } from 'rxjs/operators'; diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index b5845cb9f6e30b3eb52a053cf46ee81ee4cea6a2..d237c4354d660d7e9b21875e8494ec1a1bcef0eb 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -733,4 +733,8 @@ export const LANG_EN = { "mailFrom" : "Mail address used", "eraseAllFilters" : "Erase all filters", "isMulticontact" : "Multi-contact", + "emailSendTest" : "Email send test", + "beginSendTest" : "Begin send test", + "emailSendSuccess" : "Email sent", + "emailSendInProgress" : "Sending email...", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 4a02e8b9d94758e2c29f76b316fe5366c12b9b16..09f1ab8b6bd1744eb987208048d0291bb94e71ec 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -759,6 +759,10 @@ export const LANG_FR = { "mailFrom" : "Adresse e-mail utilisée", "eraseAllFilters" : "Effacer tous les filtres", "isMulticontact" : "Multi-contact", + "emailSendTest" : "Test d'envoi", + "beginSendTest" : "Commencer le test", + "emailSendSuccess" : "Envoi réussi", + "emailSendInProgress" : "En cours d'envoi", }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index bd9ef3b244cd4ff7c6a41ce440430986c674ede1..d1aa6c861a3d5ae6fec022b99f7e2f17626806d1 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -762,4 +762,8 @@ export const LANG_NL = { "mailFrom" : "_TO_TRANSLATE", "eraseAllFilters" : "_TO_TRANSLATE", "isMulticontact" : "_TO_TRANSLATE", + "emailSendTest" : "_TO_TRANSLATE", + "beginSendTest" : "_TO_TRANSLATE", + "emailSendSuccess" : "_TO_TRANSLATE", + "emailSendInProgress" : "_TO_TRANSLATE", };