/** * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datagrid = $event->getDatagrid(); $datasource = $datagrid->getDatasource(); if ($datasource instanceof OrmDatasource) { $parameters = $datagrid->getParameters(); $entityClass = $this->entityRoutingHelper->decodeClassName($parameters->get('entityClass')); $entityId = $parameters->get('entityId'); $this->emailGridHelper->updateDatasource($datasource, $entityId, $entityClass); if ($this->emailGridHelper->isUserEntity($entityClass)) { $this->emailGridHelper->handleRefresh($parameters, $entityId); } } }
/** * Populate a model with initial data. * This method is used to load an initial data from a query string * * @param Email $model */ protected function initModel(Email $model) { if ($this->request->query->has('gridName')) { $model->setGridName($this->request->query->get('gridName')); } if ($this->request->query->has('entityClass')) { $model->setEntityClass($this->entityRoutingHelper->decodeClassName($this->request->query->get('entityClass'))); } if ($this->request->query->has('entityId')) { $model->setEntityId($this->request->query->get('entityId')); } if ($this->request->query->has('from')) { $from = $this->request->query->get('from'); if (!empty($from)) { $this->preciseFullEmailAddress($from); } $model->setFrom($from); } else { $user = $this->getUser(); if ($user) { $model->setFrom($this->emailAddressHelper->buildFullEmailAddress($user->getEmail(), $this->nameFormatter->format($user))); } } if ($this->request->query->has('to')) { $to = trim($this->request->query->get('to')); if (!empty($to)) { $this->preciseFullEmailAddress($to, $model->getEntityClass(), $model->getEntityId()); } $model->setTo(array($to)); } if ($this->request->query->has('subject')) { $subject = trim($this->request->query->get('subject')); $model->setSubject($subject); } }
/** * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datagrid = $event->getDatagrid(); $datasource = $datagrid->getDatasource(); if ($datasource instanceof OrmDatasource) { $parameters = $datagrid->getParameters(); $entityClass = $this->entityRoutingHelper->decodeClassName($parameters->get('entityClass')); $entityId = $parameters->get('entityId'); $qb = $datasource->getQueryBuilder(); // apply activity filter $this->activityManager->addFilterByTargetEntity($qb, $entityClass, $entityId); // apply filter by date $start = new \DateTime('now', new \DateTimeZone($this->localeSettings->getTimeZone())); $start->setTime(0, 0, 0); $qb->andWhere('event.start >= :date OR event.end >= :date')->setParameter('date', $start); } }
/** * @param array $data * * @return string */ protected function getRelatedActivityClass(array $data) { return $this->entityRoutingHelper->decodeClassName($data['activityType']['value'][0]); }
/** * @dataProvider decodeClassNameProvider */ public function testDecodeClassName($src, $expected) { $this->assertEquals($expected, $this->entityRoutingHelper->decodeClassName($src)); }