From f04a3c7ba32a3f751f88aab72a2b111ea34507f0 Mon Sep 17 00:00:00 2001 From: FyloZ Date: Mon, 20 Dec 2021 19:20:01 -0500 Subject: [PATCH] Fix mix editor did not get the materials from the correct location in update mode --- src/app/modules/recipes/mix/mix.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/app/modules/recipes/mix/mix.ts b/src/app/modules/recipes/mix/mix.ts index a91833f..7257668 100644 --- a/src/app/modules/recipes/mix/mix.ts +++ b/src/app/modules/recipes/mix/mix.ts @@ -27,7 +27,7 @@ abstract class _BaseMixPage extends SubscribingComponent { protected mixService: MixService, private recipeService: RecipeService, private materialTypeService: MaterialTypeService, - private materialService: MaterialService, + protected materialService: MaterialService, errorService: ErrorService, router: Router, activatedRoute: ActivatedRoute @@ -50,13 +50,15 @@ abstract class _BaseMixPage extends SubscribingComponent { set recipe(recipe: Recipe) { this._recipe = recipe - this.materials$ = this.materialService.getAllForMixCreation(recipe.id) + this.materials$ = this.fetchMaterials(recipe.id) } get recipe(): Recipe { return this._recipe } + protected abstract fetchMaterials(recipeId: number): Observable + abstract submit(dto: MixSaveDto) } @@ -65,6 +67,10 @@ abstract class _BaseMixPage extends SubscribingComponent { templateUrl: 'add.html' }) export class MixAdd extends _BaseMixPage { + protected fetchMaterials(recipeId: number): Observable { + return this.materialService.getAllForMixCreation(recipeId) + } + submit(dto: MixSaveDto) { this.subscribeAndNavigate( this.mixService.saveDto(dto), @@ -80,21 +86,27 @@ export class MixAdd extends _BaseMixPage { export class MixEdit extends _BaseMixPage { mix: Mix + private mixId: number + ngOnInit() { super.ngOnInit() + this.mixId = this.urlUtils.parseIntUrlParam('id') + this.fetchMix() } private fetchMix() { - const mixId = this.urlUtils.parseIntUrlParam('id') - this.subscribe( - this.mixService.getById(mixId), + this.mixService.getById(this.mixId), mix => this.mix = mix ) } + protected fetchMaterials(recipeId: number): Observable { + return this.materialService.getAllForMixUpdate(this.mixId) + } + submit(dto: MixSaveDto) { this.subscribeAndNavigate( this.mixService.updateDto({...dto, id: this.mix.id}),