Loading module/Oscar/config/module.config.php +12 −1 Changes for module/Oscar/config/module.config.php: 12 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -252,7 +252,17 @@ return array( // DOCUMENTS [ 'controller' => 'ContractDocument', // --- Upload 'action' => ['upload', 'delete', 'changeType', 'index', 'show', 'download', 'process', 'signDocument'], 'action' => [ 'changeType', 'delete', 'documentsObserved', 'download', 'index', 'signDocument', 'process', 'show', 'upload', ], 'roles' => ['user'] ], Loading Loading @@ -536,6 +546,7 @@ return array( \Oscar\Service\ContractDocumentService::class => \Oscar\Service\ContractDocumentServiceFactory::class, \Oscar\Service\DocumentFormatterService::class => \Oscar\Service\DocumentFormatterServiceFactory::class, \Oscar\Service\GearmanJobLauncherService::class => \Oscar\Service\GearmanJobLauncherServiceFactory::class, \Oscar\Service\JsonFormatterService::class => \Oscar\Service\JsonFormatterServiceFactory::class, 'Logger' => \Oscar\Service\LoggerServiceFactory::class, \Oscar\Service\MailingService::class => \Oscar\Service\MailingServiceFactory::class, \Oscar\Service\MaintenanceService::class => \Oscar\Service\MaintenanceServiceFactory::class, Loading module/Oscar/config/routes.yml +8 −0 Changes for module/Oscar/config/routes.yml: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1281,6 +1281,14 @@ contractdocument: route: /process/:id defaults: action: process documents-observed: type: segment options: route: /documents-observed defaults: action: documentsObserved delete: type: segment options: Loading module/Oscar/src/Oscar/Controller/ContractDocumentController.php +37 −5 Changes for module/Oscar/src/Oscar/Controller/ContractDocumentController.php: 37 added lines, 5 removed lines. Original line number Diff line number Diff line <?php namespace Oscar\Controller; use Doctrine\ORM\NonUniqueResultException; Loading @@ -16,6 +17,8 @@ use Oscar\Service\ContractDocumentService; use Oscar\Service\NotificationService; use Oscar\Service\ProjectGrantService; use Oscar\Service\VersionnedDocumentService; use Oscar\Traits\UseJsonFormatterService; use Oscar\Traits\UseJsonFormatterServiceTrait; use Oscar\Traits\UseServiceContainer; use Oscar\Traits\UseServiceContainerTrait; use Oscar\Utils\FileSystemUtils; Loading @@ -29,10 +32,10 @@ use Laminas\View\Model\JsonModel; * Class ContractDocumentController * @package Oscar\Controller */ class ContractDocumentController extends AbstractOscarController implements UseServiceContainer class ContractDocumentController extends AbstractOscarController implements UseServiceContainer, UseJsonFormatterService { use UseServiceContainerTrait; use UseServiceContainerTrait, UseJsonFormatterServiceTrait; //////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES ACCESS Loading Loading @@ -131,7 +134,7 @@ class ContractDocumentController extends AbstractOscarController implements UseS * @return UnicaenDoctrinePaginator[] * @throws Exception */ public function indexAction() public function indexAction() :array { $documents = $this->getVersionnedDocumentService()->getDocuments(); $page = $this->params()->fromQuery('page', 1); Loading Loading @@ -380,7 +383,34 @@ class ContractDocumentController extends AbstractOscarController implements UseS } } public function signDocumentAction() { /** * Liste des documents suivis (présent en tant qu'observateur d'un processus de signature) * * @return void */ public function documentsObservedAction() { $this->getLoggerService()->debug("documentsObservedAction()"); $this->getJsonFormatterService()->setUrlHelper($this->url()); $person = $this->getCurrentPerson(); if ($this->isAjax() || $this->params()->fromQuery('f', null) == 'json') { $this->getLoggerService()->debug("Chargement des documents observés"); try { $documents = $this->getContractDocumentService()->getDocumentsWithSignProcessForUser($person); $output = $this->baseJsonResponse(); $output['documents'] = $this->getJsonFormatterService()->contractDocuments($documents); return $this->jsonOutput($output); } catch (Exception $e) { $msg = "Impossible d'afficher le suivi des signatures"; $this->getLoggerService()->error($msg . " : " . $e->getMessage()); return $this->jsonError($msg); } } return []; } public function signDocumentAction() { try { // DOCUMENT et FLOWDT try { Loading Loading @@ -411,7 +441,9 @@ class ContractDocumentController extends AbstractOscarController implements UseS return new JsonModel(['response' => 'ok']); } catch (Exception $e) { $this->getLoggerService()->critical("Erreur signature : " . $e->getMessage()); return $this->jsonError("Un problème est survenu lors de la soumission pour signature : " . $e->getMessage()); return $this->jsonError( "Un problème est survenu lors de la soumission pour signature : " . $e->getMessage() ); } } Loading module/Oscar/src/Oscar/Controller/ContractDocumentControllerFactory.php +2 −0 Changes for module/Oscar/src/Oscar/Controller/ContractDocumentControllerFactory.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ namespace Oscar\Controller; use Doctrine\ORM\EntityManager; use Interop\Container\ContainerInterface; use Oscar\Service\JsonFormatterService; use Oscar\Service\OscarConfigurationService; use Oscar\Service\OscarUserContext; use Laminas\ServiceManager\Factory\FactoryInterface; Loading @@ -25,6 +26,7 @@ class ContractDocumentControllerFactory implements FactoryInterface $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setEntityManager($container->get(EntityManager::class)); $c->setServiceContainer($container); $c->setJsonFormatterService($container->get(JsonFormatterService::class)); return $c; } } No newline at end of file module/Oscar/src/Oscar/Entity/Activity.php +2 −0 Changes for module/Oscar/src/Oscar/Entity/Activity.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2730,6 +2730,8 @@ class Activity implements ResourceInterface 'text' => sprintf("[%s] %s", $this->getOscarNum(), $this->getLabel()), 'num' => $this->getOscarNum(), 'label' => $this->getLabel(), 'project_acronym' => $this->getProject() ? $this->getProject()->getAcronym() : "", 'project_label' => $this->getProject() ? $this->getProject()->getLabel() : "", ]; } Loading Loading
module/Oscar/config/module.config.php +12 −1 Changes for module/Oscar/config/module.config.php: 12 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -252,7 +252,17 @@ return array( // DOCUMENTS [ 'controller' => 'ContractDocument', // --- Upload 'action' => ['upload', 'delete', 'changeType', 'index', 'show', 'download', 'process', 'signDocument'], 'action' => [ 'changeType', 'delete', 'documentsObserved', 'download', 'index', 'signDocument', 'process', 'show', 'upload', ], 'roles' => ['user'] ], Loading Loading @@ -536,6 +546,7 @@ return array( \Oscar\Service\ContractDocumentService::class => \Oscar\Service\ContractDocumentServiceFactory::class, \Oscar\Service\DocumentFormatterService::class => \Oscar\Service\DocumentFormatterServiceFactory::class, \Oscar\Service\GearmanJobLauncherService::class => \Oscar\Service\GearmanJobLauncherServiceFactory::class, \Oscar\Service\JsonFormatterService::class => \Oscar\Service\JsonFormatterServiceFactory::class, 'Logger' => \Oscar\Service\LoggerServiceFactory::class, \Oscar\Service\MailingService::class => \Oscar\Service\MailingServiceFactory::class, \Oscar\Service\MaintenanceService::class => \Oscar\Service\MaintenanceServiceFactory::class, Loading
module/Oscar/config/routes.yml +8 −0 Changes for module/Oscar/config/routes.yml: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1281,6 +1281,14 @@ contractdocument: route: /process/:id defaults: action: process documents-observed: type: segment options: route: /documents-observed defaults: action: documentsObserved delete: type: segment options: Loading
module/Oscar/src/Oscar/Controller/ContractDocumentController.php +37 −5 Changes for module/Oscar/src/Oscar/Controller/ContractDocumentController.php: 37 added lines, 5 removed lines. Original line number Diff line number Diff line <?php namespace Oscar\Controller; use Doctrine\ORM\NonUniqueResultException; Loading @@ -16,6 +17,8 @@ use Oscar\Service\ContractDocumentService; use Oscar\Service\NotificationService; use Oscar\Service\ProjectGrantService; use Oscar\Service\VersionnedDocumentService; use Oscar\Traits\UseJsonFormatterService; use Oscar\Traits\UseJsonFormatterServiceTrait; use Oscar\Traits\UseServiceContainer; use Oscar\Traits\UseServiceContainerTrait; use Oscar\Utils\FileSystemUtils; Loading @@ -29,10 +32,10 @@ use Laminas\View\Model\JsonModel; * Class ContractDocumentController * @package Oscar\Controller */ class ContractDocumentController extends AbstractOscarController implements UseServiceContainer class ContractDocumentController extends AbstractOscarController implements UseServiceContainer, UseJsonFormatterService { use UseServiceContainerTrait; use UseServiceContainerTrait, UseJsonFormatterServiceTrait; //////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES ACCESS Loading Loading @@ -131,7 +134,7 @@ class ContractDocumentController extends AbstractOscarController implements UseS * @return UnicaenDoctrinePaginator[] * @throws Exception */ public function indexAction() public function indexAction() :array { $documents = $this->getVersionnedDocumentService()->getDocuments(); $page = $this->params()->fromQuery('page', 1); Loading Loading @@ -380,7 +383,34 @@ class ContractDocumentController extends AbstractOscarController implements UseS } } public function signDocumentAction() { /** * Liste des documents suivis (présent en tant qu'observateur d'un processus de signature) * * @return void */ public function documentsObservedAction() { $this->getLoggerService()->debug("documentsObservedAction()"); $this->getJsonFormatterService()->setUrlHelper($this->url()); $person = $this->getCurrentPerson(); if ($this->isAjax() || $this->params()->fromQuery('f', null) == 'json') { $this->getLoggerService()->debug("Chargement des documents observés"); try { $documents = $this->getContractDocumentService()->getDocumentsWithSignProcessForUser($person); $output = $this->baseJsonResponse(); $output['documents'] = $this->getJsonFormatterService()->contractDocuments($documents); return $this->jsonOutput($output); } catch (Exception $e) { $msg = "Impossible d'afficher le suivi des signatures"; $this->getLoggerService()->error($msg . " : " . $e->getMessage()); return $this->jsonError($msg); } } return []; } public function signDocumentAction() { try { // DOCUMENT et FLOWDT try { Loading Loading @@ -411,7 +441,9 @@ class ContractDocumentController extends AbstractOscarController implements UseS return new JsonModel(['response' => 'ok']); } catch (Exception $e) { $this->getLoggerService()->critical("Erreur signature : " . $e->getMessage()); return $this->jsonError("Un problème est survenu lors de la soumission pour signature : " . $e->getMessage()); return $this->jsonError( "Un problème est survenu lors de la soumission pour signature : " . $e->getMessage() ); } } Loading
module/Oscar/src/Oscar/Controller/ContractDocumentControllerFactory.php +2 −0 Changes for module/Oscar/src/Oscar/Controller/ContractDocumentControllerFactory.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ namespace Oscar\Controller; use Doctrine\ORM\EntityManager; use Interop\Container\ContainerInterface; use Oscar\Service\JsonFormatterService; use Oscar\Service\OscarConfigurationService; use Oscar\Service\OscarUserContext; use Laminas\ServiceManager\Factory\FactoryInterface; Loading @@ -25,6 +26,7 @@ class ContractDocumentControllerFactory implements FactoryInterface $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setEntityManager($container->get(EntityManager::class)); $c->setServiceContainer($container); $c->setJsonFormatterService($container->get(JsonFormatterService::class)); return $c; } } No newline at end of file
module/Oscar/src/Oscar/Entity/Activity.php +2 −0 Changes for module/Oscar/src/Oscar/Entity/Activity.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2730,6 +2730,8 @@ class Activity implements ResourceInterface 'text' => sprintf("[%s] %s", $this->getOscarNum(), $this->getLabel()), 'num' => $this->getOscarNum(), 'label' => $this->getLabel(), 'project_acronym' => $this->getProject() ? $this->getProject()->getAcronym() : "", 'project_label' => $this->getProject() ? $this->getProject()->getLabel() : "", ]; } Loading