SubNetAdmin.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace IPv4Bundle\Admin;
  3. use Base\AdminBundle\Admin\BaseAdmin;
  4. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Form\FormMapper;
  7. use Sonata\AdminBundle\Show\ShowMapper;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use HostBundle\Utils\HostStatus;
  10. class SubNetAdmin extends BaseAdmin
  11. {
  12. /**
  13. * @param DatagridMapper $datagridMapper
  14. */
  15. protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  16. {
  17. $datagridMapper
  18. ->add('address')
  19. ->add('allowedHostType')
  20. ->add('status')
  21. ;
  22. }
  23. /**
  24. * @param ListMapper $listMapper
  25. */
  26. protected function configureListFields(ListMapper $listMapper)
  27. {
  28. $listMapper
  29. ->add('address')
  30. ->add('options', null, [
  31. 'header_style' => 'width: 50%',
  32. 'template' => 'HostBundle:CRUD:dhcp_options.html.twig',
  33. ])
  34. ->add('allowedHostType')
  35. ->add('status')
  36. ->add('netGroup')
  37. ->add('ipPool')
  38. ->add('_action', null, array(
  39. 'actions' => array(
  40. 'show' => array(),
  41. 'edit' => array(),
  42. 'delete' => array(),
  43. ),
  44. ))
  45. ;
  46. }
  47. /**
  48. * @param FormMapper $formMapper
  49. */
  50. protected function configureFormFields(FormMapper $formMapper)
  51. {
  52. $formMapper
  53. ->tab('SubNet')
  54. ->with('')
  55. ->add('address')
  56. ->add('allowedHostType')
  57. ->add('status', ChoiceType::class, [
  58. 'required' => false,
  59. 'choices' => HostStatus::getChoices(),
  60. 'translation_domain' => 'IPv4Bundle',
  61. ])
  62. ->add('netGroup')
  63. ->end()
  64. ->end()
  65. ;
  66. }
  67. /**
  68. * @param ShowMapper $showMapper
  69. */
  70. protected function configureShowFields(ShowMapper $showMapper)
  71. {
  72. $showMapper
  73. ->add('address')
  74. ->add('allowedHostType')
  75. ->add('status')
  76. ->add('netGroup')
  77. ->add('ipPool')
  78. ;
  79. }
  80. function prePersist($object){
  81. $object->setOptions(json_encode($object->getDHCPOption()));
  82. return parent::preUpdate($object);
  83. }
  84. function preUpdate($object){
  85. $object->setOptions(json_encode($object->getDHCPOption()));
  86. return parent::preUpdate($object);
  87. }
  88. }