コード例 #1
0
 /**
  * @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);
         }
     }
 }
コード例 #2
0
ファイル: EmailHandler.php プロジェクト: xamin123/platform
 /**
  * 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);
     }
 }
コード例 #3
0
 /**
  * @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);
     }
 }
コード例 #4
0
 /**
  * @param array $data
  *
  * @return string
  */
 protected function getRelatedActivityClass(array $data)
 {
     return $this->entityRoutingHelper->decodeClassName($data['activityType']['value'][0]);
 }
コード例 #5
0
 /**
  * @dataProvider decodeClassNameProvider
  */
 public function testDecodeClassName($src, $expected)
 {
     $this->assertEquals($expected, $this->entityRoutingHelper->decodeClassName($src));
 }