123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace HostBundle\Admin;
- use Base\AdminBundle\Admin\BaseAdmin;
- use HostBundle\Utils\HostStatus;
- use Sonata\AdminBundle\Datagrid\DatagridMapper;
- use Sonata\AdminBundle\Datagrid\ListMapper;
- use Sonata\AdminBundle\Form\FormMapper;
- use Sonata\AdminBundle\Show\ShowMapper;
- use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
- class HostAdmin extends BaseAdmin
- {
- /**
- * @param DatagridMapper $datagridMapper
- */
- protected function configureDatagridFilters(DatagridMapper $datagridMapper)
- {
- $datagridMapper
- ->add('mac')
- ->add('state')
- ;
- }
- /**
- * @param ListMapper $listMapper
- */
- protected function configureListFields(ListMapper $listMapper)
- {
- $listMapper
- ->add('mac')
- ->add('hostType')
- ->add('state')
- ->add('_action', null, array(
- 'actions' => array(
- 'show' => array(),
- 'edit' => array(),
- 'delete' => array(),
- ),
- ))
- ;
- }
- /**
- * @param FormMapper $formMapper
- */
- protected function configureFormFields(FormMapper $formMapper)
- {
- $formMapper
- ->tab('Host')
- ->with('Host')
- ->add('mac')
- ->add('hostType', null, [
- 'required' => true,
- ])
- ->add('state', ChoiceType::class, [
- 'choices' => HostStatus::getChoices(),
- 'translation_domain' => 'HostBundle',
- ])
- ->end()
- ->end()
- ;
- }
- /**
- * @param ShowMapper $showMapper
- */
- protected function configureShowFields(ShowMapper $showMapper)
- {
- $showMapper
- ->tab('Host')
- ->with('Host')
- ->add('mac')
- ->add('hostType')
- ->add('state')
- ->end()
- ->end()
- ;
- $this->addCablemodemTab($showMapper);
- }
- /**
- * @param ShowMapper $showMapper
- */
- protected function addCablemodemTab(ShowMapper $showMapper)
- {
- if ($showMapper->hasOpenTab()) {
- $showMapper
- ->end()
- ->end();
- }
- $showMapper
- ->tab('Cablemodem')
- ->with('Cablemodem')
- ->add('cablemodem', null, array(
- 'template' => 'HostBundle:CRUD:cablemodem_show_field.html.twig',
- 'label' => false,
- ))
- ->end()
- ->end();
- }
- /**
- * @param $object
- *
- * @return mixed
- */
- function prePersist($object)
- {
- $object->setOptions(json_encode($object->getDHCPOption()));
-
- return parent::preUpdate($object);
- }
-
- /**
- * @param $object
- *
- * @return mixed
- */
- function preUpdate($object)
- {
- if ($object->getFixedAddress() && $object->getFixedIP() == false) {
- $object->setFixedIP(true);
- }
- if (!$object->getFixedAddress() && $object->getFixedIP() == true) {
- $object->setFixedIP(false);
- }
-
- $object->setOptions(json_encode($object->getDHCPOption()));
-
- return parent::preUpdate($object);
- }
- }
|