Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $data = $form->getData();
     if ($data instanceof Item) {
         $view->vars['label'] = $this->resolver->getLabel($data->getType());
     }
     return;
 }
Esempio n. 2
0
 public function postLoad(LifecycleEventArgs $args)
 {
     $entity = $args->getEntity();
     if ($entity instanceof Item) {
         try {
             $repository = $this->resolver->getRepository($entity->getType());
             $itemType = $repository->find($entity->getItemTypeId());
             $entity->setItemType($itemType);
         } catch (NoTypeFoundException $e) {
             //@TODO: log something
         }
     }
 }
Esempio n. 3
0
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $items = array();
     if (count($options['items'])) {
         foreach ($options['items'] as $item) {
             $items[] = array('type' => $item['type'], 'label' => isset($item['label']) ? $item['label'] : $this->resolver->getLabel($item['type']), 'translationDomain' => isset($item['translationDomain']) ? $item['translationDomain'] : 'EnhavoGridBundle');
         }
     } else {
         foreach ($this->resolver->getItems() as $name => $item) {
             $items[] = array('type' => $name, 'label' => $this->resolver->getLabel($name), 'translationDomain' => isset($item['translationDomain']) ? $item['translationDomain'] : 'EnhavoGridBundle');
         }
     }
     $view->vars['items'] = $items;
 }
Esempio n. 4
0
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $items = array();
     if (count($options['items'])) {
         foreach ($options['items'] as $item) {
             $definition = $this->resolver->getDefinition($item);
             $items[] = array('type' => $definition->getName(), 'label' => $definition->getLabel(), 'translationDomain' => $definition->getTranslationDomain());
         }
     } else {
         foreach ($this->resolver->getItems() as $item) {
             $items[] = array('type' => $item->getName(), 'label' => $item->getLabel(), 'translationDomain' => $item->getTranslationDomain());
         }
     }
     $view->vars['items'] = $items;
 }
Esempio n. 5
0
 /**
  * Extend item type if model class differs from parent class
  *
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     /** @var ClassMetadata $metadata */
     $metadata = $eventArgs->getClassMetadata();
     try {
         $type = $this->resolver->getTypeByParent($metadata->getName());
         $definition = $this->resolver->getDefinition($type);
         if ($definition->getParent() !== null && $definition->getModel() !== $definition->getParent()) {
             $metadata->setInheritanceType(ClassMetadata::INHERITANCE_TYPE_SINGLE_TABLE);
             $metadata->setDiscriminatorColumn(['name' => 'discr', 'type' => 'string', 'length' => 6]);
             $metadata->addDiscriminatorMapClass('target', $definition->getParent());
             $metadata->addDiscriminatorMapClass('extend', $definition->getModel());
         }
     } catch (NoTypeFoundException $e) {
         // no match type, so nothing to do here
     }
 }