HostAdmin.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace HostBundle\Admin;
  3. use Base\AdminBundle\Admin\BaseAdmin;
  4. use HostBundle\Utils\HostStatus;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Show\ShowMapper;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. class HostAdmin extends BaseAdmin
  11. {
  12. /**
  13. * @param DatagridMapper $datagridMapper
  14. */
  15. protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  16. {
  17. $datagridMapper
  18. ->add('mac')
  19. ->add('state')
  20. ;
  21. }
  22. /**
  23. * @param ListMapper $listMapper
  24. */
  25. protected function configureListFields(ListMapper $listMapper)
  26. {
  27. $listMapper
  28. ->add('mac')
  29. ->add('hostType')
  30. ->add('state')
  31. ->add('_action', null, array(
  32. 'actions' => array(
  33. 'show' => array(),
  34. 'edit' => array(),
  35. 'delete' => array(),
  36. ),
  37. ))
  38. ;
  39. }
  40. /**
  41. * @param FormMapper $formMapper
  42. */
  43. protected function configureFormFields(FormMapper $formMapper)
  44. {
  45. $formMapper
  46. ->tab('Host')
  47. ->with('Host')
  48. ->add('mac')
  49. ->add('hostType', null, [
  50. 'required' => true,
  51. ])
  52. ->add('state', ChoiceType::class, [
  53. 'choices' => HostStatus::getChoices(),
  54. 'translation_domain' => 'HostBundle',
  55. ])
  56. ->end()
  57. ->end()
  58. ;
  59. }
  60. /**
  61. * @param ShowMapper $showMapper
  62. */
  63. protected function configureShowFields(ShowMapper $showMapper)
  64. {
  65. $showMapper
  66. ->tab('Host')
  67. ->with('Host')
  68. ->add('mac')
  69. ->add('hostType')
  70. ->add('state')
  71. ->end()
  72. ->end()
  73. ;
  74. $this->addCablemodemTab($showMapper);
  75. }
  76. /**
  77. * @param ShowMapper $showMapper
  78. */
  79. protected function addCablemodemTab(ShowMapper $showMapper)
  80. {
  81. if ($showMapper->hasOpenTab()) {
  82. $showMapper
  83. ->end()
  84. ->end();
  85. }
  86. $showMapper
  87. ->tab('Cablemodem')
  88. ->with('Cablemodem')
  89. ->add('cablemodem', null, array(
  90. 'template' => 'HostBundle:CRUD:cablemodem_show_field.html.twig',
  91. 'label' => false,
  92. ))
  93. ->end()
  94. ->end();
  95. }
  96. /**
  97. * @param $object
  98. *
  99. * @return mixed
  100. */
  101. function prePersist($object)
  102. {
  103. $object->setOptions(json_encode($object->getDHCPOption()));
  104. return parent::preUpdate($object);
  105. }
  106. /**
  107. * @param $object
  108. *
  109. * @return mixed
  110. */
  111. function preUpdate($object)
  112. {
  113. if ($object->getFixedAddress() && $object->getFixedIP() == false) {
  114. $object->setFixedIP(true);
  115. }
  116. if (!$object->getFixedAddress() && $object->getFixedIP() == true) {
  117. $object->setFixedIP(false);
  118. }
  119. $object->setOptions(json_encode($object->getDHCPOption()));
  120. return parent::preUpdate($object);
  121. }
  122. }