Add PDF signature zone availability checks

Introduce `PDFSignatureZoneAvailable` service to check available PDF signature zones. Updated `WorkflowAddSignatureController` to use the new service. Added unit tests to verify the correctness of the functionality.
This commit is contained in:
Julien Fastré 2024-09-04 14:09:53 +02:00
parent e17203ca3a
commit 667e144681
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
3 changed files with 4 additions and 4 deletions

View File

@ -47,7 +47,7 @@ class PDFSignatureZoneAvailable
$this->collectSignaturesInUse($entityWorkflow)
);
return array_filter($zones, fn (PDFSignatureZone $zone) => !in_array($zone->index, $signatureZonesIndexes, true));
return array_values(array_filter($zones, fn (PDFSignatureZone $zone) => !in_array($zone->index, $signatureZonesIndexes, true)));
}
/**

View File

@ -30,7 +30,7 @@ final readonly class WorkflowAddSignatureController
private Environment $twig
) {}
#[Route(path: '/{_locale}/main/workflow/signature/{id}/sign', name: 'chill_main_workflow_signature', methods: 'GET')]
#[Route(path: '/{_locale}/main/workflow/signature/{id}/sign', name: 'chill_main_workflow_signature_add', methods: 'GET')]
public function __invoke(EntityWorkflowStepSignature $signature, Request $request): Response
{
$entityWorkflow = $signature->getStep()->getEntityWorkflow();

View File

@ -377,7 +377,7 @@ class WorkflowController extends AbstractController
$signature = $this->entityManager->getRepository(EntityWorkflowStepSignature::class)->find($signature_id);
if ($signature->getSigner() instanceof User) {
return $this->redirectToRoute('chill_main_workflow_signature', ['signature_id' => $signature_id]);
return $this->redirectToRoute('chill_main_workflow_signature_add', ['id' => $signature_id]);
}
$metadataForm = $this->createForm(WorkflowSignatureMetadataType::class);
@ -401,7 +401,7 @@ class WorkflowController extends AbstractController
$this->entityManager->persist($signature);
$this->entityManager->flush();
return $this->redirectToRoute('chill_main_workflow_signature', ['signature_id' => $signature_id]);
return $this->redirectToRoute('chill_main_workflow_signature_add', ['id' => $signature_id]);
}
return $this->render(