zuni/datatablebundle

Symfony DataTableBundle

Installs: 198

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 5

Forks: 2

Open Issues: 0

Language:JavaScript

Type:symfony-bundle

dev-master / 2.1.x-dev 2014-03-27 20:03 UTC

This package is not auto-updated.

Last update: 2024-05-07 03:51:49 UTC


README

Exmplo de uso

Controlador

/** *

  • @Route("/grid/ajax", name="cidade_grid")

  • @Secure(roles="ROLE_CIDADE_SHOW") */ public function gridAction(Request $request) { $dataTable = $this->createDataTable($request);

    $dataTable ->addColumn('id') ->addColumn('nome') ->addColumn('estado.nome') ->addColumnAction($this->getDataTableActionsDefault()) ;

    $dataTable->setDqlPart('{estado.nome} = :estadoNome'); $dataTable->setDqlParam(array('estadoNome' => 'sc'));

    return $this->getDataTableResponse($dataTable); }

Index

{{ "cidade.id"|trans }} {{ "cidade.nome"|trans }} {{ "estado.titulo"|trans }} {{"grid.acoes"|trans}}

Métodos requeridos no controlador Super

/** *

  • Create new DataTable for response json

  • @param \Symfony\Component\HttpFoundation\Request $request

  • @param string $condition DQL Contidion

  • @param arrray $paramCondition

  • @param type $entity

  • @return \Zuni\DataTableBundle\Entity\DataTable */ protected function createDataTable(Request $request, $condition = "", array $paramCondition = array(), $entity = null) { $entity = $entity ? $entity : $this->getNameEntity()." AS e";

    return new \Zuni\DataTableBundle\Entity\DataTable($request, $this->get("templating"), $this->getTwigLoaderString(), $entity); }

/** *

  • Create Data Table Response

  • @param \Zuni\DataTableBundle\Entity\DataTable $dataTable

  • @return \Symfony\Component\HttpFoundation\JsonResponse */ protected function getDataTableResponse(\Zuni\DataTableBundle\Entity\DataTable $dataTable, $collectionsEntity = null ) { $arrayData = $dataTable->getData($this->getDoctrine()->getManager(), $collectionsEntity);

    return new JsonResponse($arrayData); }

/** *

  • Clona e modifica o twig do symfony para renderizar strings

  • @return \Symfony\Bridge\Twig\TwigEngine */ protected function getTwigLoaderString() { $twigLoaderString = clone $this->get('twig'); $twigLoaderString->setLoader(new Twig_Loader_String());

    return $twigLoaderString; }

/** *

  • Retorna as ações padrão da entidade

  • @todo Mudar as ações da DataTable para uma classe do bundle

  • @return array */ protected function getDataTableActionsDefault() { $entity = $this->getAliasEntity(); $entityUpperCase = strtoupper($entity);

    return array( 'show' => array( 'route' => $entity.'show', 'role' => "ROLE{$entityUpperCase}_SHOW" ), 'edit' => array( 'route' => $entity.'edit', 'role' => "ROLE{$entityUpperCase}_EDIT" ), 'delete' => array( 'route' => $entity.'delete_ajax', 'role' => "ROLE{$entityUpperCase}_EDIT" ), ); }