From 703d33818b011e027a53bc18ba323641d889c8cd Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Fri, 17 Jan 2025 15:05:18 +0100 Subject: [PATCH] Fix login page + connect with localstorage service --- .../login-page/login-page.component.css | 9 ++++ .../login-page/login-page.component.html | 12 +++--- .../login-page/login-page.component.ts | 42 ++++++++++++++----- 3 files changed, 47 insertions(+), 16 deletions(-) diff --git a/src/app/components/login-page/login-page.component.css b/src/app/components/login-page/login-page.component.css index e69de29..227bd40 100644 --- a/src/app/components/login-page/login-page.component.css +++ b/src/app/components/login-page/login-page.component.css @@ -0,0 +1,9 @@ +#authentication-modal.show { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} + +#authentication-modal.hidden { + opacity: 0; + transition: opacity 0.3s ease-in-out; +} \ No newline at end of file diff --git a/src/app/components/login-page/login-page.component.html b/src/app/components/login-page/login-page.component.html index babe5a7..cbe5d92 100644 --- a/src/app/components/login-page/login-page.component.html +++ b/src/app/components/login-page/login-page.component.html @@ -1,5 +1,3 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/components/login-page/login-page.component.ts b/src/app/components/login-page/login-page.component.ts index 5476c47..91fdb0e 100644 --- a/src/app/components/login-page/login-page.component.ts +++ b/src/app/components/login-page/login-page.component.ts @@ -1,41 +1,63 @@ -import { Component } from '@angular/core'; +import { Component, Renderer2 } from '@angular/core'; import { LoginService } from '../../services/login.service'; import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; import { FormBuilder } from '@angular/forms'; import { Router } from '@angular/router'; import { FormGroup } from '@angular/forms'; import { User } from '../../model/User'; +import { LocalStorageService } from '../../services/localstorage.service'; +import { NgIf } from '@angular/common'; @Component({ selector: 'app-login-page', - imports: [FormsModule, ReactiveFormsModule], + imports: [FormsModule, ReactiveFormsModule, NgIf], templateUrl: './login-page.component.html', styleUrl: './login-page.component.css' }) export class LoginPageComponent { userForm: FormGroup; - user: User = {login: '', password: ''} + user: User = {login: '', password: ''}; + errorMessage: string = ''; - constructor(private loginService: LoginService, private fb: FormBuilder, private router: Router) { + constructor(private loginService: LoginService, private fb: FormBuilder, private router: Router, private localStorageService: LocalStorageService, private renderer: Renderer2) { this.userForm = this.fb.group({ login: [this.user.login, [Validators.required, Validators.minLength(3)]], password: [this.user.password, [Validators.required, Validators.minLength(3)]], }); } -public login(){ + public login(){ if (this.userForm.invalid){ + this.errorMessage = "Veuillez remplir tous les champs"; return; } - let login = this.userForm.value.login; - let password = this.userForm.value.password + this.user.login = this.userForm.value.login; + this.user.password = this.userForm.value.password; - this.user.login = login; - this.user.password = password; + this.loginService.login(this.user.login, this.user.password).subscribe({ + next: (response) => { + console.log("Connexion OK: ", response); + this.localStorageService.setToken(response.access_token); + this.closeModal(); + setTimeout(() => { + this.router.navigate(['/map']); + }, 500); + }, - console.log(this.loginService.login(login,password)); + error: (response) => { + console.log("Connexion KO: ", response.error.detail); + this.errorMessage = response.error.detail; + } + }); + + } + private closeModal() { + const modal = document.getElementById('close-login-modal'); + if (modal) { + modal.click(); + } } }