From 51580432bd434a239aff51533e163598a9d57018 Mon Sep 17 00:00:00 2001 From: Corentin R Date: Wed, 26 Jun 2024 22:36:21 +0200 Subject: [PATCH] Adding list of ingredients with guards and detail of recipe --- .../ingredients/ingredients.component.css | 0 .../ingredients/ingredients.component.html | 50 +++++++++++++++++++ .../ingredients/ingredients.component.spec.ts | 23 +++++++++ .../ingredients/ingredients.component.ts | 45 +++++++++++++++++ .../recipe-detail/recipe-detail.component.css | 0 .../recipe-detail.component.html | 5 ++ .../recipe-detail.component.spec.ts | 23 +++++++++ .../recipe-detail/recipe-detail.component.ts | 26 ++++++++++ 8 files changed, 172 insertions(+) create mode 100644 daidokoro/src/app/component/ingredients/ingredients.component.css create mode 100644 daidokoro/src/app/component/ingredients/ingredients.component.html create mode 100644 daidokoro/src/app/component/ingredients/ingredients.component.spec.ts create mode 100644 daidokoro/src/app/component/ingredients/ingredients.component.ts create mode 100644 daidokoro/src/app/component/recipe-detail/recipe-detail.component.css create mode 100644 daidokoro/src/app/component/recipe-detail/recipe-detail.component.html create mode 100644 daidokoro/src/app/component/recipe-detail/recipe-detail.component.spec.ts create mode 100644 daidokoro/src/app/component/recipe-detail/recipe-detail.component.ts diff --git a/daidokoro/src/app/component/ingredients/ingredients.component.css b/daidokoro/src/app/component/ingredients/ingredients.component.css new file mode 100644 index 0000000..e69de29 diff --git a/daidokoro/src/app/component/ingredients/ingredients.component.html b/daidokoro/src/app/component/ingredients/ingredients.component.html new file mode 100644 index 0000000..97f0504 --- /dev/null +++ b/daidokoro/src/app/component/ingredients/ingredients.component.html @@ -0,0 +1,50 @@ + + +
+ +
+ Recette 1 +
+

{{ ingredient.$name }}

+
+
+ +
+ diff --git a/daidokoro/src/app/component/ingredients/ingredients.component.spec.ts b/daidokoro/src/app/component/ingredients/ingredients.component.spec.ts new file mode 100644 index 0000000..dc7c651 --- /dev/null +++ b/daidokoro/src/app/component/ingredients/ingredients.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { IngredientsComponent } from './ingredients.component'; + +describe('IngredientsComponent', () => { + let component: IngredientsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [IngredientsComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(IngredientsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/daidokoro/src/app/component/ingredients/ingredients.component.ts b/daidokoro/src/app/component/ingredients/ingredients.component.ts new file mode 100644 index 0000000..af71741 --- /dev/null +++ b/daidokoro/src/app/component/ingredients/ingredients.component.ts @@ -0,0 +1,45 @@ +import {Component, OnInit} from '@angular/core'; +import {IngredientService} from "../../service/ingredient.service"; +import {Ingredient} from "../../model/ingredient.model"; +import {NgFor} from "@angular/common"; +import {LoginService} from "../../service/login.service"; +import {Link} from "../../model/link.model"; +import {LinkService} from "../../service/link.service"; + +@Component({ + selector: 'app-ingredients', + standalone: true, + imports: [ + NgFor, + ], + templateUrl: './ingredients.component.html', + styleUrl: './ingredients.component.css' +}) +export class IngredientsComponent implements OnInit{ + + ingredients: Ingredient[] = []; + links: Link[] = this.linkService.getLinks() + + constructor(private ingredientService : IngredientService,private loginService: LoginService,private linkService : LinkService) {} + + ngOnInit() { + this.ingredientService.getAll().subscribe(ingredients => { + this.ingredients = ingredients; + }); + } + + onClickLogin(event: Event): void { + event.preventDefault(); // Prevent the default anchor behavior + this.loginService.login(); + } + + onClickLogout(event: Event): void { + event.preventDefault(); // Prevent the default anchor behavior + this.loginService.logout(); + } + + isLogged(): boolean { + return this.loginService.isLogged(); + } + +} diff --git a/daidokoro/src/app/component/recipe-detail/recipe-detail.component.css b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.css new file mode 100644 index 0000000..e69de29 diff --git a/daidokoro/src/app/component/recipe-detail/recipe-detail.component.html b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.html new file mode 100644 index 0000000..f411fb3 --- /dev/null +++ b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.html @@ -0,0 +1,5 @@ +

{{recipe?.$name}}

+

{{recipe?.$createdAt}}

+ +

{{recipe?.$description}}

+ diff --git a/daidokoro/src/app/component/recipe-detail/recipe-detail.component.spec.ts b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.spec.ts new file mode 100644 index 0000000..3db95b6 --- /dev/null +++ b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RecipeDetailComponent } from './recipe-detail.component'; + +describe('RecipeDetailComponent', () => { + let component: RecipeDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [RecipeDetailComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(RecipeDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/daidokoro/src/app/component/recipe-detail/recipe-detail.component.ts b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.ts new file mode 100644 index 0000000..2949c8a --- /dev/null +++ b/daidokoro/src/app/component/recipe-detail/recipe-detail.component.ts @@ -0,0 +1,26 @@ +import {Component, Input} from '@angular/core'; +import {Recipe} from "../../model/recipe.model"; +import {RecipeService} from "../../service/recipe.service"; +import {RouterLink, RouterLinkActive, RouterOutlet} from "@angular/router"; +import {NgFor} from "@angular/common"; + +@Component({ + selector: 'app-recipe-detail', + standalone: true, + imports: [RouterOutlet,RouterLink, RouterLinkActive,NgFor], + templateUrl: './recipe-detail.component.html', + styleUrl: './recipe-detail.component.css' +}) +export class RecipeDetailComponent { + + recipe : Recipe|null = null; + + constructor(private recipeService : RecipeService) { + } + + @Input() + set id(id: number) { + this.recipe = this.recipeService.getRecipe(id)!; + } + +}