Loading config/merged/tableau-de-bord.config.php 0 → 100644 +85 −0 Original line number Diff line number Diff line <?php use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenIndicateur\Controller\TableauDeBordController; use UnicaenIndicateur\Controller\TableauDeBordControllerFactory; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordForm; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordFormFactory; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordHydrator; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordHydratorFactory; use UnicaenIndicateur\Provider\Privilege\IndicateurPrivileges; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordService; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => TableauDeBordController::class, 'action' => [ 'index', 'afficher', ], 'privileges' => [ IndicateurPrivileges::AFFICHER, ], ], ], ], ], 'router' => [ 'routes' => [ 'tableau-de-bord' => [ 'type' => Literal::class, 'options' => [ 'route' => '/tableau-de-bord', 'defaults' => [ 'controller' => TableauDeBordController::class, 'action' => 'index', ], ], 'may_terminate' => true, 'child_routes' => [ 'afficher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/afficher/:tableau-de-bord', 'defaults' => [ 'controller' => TableauDeBordController::class, 'action' => 'afficher', ], ], 'may_terminate' => true, ], ], ], ], ], 'service_manager' => [ 'factories' => [ TableauDeBordService::class => TableauDeBordServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ TableauDeBordController::class => TableauDeBordControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ TableauDeBordForm::class => TableauDeBordFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ TableauDeBordHydrator::class => TableauDeBordHydratorFactory::class, ], ] ]; No newline at end of file documentation/01_table.sql +24 −1 Original line number Diff line number Diff line create table unicaen_indicateur create table unicaen_indicateur_indicateur ( id serial constraint indicateur_pk primary key, titre varchar(256) not null, Loading @@ -20,3 +20,26 @@ create table unicaen_indicateur_abonnement create unique index abonnement_id_uindex on unicaen_indicateur_abonnement (id); create unique index indicateur_id_uindex on unicaen_indicateur (id); create table unicaen_indicateur_tableaudebord ( id serial constraint unicaen_indicateur_tableaudebord_pk primary key, titre varchar(1024) default 'Tableau de bord' not null, description text, nb_column integer default 1 not null ); create table unicaen_indicateur_tableau_indicateur ( tableau_id integer not null constraint unicaen_indicateur_tableau_indicateur_tableaudebord_null_fk references unicaen_indicateur_tableaudebord (id) on delete cascade, indicateur_id integer not null constraint unicaen_indicateur_tableau_indicateur_indicateur_null_fk references unicaen_indicateur_indicateur (id) on delete cascade, constraint unicaen_indicateur_tableau_indicateur_pk primary key (tableau_id, indicateur_id) ); src/UnicaenIndicateur/Controller/TableauDeBordController.php 0 → 100644 +30 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordServiceAwareTrait; class TableauDeBordController extends AbstractActionController { use TableauDeBordServiceAwareTrait; public function indexAction() : ViewModel { $tableaux = $this->getTableauDeBordService()->getTableauxdeBord(); return new ViewModel([ 'tableaux' => $tableaux, ]); } public function afficherAction() : ViewModel { $tableau = $this->getTableauDeBordService()->getRequestedTableauDeBord($this); return new ViewModel([ 'tableau' => $tableau, ]); } } No newline at end of file src/UnicaenIndicateur/Controller/TableauDeBordControllerFactory.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Controller; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenIndicateur\Entity\Db\TableauDeBord; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordService; class TableauDeBordControllerFactory { /** * @param ContainerInterface $container * @return TableauDeBordController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : TableauDeBordController { /** * @var TableauDeBordService $tableauService */ $tableauService = $container->get(TableauDeBordService::class); $controller = new TableauDeBordController(); return $controller; } } No newline at end of file src/UnicaenIndicateur/Entity/Db/Indicateur.php +15 −0 Original line number Diff line number Diff line Loading @@ -21,10 +21,12 @@ class Indicateur { private ?string $viewId = null; private ?string $entity = null; private Collection $abonnements; private Collection $tableaux; public function __construct() { $this->abonnements = new ArrayCollection(); $this->tableaux = new ArrayCollection(); } public function getId() : ?int Loading Loading @@ -92,6 +94,8 @@ class Indicateur { $this->entity = $entity; } /** Abonnements **************************************************************** */ /** * @return Abonnement[] */ Loading @@ -114,4 +118,15 @@ class Indicateur { { return $this->abonnements->contains($abonnement); } /** Tableau *****************************************************************/ /** * @return TableauDeBord[] */ public function getTableauxDeBord() : array { return $this->tableaux->toArray(); } } No newline at end of file Loading
config/merged/tableau-de-bord.config.php 0 → 100644 +85 −0 Original line number Diff line number Diff line <?php use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenIndicateur\Controller\TableauDeBordController; use UnicaenIndicateur\Controller\TableauDeBordControllerFactory; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordForm; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordFormFactory; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordHydrator; use UnicaenIndicateur\Form\TableauDeBord\TableauDeBordHydratorFactory; use UnicaenIndicateur\Provider\Privilege\IndicateurPrivileges; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordService; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => TableauDeBordController::class, 'action' => [ 'index', 'afficher', ], 'privileges' => [ IndicateurPrivileges::AFFICHER, ], ], ], ], ], 'router' => [ 'routes' => [ 'tableau-de-bord' => [ 'type' => Literal::class, 'options' => [ 'route' => '/tableau-de-bord', 'defaults' => [ 'controller' => TableauDeBordController::class, 'action' => 'index', ], ], 'may_terminate' => true, 'child_routes' => [ 'afficher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/afficher/:tableau-de-bord', 'defaults' => [ 'controller' => TableauDeBordController::class, 'action' => 'afficher', ], ], 'may_terminate' => true, ], ], ], ], ], 'service_manager' => [ 'factories' => [ TableauDeBordService::class => TableauDeBordServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ TableauDeBordController::class => TableauDeBordControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ TableauDeBordForm::class => TableauDeBordFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ TableauDeBordHydrator::class => TableauDeBordHydratorFactory::class, ], ] ]; No newline at end of file
documentation/01_table.sql +24 −1 Original line number Diff line number Diff line create table unicaen_indicateur create table unicaen_indicateur_indicateur ( id serial constraint indicateur_pk primary key, titre varchar(256) not null, Loading @@ -20,3 +20,26 @@ create table unicaen_indicateur_abonnement create unique index abonnement_id_uindex on unicaen_indicateur_abonnement (id); create unique index indicateur_id_uindex on unicaen_indicateur (id); create table unicaen_indicateur_tableaudebord ( id serial constraint unicaen_indicateur_tableaudebord_pk primary key, titre varchar(1024) default 'Tableau de bord' not null, description text, nb_column integer default 1 not null ); create table unicaen_indicateur_tableau_indicateur ( tableau_id integer not null constraint unicaen_indicateur_tableau_indicateur_tableaudebord_null_fk references unicaen_indicateur_tableaudebord (id) on delete cascade, indicateur_id integer not null constraint unicaen_indicateur_tableau_indicateur_indicateur_null_fk references unicaen_indicateur_indicateur (id) on delete cascade, constraint unicaen_indicateur_tableau_indicateur_pk primary key (tableau_id, indicateur_id) );
src/UnicaenIndicateur/Controller/TableauDeBordController.php 0 → 100644 +30 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Controller; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordServiceAwareTrait; class TableauDeBordController extends AbstractActionController { use TableauDeBordServiceAwareTrait; public function indexAction() : ViewModel { $tableaux = $this->getTableauDeBordService()->getTableauxdeBord(); return new ViewModel([ 'tableaux' => $tableaux, ]); } public function afficherAction() : ViewModel { $tableau = $this->getTableauDeBordService()->getRequestedTableauDeBord($this); return new ViewModel([ 'tableau' => $tableau, ]); } } No newline at end of file
src/UnicaenIndicateur/Controller/TableauDeBordControllerFactory.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Controller; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenIndicateur\Entity\Db\TableauDeBord; use UnicaenIndicateur\Service\TableauDeBord\TableauDeBordService; class TableauDeBordControllerFactory { /** * @param ContainerInterface $container * @return TableauDeBordController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : TableauDeBordController { /** * @var TableauDeBordService $tableauService */ $tableauService = $container->get(TableauDeBordService::class); $controller = new TableauDeBordController(); return $controller; } } No newline at end of file
src/UnicaenIndicateur/Entity/Db/Indicateur.php +15 −0 Original line number Diff line number Diff line Loading @@ -21,10 +21,12 @@ class Indicateur { private ?string $viewId = null; private ?string $entity = null; private Collection $abonnements; private Collection $tableaux; public function __construct() { $this->abonnements = new ArrayCollection(); $this->tableaux = new ArrayCollection(); } public function getId() : ?int Loading Loading @@ -92,6 +94,8 @@ class Indicateur { $this->entity = $entity; } /** Abonnements **************************************************************** */ /** * @return Abonnement[] */ Loading @@ -114,4 +118,15 @@ class Indicateur { { return $this->abonnements->contains($abonnement); } /** Tableau *****************************************************************/ /** * @return TableauDeBord[] */ public function getTableauxDeBord() : array { return $this->tableaux->toArray(); } } No newline at end of file