From ad71111581f0efbfb6b779573907aa62ead4f6ec Mon Sep 17 00:00:00 2001 From: Marcel-Anker Date: Thu, 6 Nov 2025 20:12:56 +0100 Subject: [PATCH] =?UTF-8?q?movie-performance=20component=20links=20to=20/s?= =?UTF-8?q?election/performance/:id=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app-routing-module.ts | 2 +- .../movie-performance.component.html | 2 +- .../movie-performance/movie-performance.component.ts | 11 +++++++++-- src/app/navbar/navbar.component.ts | 1 - src/app/theater-overlay/theater-overlay.component.ts | 8 ++++++-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/app/app-routing-module.ts b/src/app/app-routing-module.ts index aa4cc67..81ccf1b 100644 --- a/src/app/app-routing-module.ts +++ b/src/app/app-routing-module.ts @@ -19,7 +19,7 @@ const routes: Routes = [ children: [ { path: '', component: MainComponent }, { path: 'schedule', component: ScheduleComponent }, - { path: 'theater-overlay', component: TheaterOverlayComponent}, + { path: 'selection/performance/:id', component: TheaterOverlayComponent}, //? ], }, diff --git a/src/app/movie-performance/movie-performance.component.html b/src/app/movie-performance/movie-performance.component.html index 83fe76c..f1811e4 100644 --- a/src/app/movie-performance/movie-performance.component.html +++ b/src/app/movie-performance/movie-performance.component.html @@ -1,4 +1,4 @@ - +

{{ hall() }}

diff --git a/src/app/movie-performance/movie-performance.component.ts b/src/app/movie-performance/movie-performance.component.ts index ff7ba26..b6925d0 100644 --- a/src/app/movie-performance/movie-performance.component.ts +++ b/src/app/movie-performance/movie-performance.component.ts @@ -1,4 +1,4 @@ -import { Component, input, computed } from '@angular/core'; +import {Component, input, computed, OnInit} from '@angular/core'; @Component({ selector: 'app-movie-performance', @@ -6,12 +6,18 @@ import { Component, input, computed } from '@angular/core'; templateUrl: './movie-performance.component.html', styleUrl: './movie-performance.component.css' }) -export class MoviePerformanceComponent { +export class MoviePerformanceComponent implements OnInit { id = input.required(); hall = input.required(); start = input.required(); utilisation = input(); + route: string = ''; + + ngOnInit() { + this.route = `../selection/performance/${this.id()}`; + } + startTime = computed(() => this.start().toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' }) ); @@ -43,4 +49,5 @@ export class MoviePerformanceComponent { return ''; }); + } diff --git a/src/app/navbar/navbar.component.ts b/src/app/navbar/navbar.component.ts index b060804..fa984ce 100644 --- a/src/app/navbar/navbar.component.ts +++ b/src/app/navbar/navbar.component.ts @@ -13,6 +13,5 @@ export class NavbarComponent { navItems:{label:string, path:string}[] = [ {label: 'Programm', path: '/schedule'}, - {label: 'Kinosaal-test', path: '/theater-overlay'}, ] } diff --git a/src/app/theater-overlay/theater-overlay.component.ts b/src/app/theater-overlay/theater-overlay.component.ts index 12a6e3a..5cfcdbc 100644 --- a/src/app/theater-overlay/theater-overlay.component.ts +++ b/src/app/theater-overlay/theater-overlay.component.ts @@ -4,6 +4,7 @@ import {LoadingService} from '../loading.service'; import {catchError, of, tap} from 'rxjs'; import {Sitzplatz} from '@infinimotion/model-frontend'; import {TheaterSeatState} from '../model/theater-seat-state.model'; +import {ActivatedRoute} from '@angular/router'; @Component({ selector: 'app-theater-overlay', @@ -14,17 +15,20 @@ import {TheaterSeatState} from '../model/theater-seat-state.model'; export class TheaterOverlayComponent implements OnInit { private http = inject(HttpService); private loading = inject(LoadingService) - show = input.required(); + showId!: number; seatsPerRow: { seat: Sitzplatz, state: TheaterSeatState }[][] = [] + constructor(private route: ActivatedRoute) {} + ngOnInit() { + this.showId = Number(this.route.snapshot.paramMap.get('id')!); this.loadShowSeats(); } loadShowSeats() { this.loading.show(); - this.http.getSeatsByShowId(2).pipe( + this.http.getSeatsByShowId(this.showId).pipe( tap((data) => { let rows = this.converter(data) this.loading.hide();