CablemodemAdmin.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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 CablemodemAdmin extends BaseAdmin
  12. {
  13. /**
  14. * @param DatagridMapper $datagridMapper
  15. */
  16. protected function configureDatagridFilters(DatagridMapper $datagridMapper)
  17. {
  18. $em = $this->get("doctrine.orm.entity_manager");
  19. $deviceServer = $this->getParameter("device_server_base");
  20. $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer' => $deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
  21. $choices = array();
  22. foreach($cmtss as $cmts) {
  23. $data = $cmts->jsonExtraData();
  24. $name = null;
  25. (isset($data['name']))? $name = $data['name'] : $name = $cmts->getIp();
  26. $choices[$name] = $cmts->getDeviceId();
  27. }
  28. $datagridMapper
  29. ->add('cmtsDeviceId', 'doctrine_orm_string', array(), 'choice', array('choices' => $choices))
  30. ->add('deviceServer')
  31. ->add('tenancyId')
  32. ->add('ip')
  33. ->add('mac')
  34. ;
  35. }
  36. /**
  37. * @param ListMapper $listMapper
  38. */
  39. protected function configureListFields(ListMapper $listMapper)
  40. {
  41. $em = $this->get("doctrine.orm.entity_manager");
  42. $servers = $em->getRepository("StatsBundle:DeviceServer")->findAll();
  43. $cmtss_server = $urls_server = array();
  44. foreach($servers as $deviceServer) {
  45. $urls = $this->get('webservice')->getData($deviceServer->getUrl());
  46. $urls_server[$deviceServer->getId()] = $urls;
  47. $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
  48. $cmtss_server[$deviceServer->getId()] = array();
  49. foreach($cmtss as $cmts) {
  50. $data = $cmts->jsonExtraData();
  51. $name = null;
  52. if(isset($data['name'])) $name = $data['name'];
  53. $cmtss_server[$deviceServer->getId()][$cmts->getDeviceId()] = $name;
  54. }
  55. }
  56. $interfaces = array();
  57. $ifs = $em->getRepository("StatsBundle:CmtsInterface")->findAll();
  58. foreach($ifs as $if) {
  59. $index = $if->getIndex();
  60. $id = $if->getId();
  61. $cmtsId = $if->getCmtsDeviceId();
  62. $serverId = $if->getDeviceServer()->getId();
  63. if(!isset($interfaces[$serverId])) $interfaces[$serverId] = array();
  64. if(!isset($interfaces[$serverId][$cmtsId])) $interfaces[$serverId][$cmtsId] = array();
  65. $interfaces[$serverId][$cmtsId][$index] = $id;
  66. }
  67. $this->parameters = array('urls_server' => $urls_server, 'cmtss_server' => $cmtss_server, 'interfaces' => $interfaces);
  68. $listMapper
  69. ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_cmts.html.twig'))
  70. ->add('ip')
  71. ->add('mac', 'string', array('template' => 'StatsBundle:Cablemodem:show_link.html.twig'))
  72. ->add('index')
  73. ->add('upIf',null, array('template' => 'StatsBundle:Cablemodem:field_interface_index.html.twig','typeIf' => 'upstream'))
  74. ->add('downIf',null, array('template' => 'StatsBundle:Cablemodem:field_interface_index.html.twig','typeIf' => 'downstream'))
  75. ->add('status',null, array('template' => 'StatsBundle:Templates:field_status.html.twig'))
  76. ->add('txPower',null, array('template' => 'StatsBundle:Cablemodem:field_tx_power_in_cm.html.twig'))
  77. ->add('rxPower',null, array('template' => 'StatsBundle:Cablemodem:field_rx_power_in_cm.html.twig'))
  78. ->add('signal',null, array('template' => 'StatsBundle:Cablemodem:field_snr_power_in_cm.html.twig'))
  79. ->add('microreflection',null, array('template' => 'StatsBundle:Cablemodem:field_microreflection_power_in_cm.html.twig'))
  80. ->add('inOctets',null, array('template' => 'StatsBundle:Cablemodem:field_octets.html.twig'))
  81. ->add('outOctets',null, array('template' => 'StatsBundle:Cablemodem:field_octets.html.twig'))
  82. ->add('rxPowerCmts',null, array('template' => 'StatsBundle:Cablemodem:field_rx_power_in_cm.html.twig'))
  83. ->add('signalCmts',null, array('template' => 'StatsBundle:Cablemodem:field_snr_power_in_cm.html.twig'))
  84. /* ->add('microreflectionCmts',null, array('template' => 'StatsBundle:Cablemodem:field_microreflection_power_in_cm.html.twig')) */
  85. ->add('uptime',null, array('template' => 'StatsBundle:Cablemodem:field_uptime.html.twig'))
  86. ;
  87. }
  88. /**
  89. * @param FormMapper $formMapper
  90. */
  91. protected function configureFormFields(FormMapper $formMapper)
  92. {
  93. }
  94. /**
  95. * @param ShowMapper $showMapper
  96. */
  97. protected function configureShowFields(ShowMapper $showMapper)
  98. {
  99. $from = $this->getRequest()->get('from');
  100. $to = $this->getRequest()->get('to');
  101. $this->parameters = array('from' => $from, 'to' => $to);
  102. }
  103. /**
  104. * @param string $action
  105. * @param Object $object
  106. *
  107. * @return array
  108. */
  109. public function configureActionButtons($action, $object = null)
  110. {
  111. $actions = parent::configureActionButtons($action, $object);
  112. /* if($action == "show") {
  113. $actions['show_in_map'] = array('template' => 'StatsBundle:PonPort:map_button.html.twig');
  114. } */
  115. return $actions;
  116. }
  117. protected function configureRoutes(RouteCollection $collection)
  118. {
  119. $collection->remove('delete');
  120. $collection->remove('create');
  121. $collection->remove('edit');
  122. }
  123. }