Пример #1
0
 /**
  * @return AdminGrid
  */
 protected function createComponentTable()
 {
     $_this = $this;
     $admin = new AdminGrid($this->repository);
     // columns
     $table = $admin->getTable();
     $table->setModel(new Doctrine($this->repository->createQueryBuilder('a')->addSelect('r')->innerJoin('a.route', 'r')->andWhere('a.extendedPage = :page')->setParameter('page', $this->extendedPage->id), array('name' => 'r.name', 'created' => 'r.created')));
     $table->setDefaultSort(array('created' => 'DESC'));
     $table->addColumnText('name', 'Name')->setCustomRender(function ($entity) {
         return $entity->route->name;
     })->setSortable()->getCellPrototype()->width = '70%';
     $table->getColumn('name')->setFilterText()->setSuggestion();
     $table->addColumnDate('created', 'Created')->setCustomRender(function ($entity) {
         return $entity->route->created->format('Y-m-d H:i:s');
     })->setSortable()->getCellPrototype()->width = '30%';
     // actions
     $table->addAction('publish', 'Published')->setCustomRender(function ($entity, $element) {
         if ((bool) $entity->route->published) {
             $element->class[] = 'btn-primary';
         }
         return $element;
     })->setCustomHref(function ($entity) use($_this) {
         return $_this->link('publish!', array($entity->id));
     })->getElementPrototype()->class[] = 'ajax';
     $table->addAction('preview', 'Preview')->setCustomHref(function ($entity) use($_this) {
         return $_this->link('preview!', array($entity->id));
     });
     $table->addAction('edit', 'Edit')->getElementPrototype()->class[] = 'ajax';
     return $admin;
 }
Пример #2
0
 public function getRawQueryBuilder($select = 'a')
 {
     $dql = $this->repository->createQueryBuilder($select);
     if ($this->dqlCallback) {
         $fn = $this->dqlCallback;
         $fn($dql);
     }
     if (count($this->filters) > 0) {
         foreach ($this->filters as $key => $value) {
             $dql = $this->columns[$key]->getFilter()->setDql($dql, $value);
         }
     }
     return $dql;
 }
Пример #3
0
 /**
  * @return Grid
  */
 protected function createComponentTable()
 {
     if ($this->tableFactory) {
         $grid = Callback::create($this->tableFactory)->invoke();
     } else {
         $grid = new Grid();
         $grid->addAction('_groupstart', 'Group start')->setCustomRender(function () {
             return '<div class="btn-group">';
         });
         if ($this->repository) {
             $grid->setModel(new Doctrine($this->repository->createQueryBuilder('a')));
         }
     }
     return $grid;
 }
Пример #4
0
 public function authenticate(array $credentials)
 {
     if ($this->checkConnection->invoke()) {
         $data = $this->getData();
         try {
             /** @var $user \CmsModule\Pages\Users\UserEntity */
             $user = $this->userRepository->createQueryBuilder('a')->join('a.socialLogins', 's')->where('s.type = :type AND s.uniqueKey = :key')->setParameter('type', $this->getType())->setParameter('key', $data['id'])->getQuery()->getSingleResult();
         } catch (\Doctrine\ORM\NoResultException $e) {
         }
         if (!isset($user) || !$user) {
             throw new AuthenticationException($this->translator->translate('User does not exist.'), self::INVALID_CREDENTIAL);
         }
         return new Identity($user->email, $user->getRoles());
     }
 }