diff --git a/src/frontend/app/installer/database/database.component.html b/src/frontend/app/installer/database/database.component.html index f77fa26efc99aefa1cadca075d7c6f9be04e3e57..c7dbac20cb0891dcac84171830f3d0cd42499139 100644 --- a/src/frontend/app/installer/database/database.component.html +++ b/src/frontend/app/installer/database/database.component.html @@ -18,7 +18,10 @@ </mat-form-field> <mat-form-field appearance="outline"> <mat-label>{{lang.password}}</mat-label> - <input matInput formControlName="dbPasswordCtrl" required> + <input [type]="hide ? 'password' : 'text'" matInput formControlName="dbPasswordCtrl" required> + <button mat-icon-button matSuffix color="primary" (click)="hide = !hide"> + <mat-icon class="fa {{hide ? 'fa-eye-slash' : 'fa-eye'}}"></mat-icon> + </button> </mat-form-field> <mat-form-field appearance="outline"> <mat-label>{{lang.dbName}}</mat-label> diff --git a/src/frontend/app/installer/database/database.component.ts b/src/frontend/app/installer/database/database.component.ts index d849f1f236ef9fac68dc73f6f179c82d20213603..0eec37c4da2628d35b993fe6e30d0439504cd4d7 100644 --- a/src/frontend/app/installer/database/database.component.ts +++ b/src/frontend/app/installer/database/database.component.ts @@ -15,6 +15,7 @@ import { LANG } from '../../translate.component'; export class DatabaseComponent implements OnInit { lang: any = LANG; stepFormGroup: FormGroup; + hide: boolean = true; connectionState: boolean = false; diff --git a/src/frontend/app/installer/installer.component.html b/src/frontend/app/installer/installer.component.html index 73797fb69b184ca4ab4015eaf72965e9d1ec5552..d144878cebac73aa23a6361938749fcfb9ffcc2e 100644 --- a/src/frontend/app/installer/installer.component.html +++ b/src/frontend/app/installer/installer.component.html @@ -75,7 +75,7 @@ </div> </mat-step> <mat-step [stepControl]="appUseradmin.getFormGroup()"> - <ng-template matStepLabel>Utilisateur système</ng-template> + <ng-template matStepLabel>{{lang.userAdmin}}</ng-template> <div class="stepContainer"> <div class="stepContent"> <app-useradmin #appUseradmin></app-useradmin> diff --git a/src/frontend/app/installer/installer.component.ts b/src/frontend/app/installer/installer.component.ts index 60102ed1400745e097128408578e48454d80ee95..8b9ba01c291a3f41510bf1a570727b46a370bfda 100644 --- a/src/frontend/app/installer/installer.component.ts +++ b/src/frontend/app/installer/installer.component.ts @@ -50,7 +50,7 @@ export class InstallerComponent implements OnInit, AfterViewInit { } initStep(ev: any) { - console.log(ev.selectedStep.content); + // console.log(ev.selectedStep.content); } endInstall() { diff --git a/src/frontend/app/installer/prerequisite/prerequisite.component.ts b/src/frontend/app/installer/prerequisite/prerequisite.component.ts index cc18a62197f54e09eca66649c1e50d5922f84b7d..c4a48ef8fc65f1d371faa0680b86b14a77844b2e 100644 --- a/src/frontend/app/installer/prerequisite/prerequisite.component.ts +++ b/src/frontend/app/installer/prerequisite/prerequisite.component.ts @@ -100,11 +100,7 @@ export class PrerequisiteComponent implements OnInit { { label: 'displayErrors', required: true - }, - { - label: 'shortOpenTag', - required: true - }, + } ], }; diff --git a/src/frontend/app/installer/useradmin/useradmin.component.html b/src/frontend/app/installer/useradmin/useradmin.component.html index a6c04ef664c14852619d4213692c2d3381c956f7..c018b3c5d4be39a9de53ecd37161c8b0e095f0ab 100644 --- a/src/frontend/app/installer/useradmin/useradmin.component.html +++ b/src/frontend/app/installer/useradmin/useradmin.component.html @@ -1,20 +1,37 @@ <div class="stepContent"> - <h2 class="stepContentTitle"><i class="fas fa-user"></i> Utilisateur système</h2> - <p> - Définissez un utilisateur système afin de vous connecter à l'application. - </p> - <form [formGroup]="stepFormGroup" style="display: contents;"> - <mat-form-field appearance="outline" style="color: initial;"> - <mat-label>Identifiant</mat-label> - <input matInput formControlName="login" style="color: moccasin;" disabled> + <h2 class="stepContentTitle"><i class="fas fa-user"></i> {{lang.userAdmin}}</h2> + <div class="alert-message alert-message-info" role="alert" style="margin-top: 30px;min-width: 100%;"> + {{lang.stepUserAdmin_desc}} + </div> + <form [formGroup]="stepFormGroup" style="width: 850px;margin: auto;"> + <mat-form-field appearance="outline"> + <mat-label>{{lang.id}}</mat-label> + <input matInput formControlName="login"> </mat-form-field> - <mat-form-field appearance="outline" style="color: initial;"> - <mat-label>Mot de passe</mat-label> - <input matInput formControlName="password" style="color: moccasin;"> + <mat-form-field appearance="outline"> + <mat-label>{{lang.password}}</mat-label> + <input [type]="hide ? 'password' : 'text'" matInput formControlName="password"> + <button mat-icon-button matSuffix color="primary" (click)="hide = !hide"> + <mat-icon class="fa {{hide ? 'fa-eye-slash' : 'fa-eye'}}"></mat-icon> + </button> + <mat-error>{{lang.passwordNotMatch}}</mat-error> </mat-form-field> - <mat-form-field appearance="outline" style="color: initial;"> - <mat-label>Email</mat-label> - <input matInput formControlName="email" style="color: moccasin;"> + <mat-form-field appearance="outline"> + <mat-label>{{lang.retypeNewPassword}}</mat-label> + <input [type]="hide ? 'password' : 'text'" matInput formControlName="passwordConfirm"> + <button mat-icon-button matSuffix color="primary" (click)="hide = !hide"> + <mat-icon class="fa {{hide ? 'fa-eye-slash' : 'fa-eye'}}"></mat-icon> + </button> + <mat-error>{{lang.passwordNotMatch}}</mat-error> </mat-form-field> + <mat-form-field appearance="outline"> + <mat-label>{{lang.mail}}</mat-label> + <input matInput formControlName="email"> + </mat-form-field> + <div style="text-align:center;"> + <button mat-raised-button type="button" color="primary" (click)="launchInstall()" *ngIf="stepFormGroup.valid" style="font-size: 35px;padding: 20px;"> + <i class=" far fa-hdd"></i> {{lang.launchInstall}} + </button> + </div> </form> </div> diff --git a/src/frontend/app/installer/useradmin/useradmin.component.scss b/src/frontend/app/installer/useradmin/useradmin.component.scss index 0e4cceee1c3301d4fed1e926e1e7a2a63c3016c3..4cf71299132b816740f7a27d4adb73baa56e1620 100644 --- a/src/frontend/app/installer/useradmin/useradmin.component.scss +++ b/src/frontend/app/installer/useradmin/useradmin.component.scss @@ -1,44 +1,13 @@ +@import '../../../css/vars.scss'; + .stepContent { - max-width: 850px; + // max-width: 850px; margin: auto; .stepContentTitle { + color: $primary; margin-bottom: 30px; border-bottom: solid 1px; padding: 0; } - - .maarchLogoWhiteFull{ - width: 300px; - height: 100px; - } - - .mat-divider { - margin-top: 10px; - margin-bottom: 10px; - } - - ::ng-deep .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick { - /*change color of label*/ - color: white !important; - } - - ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline { - color: white !important; - //background: white; - } - - ::ng-deep.mat-form-field-underline { - /*change color of underline*/ - //background-color: white !important; - } - - ::ng-deep.mat-form-field-ripple { - /*change color of underline when focused*/ - //background-color: white !important; - } - - ::ng-deep.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label, .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label { - color: white; - } } \ No newline at end of file diff --git a/src/frontend/app/installer/useradmin/useradmin.component.ts b/src/frontend/app/installer/useradmin/useradmin.component.ts index cbf5ee8820895c7bd781bb4d93aba35d39208a63..ff67cdfdda94a4a6532ffb744920255f3725503e 100644 --- a/src/frontend/app/installer/useradmin/useradmin.component.ts +++ b/src/frontend/app/installer/useradmin/useradmin.component.ts @@ -1,41 +1,70 @@ import { Component, OnInit } from '@angular/core'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { NotificationService } from '../../notification.service'; +import { LANG } from '../../translate.component'; +import { tap } from 'rxjs/internal/operators/tap'; @Component({ - selector: 'app-useradmin', - templateUrl: './useradmin.component.html', - styleUrls: ['./useradmin.component.scss'] + selector: 'app-useradmin', + templateUrl: './useradmin.component.html', + styleUrls: ['./useradmin.component.scss'] }) export class UseradminComponent implements OnInit { + lang: any = LANG; + stepFormGroup: FormGroup; - stepFormGroup: FormGroup; + hide: boolean = true; - constructor( - private _formBuilder: FormBuilder, - private notify: NotificationService, - ) { - this.stepFormGroup = this._formBuilder.group({ - login: ['superadmin', Validators.required], - password: ['', Validators.required], - email: ['dev@maarch.org', Validators.required], - }); - } + constructor( + private _formBuilder: FormBuilder, + private notify: NotificationService, + ) { + this.stepFormGroup = this._formBuilder.group({ + login: [{ value: 'superadmin', disabled: true }, Validators.required], + password: ['', Validators.required], + passwordConfirm: ['', Validators.required], + email: ['dev@maarch.org', Validators.required], + }); - ngOnInit(): void { - } - isValidStep() { - return this.stepFormGroup === undefined ? false : this.stepFormGroup.valid; - } + } - getFormGroup() { - return this.stepFormGroup; - } + ngOnInit(): void { + this.stepFormGroup.controls['password'].valueChanges.pipe( + tap((data) => { + if (data !== this.stepFormGroup.controls['passwordConfirm'].value) { + this.stepFormGroup.controls['password'].setErrors({ 'incorrect': true }); + this.stepFormGroup.controls['passwordConfirm'].setErrors({ 'incorrect': true }); + this.stepFormGroup.controls['passwordConfirm'].markAsTouched(); + } else { + this.stepFormGroup.controls['password'].setErrors(null); + this.stepFormGroup.controls['passwordConfirm'].setErrors(null); + } + }) + ).subscribe(); + this.stepFormGroup.controls['passwordConfirm'].valueChanges.pipe( + tap((data) => { + if (data !== this.stepFormGroup.controls['password'].value) { + this.stepFormGroup.controls['password'].setErrors({ 'incorrect': true }); + this.stepFormGroup.controls['password'].markAsTouched(); + this.stepFormGroup.controls['passwordConfirm'].setErrors({ 'incorrect': true }); + } else { + this.stepFormGroup.controls['password'].setErrors(null); + this.stepFormGroup.controls['passwordConfirm'].setErrors(null); + } + }) + ).subscribe(); + } - checkAvailability() { - this.stepFormGroup.controls['firstCtrl'].setValue('success'); - this.notify.success('Le chemin est disponible'); - } + isValidStep() { + return this.stepFormGroup === undefined ? false : this.stepFormGroup.valid; + } + getFormGroup() { + return this.stepFormGroup; + } + + launchInstall() { + + } } diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index e1f5f208cb4006d27f7a0e9e5494b1be235db7fb..90a5976be495dfd13d871f5e6635ac3fe1b57896 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1780,4 +1780,8 @@ export const LANG_FR = { "chooseLoginBg": "Choisissez le fond d'écran de l'écran de connexion", "customization": "Personnalisation", "stepCustomization_desc": "Maarch Courrier vous permet de personnaliser votre application afin de l'intégrer parfaitement à votre environnement de travail.", + "userAdmin": "Utilisateur système", + "stepUserAdmin_desc": "Définissez un utilisateur système afin de vous connecter à l'application.", + "launchInstall": "Lancer l'installation", + }; \ No newline at end of file