@@ -11,110 +11,91 @@ import { Subscription } from 'rxjs';
1111 styleUrls : [ './barre-recherche.component.css' ]
1212} )
1313export class BarreRechercheComponent implements OnInit , OnDestroy {
14-
15- rechercheForm : FormGroup ;
16- messageErreur : string ;
17- recetteSubscription : Subscription ;
18- isDisabled : boolean ;
19- recherche : string = "" ;
20-
21- constructor ( private recettesService : RecettesService ,
22- private formBuilder : FormBuilder ,
23- private router : Router ) { }
24-
25- ngOnInit ( ) : void {
26- // Récupération des données stockées dans la bdd
27- // this.recettesService.getRecettesFromBDD();
28- this . initForm ( ) ;
29- }
30-
31- // Initialisation du formulaire
32- initForm ( ) {
33- // Récupération des données stockées dans la bdd
34- this . recettesService . getRecettesFromBDD ( ) ;
35- this . rechercheForm = this . formBuilder . group ( { recherche : [ '' , Validators . required ] } ) ;
36- }
37-
38- // Méthode exécutée lors du clic sur le bouton de la barre de recherche
39- onRecherche ( ) {
40- // Recupération de la recherche
41- this . recherche = this . rechercheForm . get ( 'recherche' ) . value ;
42-
43- // Vérification que l'utilisateur a saisi quelque chose
44- if ( this . recherche !== '' ) {
45- console . log ( "Recherche : " + this . recherche ) ;
46- this . recettesService . setValRecherche ( this . recherche ) ;
47-
48- this . messageErreur = '' ;
49- // Recherche dans la bdd ou requete via api si pas de résultat
50- this . recettesService . rechercher ( this . recherche ) . then (
51- ( ) => {
52- this . rediriger ( this . recettesService . tabNonVide ( ) ) ;
53- console . log ( "redirection Ok" ) ;
54- } , ( err ) => {
55- console . log ( "Erreur : " + err ) ;
56- }
57- ) ;
58-
59- // this.recettesService.getRecettesUpdateListener().toPromise().
60-
61-
62-
63- // Si au moins un resultat est obtenu (== tableau non vide)
64-
65- // if(this.recettesService.tabNonVide()){
66- // // redirection vers les resultats de la recherche
67- // this.router.navigate(['/']).then(
68- // () => { this.router.navigate(['/results', recherche]) }
69- // );
70- // }
71- // // cas ou pas de résultat (== tableau vide)
72- // else {
73- // // redirection vers la page 'no-result'
74- // this.router.navigate(['/']).then(
75- // () => { this.router.navigate(['/results', 'no-result']) }
76- // );
77- // }
78-
79- // Réinitialisation de la barre de recherche
80- this . initForm ( ) ;
81-
82- // On bloque le bouton
83- this . onClick ( ) ;
84- }
85- // Cas ou le champ de recherche est vide => affichage du message d'erreur
86- else {
87- this . messageErreur = "Veuillez saisir quelque chose" ;
88- }
89-
90- }
91-
92- rediriger ( val : boolean ) {
93- if ( val ) {
94- // redirection vers les resultats de la recherche
95- this . router . navigate ( [ '/' ] ) . then (
96- ( ) => { this . router . navigate ( [ '/results' , this . recherche ] ) }
97- ) ;
98- }
99- else {
100- // redirection vers la page 'no-result'
101- this . router . navigate ( [ '/' ] ) . then (
102- ( ) => { this . router . navigate ( [ '/results' , 'no-result' ] ) }
103- ) ;
104- }
105- }
106-
107- // Bloquer l'accès à plusieurs requêtes pendant 5 secondes
108- onClick ( ) {
109- this . isDisabled = true ;
110-
111- setTimeout ( ( ) => {
112- this . isDisabled = false ;
113- } , 5000 ) ;
114- }
115-
116- ngOnDestroy ( ) {
117- // ne pas oublier => sinon, risque de bugs
118- this . recetteSubscription . unsubscribe ( ) ;
119- }
14+ // formulaire (input de la barre de recherche)
15+ rechercheForm : FormGroup ;
16+ messageErreur : string ;
17+ recetteSubscription : Subscription ;
18+ isDisabled : boolean ;
19+ recherche : string = "" ;
20+
21+ constructor ( private recettesService : RecettesService ,
22+ private formBuilder : FormBuilder ,
23+ private router : Router ) { }
24+
25+ ngOnInit ( ) : void { this . initForm ( ) ; }
26+
27+ // Initialisation du formulaire
28+ initForm ( ) {
29+ // Récupération des données stockées dans la bdd
30+ this . recettesService . getRecettesFromBDD ( ) ;
31+ this . rechercheForm = this . formBuilder . group ( { recherche : [ '' , Validators . required ] } ) ;
32+ }
33+
34+ // Méthode exécutée lors du clic sur le bouton de la barre de recherche
35+ onRecherche ( ) {
36+ // Recupération de la recherche
37+ this . recherche = this . rechercheForm . get ( 'recherche' ) . value ;
38+
39+ // Vérification que l'utilisateur a saisi quelque chose
40+ if ( this . recherche !== '' ) {
41+ console . log ( "Recherche : " + this . recherche ) ;
42+ this . recettesService . setValRecherche ( this . recherche ) ;
43+
44+ this . messageErreur = '' ;
45+
46+ // Recherche dans la bdd ou requete via api si pas de résultat dans la bdd
47+ this . recettesService . rechercher ( this . recherche ) . then (
48+ ( ) => {
49+ // redirection de l'utilisateur sur la bonne page
50+ this . rediriger ( this . recettesService . tabNonVide ( ) ) ;
51+ } , ( err ) => {
52+ console . log ( "Erreur : " + err ) ;
53+ }
54+ ) ;
55+
56+ // Réinitialisation de la barre de recherche
57+ this . initForm ( ) ;
58+
59+ // On bloque le bouton
60+ this . onClick ( ) ;
61+ }
62+ // Cas ou le champ de recherche est vide => affichage du message d'erreur
63+ else {
64+ this . messageErreur = "Veuillez saisir quelque chose" ;
65+ }
66+
67+ }
68+
69+ // Permet de rédiger l'utilisateur soit vers la page de résultats, soit vers la page
70+ // 'no-result'
71+ rediriger ( val : boolean ) {
72+ if ( val ) {
73+ // redirection vers les resultats de la recherche
74+ this . router . navigate ( [ '/' ] ) . then (
75+ ( ) => { this . router . navigate ( [ '/results' , this . recherche ] ) }
76+ ) ;
77+ }
78+ else {
79+ // redirection vers la page 'no-result'
80+ this . router . navigate ( [ '/' ] ) . then (
81+ ( ) => { this . router . navigate ( [ '/results' , 'no-result' ] ) }
82+ ) ;
83+ }
84+ console . log ( "redirection OK" ) ;
85+ }
86+
87+ // Bloquer l'accès à plusieurs requêtes pendant 5 secondes
88+ // Permet de limiter les requêtes à l'api et à la bdd
89+ onClick ( ) {
90+ this . isDisabled = true ;
91+
92+ setTimeout ( ( ) => {
93+ this . isDisabled = false ;
94+ } , 5000 ) ;
95+ }
96+
97+ ngOnDestroy ( ) {
98+ // ne pas oublier => sinon, risque de bugs
99+ this . recetteSubscription . unsubscribe ( ) ;
100+ }
120101}
0 commit comments