コード例 #1
0
 /**
  * @Route(
  *      "/undocument/{documentId}",
  *      name="innova_collecticiel_unvalidate_document",
  *      requirements={"documentId" = "\d+"},
  *      options={"expose"=true}
  * )
  * @ParamConverter("document", class="InnovaCollecticielBundle:Document", options={"id" = "documentId"})
  * @Template()
  */
 public function ajaxUnvalidateDocumentAction(Document $document)
 {
     // Appel pour accés base
     $em = $this->getDoctrine()->getManager();
     // Recherche en base des données du document à mettre à jour
     $doc = $this->getDoctrine()->getRepository('InnovaCollecticielBundle:Document')->find($document->getId());
     // Mise à jour du booléen de Validation de true à false
     $doc->setvalidate(false);
     // Mise à jour de la base de données
     $em->persist($doc);
     $em->flush();
     // Récupération du dropID puis du dropZone
     $dropId = $document->getDrop()->getId();
     $dropRepo = $this->getDoctrine()->getRepository('InnovaCollecticielBundle:Drop');
     $drops = $dropRepo->findBy(array('id' => $dropId));
     $dropzoneRepo = $this->getDoctrine()->getRepository('InnovaCollecticielBundle:DropZone');
     $dropzones = $dropzoneRepo->findBy(array('id' => $drops[0]->getDropzone()->getId()));
     $dropzoneManager = $this->get('innova.manager.dropzone_manager');
     $collecticielOpenOrNot = $dropzoneManager->collecticielOpenOrNot($dropzones[0]);
     // Ajout afin d'afficher la partie du code avec "Demande transmise"
     $template = $this->get("templating")->render('InnovaCollecticielBundle:Document:documentIsValidate.html.twig', array('document' => $document, 'collecticielOpenOrNot' => $collecticielOpenOrNot, 'dropzone' => $dropzones[0]));
     // Retour du template actualisé à l'Ajax et non plus du Json.
     return new Response($template);
 }
コード例 #2
0
 /**
  * @Route(
  *      "/{resourceId}/open/resource/{documentId}",
  *      name="innova_collecticiel_open_resource",
  *      requirements={"resourceId" = "\d+", "documentId" = "\d+"}
  * )
  * @ParamConverter("dropzone", class="InnovaCollecticielBundle:Dropzone", options={"id" = "resourceId"})
  * @ParamConverter("document", class="InnovaCollecticielBundle:Document", options={"id" = "documentId"})
  * @ParamConverter("user", options={"authenticatedUser" = true})
  * @Template()
  */
 public function openResourceAction(Dropzone $dropzone, Document $document, $user)
 {
     $this->get('innova.manager.dropzone_voter')->isAllowToOpen($dropzone);
     if ($document->getType() == 'url') {
         return $this->redirect($document->getUrl());
     } elseif ($document->getType() == 'text' or $document->getType() == 'resource' or $document->getType() == 'file') {
         /** Issue #27 "il se produit un plantage au niveau de "temporary_access_resource_manager" InnovaERV */
         $this->get('innova.temporary_access_resource_manager')->addTemporaryAccess($document->getResourceNode(), $user);
         $event = new LogDocumentOpenEvent($dropzone, $document->getDrop(), $document);
         $this->dispatch($event);
         if ($document->getResourceNode()->getResourceType()->getName() == 'file') {
             return $this->redirect($this->generateUrl('claro_resource_download') . '?ids[]=' . $document->getResourceNode()->getId());
         } else {
             return $this->redirect($this->generateUrl('claro_resource_open', array('resourceType' => $document->getResourceNode()->getResourceType()->getName(), 'node' => $document->getResourceNode()->getId())));
         }
     }
 }