diff --git a/apps/maarch_entreprise/xml/services.xml b/apps/maarch_entreprise/xml/services.xml index 87329c02e9f820ac1ae11a7fb772610c2bd86bb2..2c515c497e1ef5c8f54d99f1939e006262a8e9ac 100755 --- a/apps/maarch_entreprise/xml/services.xml +++ b/apps/maarch_entreprise/xml/services.xml @@ -259,7 +259,7 @@ <comment>_ADMIN_DOCSERVERS_DESC</comment> <servicepage>/administration/docservers</servicepage> <servicetype>admin</servicetype> - <category>technical_param</category> + <category>supervision</category> <system_service>false</system_service> <style>fa fa-hdd</style> <enabled>true</enabled> @@ -357,7 +357,7 @@ <comment>_PARAMETERS</comment> <servicepage>/administration/parameters</servicepage> <servicetype>admin</servicetype> - <category>technical_param</category> + <category>supervision</category> <style>fa fa-wrench</style> <system_service>false</system_service> <enabled>true</enabled> @@ -415,13 +415,14 @@ <comment>_SECURITIES</comment> <servicepage>/administration/securities</servicepage> <servicetype>admin</servicetype> - <category>technical_param</category> + <category>supervision</category> <system_service>false</system_service> <style>fas fa-lock</style> <enabled>true</enabled> <angular>true</angular> </SERVICE> - <SERVICE> + <!-- TO DO : sub category (not implemented yet)--> + <!--<SERVICE> <id>admin_technical_configuration</id> <name>_PARAMETERS</name> <comment>_PARAMETERS_DESC</comment> @@ -432,14 +433,14 @@ <style>fas fa-cog</style> <enabled>true</enabled> <angular>true</angular> - </SERVICE> + </SERVICE>--> <SERVICE> - <id>admin_sendmail</id> - <name>_SENDMAIL_PARAM</name> - <comment>_SENDMAIL_PARAM_DESC</comment> + <id>admin_emailserver</id> + <name>_EMAILSERVER_PARAM</name> + <comment>_EMAILSERVER_PARAM_DESC</comment> <servicepage>/administration/sendmail</servicepage> <servicetype>admin</servicetype> - <category>technical_param</category> + <category>supervision</category> <system_service>false</system_service> <style>fas fa-mail-bulk</style> <enabled>true</enabled> diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php index da9765685944ff2b3951c0d61c4f65c4a205e93d..85b9b8e069d615a99dfe9b0f961b77d953e780aa 100755 --- a/src/core/lang/lang-en.php +++ b/src/core/lang/lang-en.php @@ -190,8 +190,8 @@ define('_ADMIN_NOTIFICATIONS_DESC', " Create and manage users' notifications bas define('_TEMPLATES', 'Templates'); define('_ADMIN_TEMPLATES_DESC', 'Manage templates for attachments, notifications, document generation, sendmail and notes'); define('_SECURITIES', 'Securities'); -define('_SENDMAIL_PARAM', 'Mail server'); -define('_SENDMAIL_PARAM_DESC', 'Link your mail serveur with application in order to send emails.'); +define('_EMAILSERVER_PARAM', 'Mail server'); +define('_EMAILSERVER_PARAM_DESC', 'Link your mail serveur with application in order to send emails.'); //SERVICES define('_REDIRECT_TO_ACTION', 'Redirect to an action'); diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php index ddf6b1d65953a8b02c58bc0d1de58f3a3a6c82e1..26cf8902e1d28b1340b081387bc542076eab7f85 100755 --- a/src/core/lang/lang-fr.php +++ b/src/core/lang/lang-fr.php @@ -190,8 +190,8 @@ define('_ADMIN_NOTIFICATIONS_DESC', "Créer et gérer des notifications aux util define('_TEMPLATES', 'Modèles de documents'); define('_ADMIN_TEMPLATES_DESC', "Gérer les modèles utilisés pour les pièces jointes, les notifications, la génération de courriers, l'envoi de courriels et les annotations"); define('_SECURITIES', 'Sécurités'); -define('_SENDMAIL_PARAM', 'Serveur mail'); -define('_SENDMAIL_PARAM_DESC', 'Connecter votre serveur de mail à Maarch Courrier afin de pouvoir envoyer des courriels.'); +define('_EMAILSERVER_PARAM', 'Serveur mail'); +define('_EMAILSERVER_PARAM_DESC', 'Connecter votre serveur de mail à Maarch Courrier afin de pouvoir envoyer des courriels.'); diff --git a/src/core/lang/lang-nl.php b/src/core/lang/lang-nl.php index 04442ff20dda417354df18cde70529745651034b..0498e698bf7c496a2f552e52d086d2bccfbca492 100644 --- a/src/core/lang/lang-nl.php +++ b/src/core/lang/lang-nl.php @@ -406,6 +406,6 @@ define('_SVA', 'Stilzwijgende aanvaarding'); define('_SVR', 'Stilzwijgende weigering'); define('_REDACTOR', 'Opsteller'); define('_ASSIGNEE', 'Toegekende persoon'); -define('_SENDMAIL_PARAM', '_TO_TRANSLATE'); -define('_SENDMAIL_PARAM_DESC', '_TO_TRANSLATE'); +define('_EMAILSERVER_PARAM', '_TO_TRANSLATE'); +define('_EMAILSERVER_PARAM_DESC', '_TO_TRANSLATE'); define('_NOTE_ADDED', 'note added _TO_TRANSLATE'); diff --git a/src/frontend/app/administration/sendmail/sendmail-administration.component.html b/src/frontend/app/administration/sendmail/sendmail-administration.component.html index e821c30b7c448270ac48db777bc70f0e8e58cd9a..d15880f61337b060e0ed0cd0102b646259b8c486 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.html +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.html @@ -1,9 +1,18 @@ <div class="admin-container" [class.admin-is-mobile]="mobileQuery.matches"> - <mat-sidenav-container autosize class="admin-sidenav-container" > - <mat-sidenav #snav [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56" - [opened]="mobileQuery.matches ? false : true"> + <mat-sidenav-container autosize class="admin-sidenav-container"> + <mat-sidenav #snav [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" + fixedTopGap="56" [opened]="mobileQuery.matches ? false : true"> <menu-shortcut></menu-shortcut> <menu-nav></menu-nav> + <mat-nav-list *ngIf="!creationMode"> + <h3 mat-subheader>{{lang.actions}}</h3> + <a mat-list-item *ngIf="sendmail.host.length > 0" (click)="snav2.toggle()"> + <mat-icon color="primary" mat-list-icon class="fas fa-signal"></mat-icon> + <p mat-line> + {{lang.checkSendmail}} + </p> + </a> + </mat-nav-list> </mat-sidenav> <mat-sidenav-content> <div *ngIf="loading" style="display:flex;height:100%;"> @@ -12,11 +21,60 @@ <mat-card *ngIf="!loading" class="card-app-content"> <mat-tab-group> <mat-tab label="{{lang.informations}}"> - <form (ngSubmit)="onSubmit()" #passwordForm="ngForm"> + <form (ngSubmit)="onSubmit()" #sendmailForm="ngForm"> <div class="form-group"> + <div class="col-md-12" style="margin-bottom: 20px;"> + <mat-form-field> + <mat-select #smtpType (selectionChange)="changeDesc(smtpType)" name="smtpType" + placeholder="Type de configuration" [(ngModel)]="sendmail.smtpType"> + <mat-option *ngFor="let type of smtpTypeList" [value]="type.id"> + {{type.label}} + </mat-option> + </mat-select> + <mat-hint>{{smtpTypeDesc}}</mat-hint> + </mat-form-field> + </div> + </div> + <div class="form-group" [style.opacity]="sendmail.smtpType != 'internalParam' ? '0.5' : '1'"> + <div class="col-md-2"> + <mat-form-field> + <mat-select name="SMTPSecure" placeholder="Méthode d'authentification" + [disabled]="sendmail.smtpType != 'internalParam'" [(ngModel)]="sendmail.SMTPSecure"> + <mat-option *ngFor="let security of smtpSecList" [value]="security"> + {{security}} + </mat-option> + </mat-select> + </mat-form-field> + </div> + <div class="col-md-9"> + <mat-form-field> + <input matInput name="host" [disabled]="sendmail.smtpType != 'internalParam'" [(ngModel)]="sendmail.host" placeholder="{{lang.host}}"> + </mat-form-field> + </div> + <div class="col-md-1"> + <mat-form-field> + <input name="port" type="number" matInput [(ngModel)]="sendmail.port" + [disabled]="sendmail.smtpType != 'internalParam'" placeholder="{{lang.port}}"> + </mat-form-field> + </div> + </div> + <div class="form-group" [style.opacity]="sendmail.smtpType != 'internalParam' ? '0.5' : '1'"> + <div class="col-md-12"> + <mat-slide-toggle color="primary" name="SMTPAuth" [(ngModel)]="sendmail.SMTPAuth" + [disabled]="sendmail.smtpType != 'internalParam'">{{lang.enableAuth}}</mat-slide-toggle> + </div> + </div> + <div class="form-group" [style.opacity]="sendmail.smtpType != 'internalParam' ? '0.5' : '1'"> + <div class="col-md-12"> + <mat-form-field> + <input [disabled]="!sendmail.SMTPAuth || sendmail.smtpType != 'internalParam'" + matInput placeholder="{{lang.id}}"> + </mat-form-field> + </div> <div class="col-md-12"> <mat-form-field> - <input matInput placeholder="{{lang.host}}"> + <input [disabled]="!sendmail.SMTPAuth || sendmail.smtpType != 'internalParam'" + matInput placeholder="{{lang.password}}"> </mat-form-field> </div> </div> @@ -29,8 +87,11 @@ </mat-tab-group> </mat-card> </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;max-width:500px;"> + <mat-sidenav #snav2 [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" + fixedTopGap="56" position='end' [opened]="mobileQuery.matches ? false : false" style="overflow-x:hidden;max-width:500px;"> + <mat-nav-list> + <h3 mat-subheader>État du serveur</h3> + </mat-nav-list> </mat-sidenav> </mat-sidenav-container> </div> \ 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 bf56f7150ba28f3daa79bb7771ce35c5a1080ce2..45950ed3ec526b80a07cf31a101536c766d47578 100644 --- a/src/frontend/app/administration/sendmail/sendmail-administration.component.ts +++ b/src/frontend/app/administration/sendmail/sendmail-administration.component.ts @@ -28,14 +28,28 @@ export class SendmailAdministrationComponent implements OnInit { loading : boolean = false; sendmail: any = { + 'smtpType': 'internalParam', 'host': '', - 'SMTPAuth': false, + 'SMTPAuth': true, 'username': '', 'password': '', 'SMTPSecure': 'ssl', //tls, ssl, starttls - 'port': '', + 'port': '465', }; + + smtpTypeList = [ + { + id : 'internalParam', + label : this.lang.internalParam + } + ,{ + id : 'smtpRelay', + label : this.lang.smtpRelay + } + ]; + smtpTypeDesc = ''; + smtpSecList = ['ssl', 'tls']; sendmailClone: any = {}; @@ -46,12 +60,8 @@ export class SendmailAdministrationComponent implements OnInit { this.mobileQuery.addListener(this._mobileQueryListener); } - ngOnDestroy(): void { - this.mobileQuery.removeListener(this._mobileQueryListener); - } - ngOnInit(): void { - this.headerService.headerMessage = '???'; + this.headerService.headerMessage = this.lang.sendmail; window['MainHeaderComponent'].setSnav(this.sidenavLeft); window['MainHeaderComponent'].setSnavRight(null); @@ -70,4 +80,9 @@ export class SendmailAdministrationComponent implements OnInit { cancelModification() { this.sendmail = JSON.parse(JSON.stringify(this.sendmailClone)); } + + changeDesc(e: any) { + this.smtpTypeDesc = this.lang[e.selected.value+'Desc']; + console.log(e.selected.value+'Desc'); + } } diff --git a/src/frontend/app/administration/technical/technical-administration.component.html b/src/frontend/app/administration/technical/technical-administration.component.html index d6fbe66bd2c80ce2afd0544cc25a2a905946d8e3..ac94d2264858f5596f1cad8d1fb4f29720409b46 100644 --- a/src/frontend/app/administration/technical/technical-administration.component.html +++ b/src/frontend/app/administration/technical/technical-administration.component.html @@ -3,7 +3,7 @@ <mat-spinner></mat-spinner> </div> <mat-nav-list *ngIf="!loading"> - <mat-list-item *ngFor="let modService of technicalServices"> + <mat-list-item *ngFor="let modService of technicalServices" (click)="goToSpecifiedAdministration(modService)"> <mat-icon color="primary" mat-list-icon class="{{modService.style}} fa-2x"></mat-icon> <p mat-line> {{modService.name}} </p> </mat-list-item> diff --git a/src/frontend/app/administration/technical/technical-administration.component.ts b/src/frontend/app/administration/technical/technical-administration.component.ts index 6228db6e06245812e00f93c4044c6109197c2dba..93e261919ea2b352021803753b6e8fd4099f516a 100644 --- a/src/frontend/app/administration/technical/technical-administration.component.ts +++ b/src/frontend/app/administration/technical/technical-administration.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Router } from '@angular/router'; import { LANG } from '../../translate.component'; +import { MatBottomSheet } from '@angular/material'; declare function $j(selector: any): any; @@ -22,7 +23,8 @@ export class TechnicalAdministrationComponent implements OnInit { technicalServices : any[] = []; - constructor(public http: HttpClient, private router: Router) { + + constructor(public http: HttpClient, private router: Router, private bottomSheet: MatBottomSheet) { $j("link[href='merged_css.php']").remove(); } @@ -42,10 +44,7 @@ export class TechnicalAdministrationComponent implements OnInit { } goToSpecifiedAdministration(service: any): void { - if (service.angular == "true") { - this.router.navigate([service.servicepage]); - } else { - window.location.assign(service.servicepage); - } + this.router.navigate([service.servicepage]); + this.bottomSheet.dismiss(); } } diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index aae5add9d1f6a3d0c76f2aadec34037f160fd959..821ff3af4553048cfad5d9d1e3d49884a369b74a 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -719,4 +719,8 @@ export const LANG_EN = { "undefinedStatus" : "Undefined status", "subEntities" : "Entities (and sub-entities)", "category_id" : "Category", + "smtpRelay" : "Smtp relay", + "internalParam" : "Internal configuration", + "enableAuth" : "Activate authentication", + "checkSendmail" : "Check mail server status", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 2f0e66a2b6263880f9002b2788c9e4708f54801a..c74aa4579e826efcd110fd863168bc6d1a1e0f2f 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -745,4 +745,10 @@ export const LANG_FR = { "undefinedStatus" : "Statut non défini", "subEntities" : "Entités (et sous-entités)", "category_id" : "Catégorie", + "smtpRelay" : "Relai stmp", + "smtpRelayDesc" : "Utilisation d'un relai smtp du serveur (ssmtp par exemple), configuration externe à l'application", + "internalParam" : "Configuration interne", + "internalParamDesc" : "Utilisateur du module interne phpmailer de l'application", + "enableAuth" : "Activer l'authentification", + "checkSendmail" : "Vérifier l'état du serveur", }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index fc479c8f8b842fa9edc6237b68b479f6ecbc0f91..4397891e96f6af2135e3162fee313ce22b8188bf 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -748,4 +748,8 @@ export const LANG_NL = { "undefinedStatus" : "_TO_TRANSLATE", "subEntities" : "_TO_TRANSLATE", "category_id" : "_TO_TRANSLATE", + "smtpRelay" : "_TO_TRANSLATE", + "internalParam" : "_TO_TRANSLATE", + "enableAuth" : "_TO_TRANSLATE", + "checkSendmail" : "_TO_TRANSLATE", };