From 4bdae0252b30a0264f32df2fcbe82f28972c00b5 Mon Sep 17 00:00:00 2001 From: sanchezvem Date: Wed, 12 Nov 2025 16:35:20 +0100 Subject: [PATCH] added login form --- public/icon.png | Bin 21805 -> 0 bytes src/app/components/login/login.css | 0 src/app/components/login/login.html | 23 ++++++++++++ src/app/components/login/login.ts | 39 ++++++++++++++++++++ src/app/components/user-table/user-table.ts | 4 -- src/app/pages/welcome/welcome.html | 8 ++-- src/app/pages/welcome/welcome.ts | 5 ++- 7 files changed, 69 insertions(+), 10 deletions(-) delete mode 100644 public/icon.png create mode 100644 src/app/components/login/login.css create mode 100644 src/app/components/login/login.html create mode 100644 src/app/components/login/login.ts diff --git a/public/icon.png b/public/icon.png deleted file mode 100644 index 91fcc13041c2b445a7e7c36f10a1a8cdf2dca116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21805 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 diff --git a/src/app/components/login/login.css b/src/app/components/login/login.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/login/login.html b/src/app/components/login/login.html new file mode 100644 index 0000000..32da155 --- /dev/null +++ b/src/app/components/login/login.html @@ -0,0 +1,23 @@ +
+ + + Identifiant + + + + + + + + + + Mot de passe + + + + + + + + +
\ No newline at end of file diff --git a/src/app/components/login/login.ts b/src/app/components/login/login.ts new file mode 100644 index 0000000..6145315 --- /dev/null +++ b/src/app/components/login/login.ts @@ -0,0 +1,39 @@ +import { Component } from '@angular/core'; +import {FormControl, FormGroup, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzButtonComponent} from "ng-zorro-antd/button"; + +@Component({ + selector: 'app-login', + imports: [ + NzColDirective, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzInputDirective, + NzRowDirective, + ReactiveFormsModule, + NzButtonComponent + ], + templateUrl: './login.html', + styleUrl: './login.css', +}) +export class Login { + loginForm = new FormGroup({ + name: new FormControl(null, [Validators.required]), + password: new FormControl(null, [Validators.required]), + }) + + submitForm() { + // Pour annuler si le formulaire est invalide + if (this.loginForm.invalid) return; + + // Pour obtenir la valeur du formulaire + console.log(this.loginForm.getRawValue()) + + // Pour vider le formulaire + this.loginForm.reset() + }} diff --git a/src/app/components/user-table/user-table.ts b/src/app/components/user-table/user-table.ts index 09a976f..43fc804 100644 --- a/src/app/components/user-table/user-table.ts +++ b/src/app/components/user-table/user-table.ts @@ -4,9 +4,7 @@ import {Modal} from "../modal/modal"; import {DatePipe} from "@angular/common"; import {NzButtonComponent} from "ng-zorro-antd/button"; import {UserInfo} from "../../interfaces/user.interfaces"; -import {LoanTable} from "../loan-table/loan-table"; import {UpdateUser} from "../update-user/update-user"; -import {UpdateLoan} from "../update-loan/update-loan"; @Component({ selector: 'app-user-table', @@ -15,9 +13,7 @@ import {UpdateLoan} from "../update-loan/update-loan"; Modal, NzButtonComponent, NzTableComponent, - LoanTable, UpdateUser, - UpdateLoan ], templateUrl: './user-table.html', styleUrl: './user-table.css', diff --git a/src/app/pages/welcome/welcome.html b/src/app/pages/welcome/welcome.html index c287a17..e29be90 100644 --- a/src/app/pages/welcome/welcome.html +++ b/src/app/pages/welcome/welcome.html @@ -1,5 +1,3 @@ -

welcome works!

- -

- Hello world! -

\ No newline at end of file +
+ +
\ No newline at end of file diff --git a/src/app/pages/welcome/welcome.ts b/src/app/pages/welcome/welcome.ts index 6af8fa8..71f839b 100644 --- a/src/app/pages/welcome/welcome.ts +++ b/src/app/pages/welcome/welcome.ts @@ -1,9 +1,12 @@ import { Component } from '@angular/core'; import {CreateBook} from "../../components/create-book/create-book"; +import {Login} from "../../components/login/login"; @Component({ selector: 'app-welcome', - imports: [], + imports: [ + Login + ], templateUrl: './welcome.html', styleUrl: './welcome.css' })