OnuAdmin.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace StatsBundle\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 DeviceBundle\Utils\DeviceTypes;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Sonata\AdminBundle\Route\RouteCollection;
  11. class OnuAdmin extends BaseAdmin
  12. {
  13. /**
  14. * @param DatagridMapper $datagridMapper
  15. */
  16. protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  17. {
  18. $datagridMapper
  19. ->add('oltDeviceId')
  20. ->add('deviceServer')
  21. ->add('tenancyId')
  22. ->add('ponSerialNumber')
  23. ->add('ponPort')
  24. ->add('status')
  25. ;
  26. }
  27. /**
  28. * @param ListMapper $listMapper
  29. */
  30. protected function configureListFields(ListMapper $listMapper)
  31. {
  32. $em = $this->get("doctrine.orm.entity_manager");
  33. $servers = $em->getRepository("StatsBundle:DeviceServer")->findAll();
  34. $olts_server = $urls_server = array();
  35. foreach($servers as $deviceServer) {
  36. $urls = $this->get('webservice')->getData($deviceServer->getUrl());
  37. $urls_server[$deviceServer->getId()] = $urls;
  38. $olts = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer'=>$deviceServer, 'deviceType' => 'FTTHBundle\Entity\OLT'));
  39. $olts_server[$deviceServer->getId()] = array();
  40. foreach($olts as $olt) {
  41. $data = $olt->jsonExtraData();
  42. $name = null;
  43. if(isset($data['name'])) $name = $data['name'];
  44. $olts_server[$deviceServer->getId()][$olt->getDeviceId()] = $name;
  45. }
  46. }
  47. //print_r($urls_server);die;
  48. $this->parameters = array('urls_server' => $urls_server, 'olts_server' => $olts_server);
  49. $listMapper
  50. ->add('deviceServer')
  51. ->add('oltDeviceId', 'string', array('template' => 'StatsBundle:Onu:base_list_field_olt.html.twig'))
  52. ->add('tenancyId')
  53. ->addIdentifier('ponSerialNumber')
  54. ->add('ponPort')
  55. ->add('status')
  56. ->add('txPower', 'string', array('template' => 'StatsBundle:Onu:base_list_field_tx.html.twig'))
  57. ->add('rxPower', 'string', array('template' => 'StatsBundle:Onu:base_list_field_rx.html.twig'))
  58. ->add('voltage', 'string', array('template' => 'StatsBundle:Onu:base_list_field_voltage.html.twig'))
  59. ->add('temperature', 'string', array('template' => 'StatsBundle:Onu:base_list_field_temperature.html.twig'))
  60. ->add('uptime', 'string', array('template' => 'StatsBundle:Onu:base_list_field_uptime.html.twig'))
  61. ->add('updated')
  62. /* ->add('_action', null, array(
  63. 'actions' => array('show' => array())
  64. )) */
  65. ;
  66. }
  67. /**
  68. * @param FormMapper $formMapper
  69. */
  70. protected function configureFormFields(FormMapper $formMapper)
  71. {
  72. }
  73. /**
  74. * @param ShowMapper $showMapper
  75. */
  76. protected function configureShowFields(ShowMapper $showMapper)
  77. {
  78. $showMapper
  79. ->add('oltDeviceId')
  80. ->add('ponSerialNumber')
  81. ->add('ponPort')
  82. ->add('status')
  83. ->add('txPower', 'string', array('template' => 'StatsBundle:Onu:base_show_field_tx.html.twig'))
  84. ->add('rxPower', 'string', array('template' => 'StatsBundle:Onu:base_show_field_rx.html.twig'))
  85. ->add('voltage', 'string', array('template' => 'StatsBundle:Onu:base_show_field_voltage.html.twig'))
  86. ->add('temperature', 'string', array('template' => 'StatsBundle:Onu:base_show_field_temperature.html.twig'))
  87. ->add('updated', 'string', array('template' => 'StatsBundle:Onu:base_show_field_uptime.html.twig'))
  88. ;
  89. }
  90. /**
  91. * @param string $action
  92. * @param Object $object
  93. *
  94. * @return array
  95. */
  96. public function configureActionButtons($action, $object = null)
  97. {
  98. $actions = parent::configureActionButtons($action, $object);
  99. $actions['show_in_map'] = array(
  100. 'template' => 'StatsBundle:Onu:map_button.html.twig',
  101. );
  102. return $actions;
  103. }
  104. protected function configureRoutes(RouteCollection $collection)
  105. {
  106. $collection->remove('delete');
  107. $collection->remove('create');
  108. $collection->remove('edit');
  109. }
  110. }