Commit 0a6633cc authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Suppression des signatures/processus

Evenements à différentes étapes
parent 446c5563
Loading
Loading
Loading
Loading
Loading
+18 −3
Changes for config/merged/signature.config.php: 18 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace UnicaenCalendrier;

use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Regex;
use Laminas\Router\Http\Segment;
use UnicaenSignature\Controller\ProcessController;
use UnicaenSignature\Controller\ProcessControllerFactory;
@@ -43,6 +44,7 @@ return [
                        'signatures',
                        'signatureflows',
                        'signatureflowsUi',
                        'previewDocument',
                        'triggerProcess',
                    ],
                    'privileges' => [
@@ -149,13 +151,14 @@ return [
                                ]
                            ],
                            'document' => [
                                'type' => Segment::class,
                                'type' => Regex::class,
                                'options' => [
                                    'route' => '/document/:id',
                                    'regex' => '/document-(?<id>\d+)-preview?',
                                    'spec' => '/document-%id%-preview',
                                    'defaults' => [
                                        'action' => 'previewDocument'
                                    ]
                                ]
                                ],
                            ],
                            'new' => [
                                'type' => Segment::class,
@@ -186,6 +189,18 @@ return [
                            'defaults' => [
                                'action' => 'signatures'
                            ]
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'preview-document' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/preview-document/:id',
                                    'defaults' => [
                                        'action' => 'previewDocument'
                                    ]
                                ]
                            ]
                        ]
                    ],
                    'new' => [
+4 −4
Changes for public/src/views/TriggerProcess.vue: 4 added lines, 4 removed lines.
Original line number Diff line number Diff line
<template>
  <div>
    <div class="row">
      <div class="col-md-6">
      <div class="col-md-8">
        <h1>{{ signatureflow.label }}</h1>
        <p>{{ signatureflow.description }}</p>
        Document : <a :href="signatureflow.doc_url+'?dl=0'" download="true">Document</a>
        <iframe width="100%" height="100%" :src="signatureflow.doc_url+'?dl=0'"></iframe>
        Document : <a :href="signatureflow.doc_url" download="preview">Document</a>
        <iframe width="100%" height="800px" :src="signatureflow.doc_url+'?dl=0'"></iframe>
      </div>
      <div class="col-md-6">
      <div class="col-md-4">
        <h2>étapes</h2>
        <article v-for="s in signatureflow.steps" class="step">
          <h3>Etape {{ s.order}} - <strong>{{ s.label }}</strong></h3>
+2 −2
Changes for src/Controller/ProcessController.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ class ProcessController extends AbstractActionController
    public function configureAction(): ViewModel|JsonModel
    {
        try {
            $id = $this->params()->fromRoute('id');
            $id = intval($this->params()->fromRoute('id'));
            if (!$id) {
                throw new SignatureException("Paramètre manquant");
            }
@@ -155,7 +155,7 @@ class ProcessController extends AbstractActionController
            $doc = $this->getProcessService()->getProcessDocumentDatas($process);
            header('Content-Type: ' . $doc['mime']);
            header('Content-Transfer-Encoding: Binary');
            header('Content-Disposition: attachment; filename="preview.pdf');
//            header('Content-Disposition: attachment; filename="preview.pdf');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
+48 −2
Changes for src/Controller/SignatureController.php: 48 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Laminas\View\Model\ViewModel;
use UnicaenSignature\Entity\Db\Signature;
use UnicaenSignature\Form\SignatureForm;
use UnicaenSignature\Service\SignatureServiceAwareTrait;
use UnicaenSignature\Utils\FileUploader;
use UnicaenSignature\Utils\SignatureConstants;

class SignatureController extends AbstractActionController
@@ -254,12 +255,29 @@ class SignatureController extends AbstractActionController
            );
            $form->setData($post);
            if ($form->isValid()) {


                $file = $this->getRequest()->getFiles()->toArray()['file'];
                $destination = $this->getSignatureService()->getSignatureConfigurationService()->getDocumentsLocation();
                $basename = uniqid('tmp_signature_simple_');
                $mimesAllowed = $this->getSignatureService()->getSignatureConfigurationService()->getDocumentMimes();

                $uploader = new FileUploader();
                $uploader->setDestination($destination)
                    ->setFilename($basename)
                    ->setMimesAllowed($mimesAllowed);
                $uploader->updoad($file);

                /** @var Signature $datas */
                $datas = $form->getData();
                $datas->setDocumentPath($uploader->getUploadName());

                try {
                    $this->getSignatureService()->saveNewSignature($form->getData(), true);
                } catch (Exception $e) {
                    $this->flash()->addErrorMessage($e->getMessage());
                }
                return $this->redirect()->toRoute('unicaen-signature');
                return $this->redirect()->toRoute('unicaen-signature/signatures');
            } else {
                // meh
            }
@@ -320,12 +338,40 @@ class SignatureController extends AbstractActionController
        return $this->redirect()->toRoute('unicaen-signature/signatures');
    }

    public function previewDocumentAction()
    {
        try {
            $id = intval($this->params()->fromRoute('id'));
            if (!$id) {
                throw new SignatureException("Paramètre manquant");
            }

            $signature = $this->getSignatureService()->getSignature($id);
            $doc = $this->getSignatureService()->getDocumentData($signature);
            header('Content-Type: ' . $doc['mime']);
            header('Content-Transfer-Encoding: Binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: '. filesize($doc['path']));
            die($doc['datas']);

        } catch (\Exception $e) {
            $this->flash()->addErrorMessage($e->getMessage());
        }
    }

    /**
     * Affichage du document.
     *
     * @return Response|void
     */
    public function downloadAction()
    {
        try {
            $id = $this->params('id');
            header("Content-type:application/pdf");
            header("Content-Disposition:attachment;filename=test.pdf");
            header("Content-Disposition:attachment;filename=preview.pdf");
            die($this->getSignatureService()->getDocumentSignedSignatureById($id));
        } catch (Exception $e) {
            $this->flash()->addErrorMessage("Erreur : " . $e->getMessage());
+7 −0
Changes for src/Entity/Db/Signature.php: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -529,4 +529,11 @@ class Signature
        }
        return $out;
    }

    public function __toString(): string
    {
        return sprintf("[%s] signature : '%s'", $this->getId(), $this->getLabel());
    }


}
 No newline at end of file
Loading