|
@@ -0,0 +1,83 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace IPv4Bundle\EventListener;
|
|
|
+
|
|
|
+use Sonata\AdminBundle\Event\ConfigureEvent;
|
|
|
+use IPv4Bundle\Traits\DHCPOptionTrait;
|
|
|
+
|
|
|
+class AdminDHCPOption{
|
|
|
+ /**
|
|
|
+ * @param ConfigureEvent $event
|
|
|
+ */
|
|
|
+ public function configureFormFields(ConfigureEvent $event)
|
|
|
+ {
|
|
|
+ $mapper = $event->getMapper();
|
|
|
+ $subject = $mapper->getAdmin()->getSubject();
|
|
|
+ if ($subject && in_array(DHCPOptionTrait::class, class_uses($subject))) {
|
|
|
+ if ($mapper->hasOpenTab()) {
|
|
|
+ $mapper
|
|
|
+ ->end()
|
|
|
+ ->end();
|
|
|
+ }
|
|
|
+ $options = array(
|
|
|
+ 'translation_domain' => 'IPv4Bundle'
|
|
|
+ );
|
|
|
+ $mapper
|
|
|
+ ->tab('DHCP Option', $options)
|
|
|
+ ->with('DHCP Option', $options)
|
|
|
+ ->add('filename', 'text', array('required'=> false, ))
|
|
|
+ ->add('subnet_mask', 'text', array('required'=> false, ))
|
|
|
+ ->add('time_offset', 'text', array('required'=> false, ))
|
|
|
+ ->add('routers', 'text', array('required'=> false, ))
|
|
|
+ ->add('domain_name_servers', 'text', array('required'=> false, ))
|
|
|
+ ->add('host_name', 'text', array('required'=> false, ))
|
|
|
+ ->add('domain_name', 'text', array('required'=> false, ))
|
|
|
+ ->add('broadcast_address', 'text', array('required'=> false, ))
|
|
|
+ ->add('default_lease_time', 'text', array('required'=> false, ))
|
|
|
+ ->add('max_lease_time', 'text', array('required'=> false, ))
|
|
|
+ ->add('next_server', 'text', array('required'=> false, ))
|
|
|
+ ->add('tftp_server_name', 'text', array('required'=> false, ))
|
|
|
+
|
|
|
+ ->end()
|
|
|
+ ->end();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param ConfigureEvent $event
|
|
|
+ */
|
|
|
+ public function configureShowFields(ConfigureEvent $event)
|
|
|
+ {
|
|
|
+ $mapper = $event->getMapper();
|
|
|
+ $subject = $mapper->getAdmin()->getSubject();
|
|
|
+ if ($subject && in_array(DHCPOptionTrait::class, class_uses($subject))) {
|
|
|
+ if ($mapper->hasOpenTab()) {
|
|
|
+ $mapper
|
|
|
+ ->end()
|
|
|
+ ->end();
|
|
|
+ }
|
|
|
+ $options = array(
|
|
|
+ 'translation_domain' => 'IPv4Bundle'
|
|
|
+ );
|
|
|
+
|
|
|
+ $mapper
|
|
|
+ ->tab('DHCP Option', $options)
|
|
|
+ ->with('DHCP Option', $options);
|
|
|
+ if(!$mapper->has('filename')) $mapper->add('filename', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('subnet_mask')) $mapper->add('subnet_mask', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('time_offset')) $mapper->add('time_offset', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('routers')) $mapper->add('routers', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('domain_name_servers')) $mapper->add('domain_name_servers', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('host_name')) $mapper->add('host_name', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('domain_name')) $mapper->add('domain_name', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('broadcast_address')) $mapper->add('broadcast_address', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('default_lease_time')) $mapper->add('default_lease_time', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('max_lease_time')) $mapper->add('max_lease_time', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('next_server')) $mapper->add('next_server', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+ if(!$mapper->has('tftp_server_name')) $mapper->add('tftp_server_name', 'text', array('required'=> false, 'mapped' => false));
|
|
|
+
|
|
|
+ $mapper->end()->end();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|