wip: improved validation and feedback

This commit is contained in:
Björn Fromme
2026-03-16 11:59:11 +01:00
parent 7aea149b6c
commit 54a3145710
8 changed files with 36 additions and 176 deletions
@@ -11,7 +11,6 @@ use App\BusProNet\Model\Notification;
use App\Controller\Booking\Traits;
use App\Controller\Booking\Traits\BookingDataTrait;
use App\Controller\Booking\Traits\BookingExceptionHandlerTrait;
use App\Controller\Booking\Traits\ParticipantValidationTrait;
use App\Entity\User;
use App\Form\BookingEditType;
use App\Form\BookingParticipantType;
@@ -49,7 +48,6 @@ class IndexController extends AbstractController
use BookingExceptionHandlerTrait;
use HxTrait;
use Traits\ParticipantCardFlowTrait;
use ParticipantValidationTrait;
public function __construct(
private readonly ApiClient $apiClient,
@@ -156,15 +154,6 @@ class IndexController extends AbstractController
return $this->hxRedirect($request, $this->generateUrl('app_booking_edit', ['id' => $id]));
}
// Extract participant validation errors
$participantErrors = [];
$participantErrorMessages = [];
if ($form->isSubmitted() && false === $form->isValid()) {
$extractedErrors = $this->extractParticipantValidationErrors($form);
$participantErrors = $extractedErrors['errorIndices'];
$participantErrorMessages = $extractedErrors['errorMessages'];
}
// Generate card data for all participants
$cardsData = $this->participantCardService->getAllCardsData($bookingDto);
@@ -190,9 +179,7 @@ class IndexController extends AbstractController
'groupedSelectedRooms' => $groupedSelectedRooms,
'assignmentCounts' => $roomAssignmentCounts,
'isDirty' => $this->fingerprintService->isDirty($bookingDto),
'hasValidationErrors' => count($participantErrors) > 0,
'participantErrors' => $participantErrors,
'participantErrorMessages' => $participantErrorMessages,
'hasValidationErrors' => $form->isSubmitted() && false === $form->isValid(),
];
// If HTMX request, render only blocks to avoid layout duplication