Add functionality to cancel tickets
Introduces a cancel order confirmation dialog and integrates it into the order flow. Refactors error and success components to support singular/plural seat messaging and retry actions. Updates navigation and button behaviors for better user experience. Fixes minor UI and logic issues in reservation, purchase, and conversion flows.
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
warning
|
||||
</mat-icon>
|
||||
<h1 class="text-xl font-bold">Kauf fehlgeschlagen!</h1>
|
||||
<p class="text-center">Leider konnten Ihre Sitzplätze nicht gekauft werden. Dies kann passieren, wenn andere Nutzer zeitgleich versucht haben, dieselben Sitzplätze zu kaufen.</p>
|
||||
<p class="text-center">{{ infoText }}</p>
|
||||
|
||||
<button mat-button matButton="filled" class="error-button mt-4 w-80">Erneut versuchen</button>
|
||||
<button routerLink="/schedule" mat-button matButton="outlined" color="accent" class="error-button w-80 mt-1">Zurück zur Programmauswahl</button>
|
||||
<button mat-button type="button" matButton="filled" class="error-button mt-4 w-80" (click)="retry.emit()">Erneut versuchen</button>
|
||||
<button mat-button type="button" matButton="outlined" color="accent" class="error-button w-80 mt-1" (click)="navigate()">Zurück zur Sitzplatzauswahl</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { Component, inject, input, output } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'app-purchase-failed',
|
||||
@@ -7,5 +8,22 @@ import { Component } from '@angular/core';
|
||||
styleUrl: './purchase-failed.component.css',
|
||||
})
|
||||
export class PurchaseFailedComponent {
|
||||
performanceId = input.required<number>();
|
||||
moreThanOne = input<boolean>(false);
|
||||
|
||||
retry = output<void>();
|
||||
|
||||
private router = inject(Router);
|
||||
|
||||
infoText!: string;
|
||||
|
||||
ngOnInit(): void {
|
||||
this.infoText = this.moreThanOne()?
|
||||
'Leider konnten Ihre Sitzplätze nicht gekauft werden. Dies kann passieren, wenn andere Nutzer zeitgleich versucht haben, dieselben Sitzplätze zu kaufen.' :
|
||||
'Leider konnte Ihr Sitzplatz nicht gekauft werden. Dies kann passieren, wenn andere Nutzer zeitgleich versucht haben, denselben Sitzplatz zu kaufen.';
|
||||
}
|
||||
|
||||
navigate() {
|
||||
window.location.href = `/checkout/performance/${this.performanceId()}`;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user