123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- <?php
- namespace StatsBundle\Admin;
- use Base\AdminBundle\Admin\BaseAdmin;
- use Sonata\AdminBundle\Datagrid\DatagridMapper;
- use Sonata\AdminBundle\Datagrid\ListMapper;
- use Sonata\AdminBundle\Form\FormMapper;
- use Sonata\AdminBundle\Show\ShowMapper;
- use DeviceBundle\Utils\DeviceTypes;
- use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
- use Sonata\AdminBundle\Route\RouteCollection;
- class CmtsInterfaceAdmin extends BaseAdmin
- {
- /**
- * @param DatagridMapper $datagridMapper
- */
- protected function configureDatagridFilters(DatagridMapper $datagridMapper)
- {
- $em = $this->get("doctrine.orm.entity_manager");
- $deviceServer = $this->getParameter("device_server_base");
- $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer' => $deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
- $choices = array();
- foreach($cmtss as $cmts) {
- $data = $cmts->jsonExtraData();
- $name = null;
- (isset($data['name']))? $name = $data['name'] : $name = $cmts->getIp();
- $choices[$name] = $cmts->getDeviceId();
- }
- $datagridMapper
- ->add('cmtsDeviceId', 'doctrine_orm_string', array(), 'choice', array('choices' => $choices))
- ->add('deviceServer')
- ->add('tenancyId')
- ->add('index')
- ->add('name')
- ;
- }
- /**
- * @param ListMapper $listMapper
- */
- protected function configureListFields(ListMapper $listMapper)
- {
- $em = $this->get("doctrine.orm.entity_manager");
- $servers = $em->getRepository("StatsBundle:DeviceServer")->findAll();
-
- $cmtss_server = $urls_server = array();
- foreach($servers as $deviceServer) {
- $urls = $this->get('webservice')->getData($deviceServer->getUrl());
- $urls_server[$deviceServer->getId()] = $urls;
- $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
- $cmtss_server[$deviceServer->getId()] = array();
- foreach($cmtss as $cmts) {
- $data = $cmts->jsonExtraData();
- $name = null;
- if(isset($data['name'])) $name = $data['name'];
- $cmtss_server[$deviceServer->getId()][$cmts->getDeviceId()] = $name;
- }
- }
- //print_r($urls_server);die;
- $this->parameters = array('urls_server' => $urls_server, 'cmtss_server' => $cmtss_server);
- $listMapper
- /* ->add('deviceServer') */
- //->add('extraData','string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_extraData.html.twig'))
- ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_cmts.html.twig'))
- ->add('index')
- ->addIdentifier('name')
- ->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig'))
- ->add('signal','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_signal.html.twig'))
- ->add('microreflection','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_microreflection.html.twig'))
- ->add('utilization','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_utilization.html.twig'))
- ->add('inOctets','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_octets.html.twig'))
- ->add('outOctets','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_octets.html.twig'))
- ->add('online','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_count_cablemodem.html.twig'))
- ->add('offline','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_count_cablemodem.html.twig'))
-
- ;
- }
- /**
- * @param FormMapper $formMapper
- */
- protected function configureFormFields(FormMapper $formMapper)
- {
- }
- /**
- * @param ShowMapper $showMapper
- */
- protected function configureShowFields(ShowMapper $showMapper)
- {
- $interface = $this->getSubject();
- $cmtsDeviceId = $interface->getCmtsDeviceId();
- $deviceServer = $interface->getDeviceServer();
-
- $em = $this->get("doctrine.orm.entity_manager");
- /* $q = $em->getRepository("StatsBundle:Cablemodem")->createQueryBuilder('o');
- $onus = $q->where($q->expr()->like('o.ponPort', ':ponPort'))
- ->andWhere('o.oltDeviceId = :oltDeviceId')
- ->andWhere('o.deviceServer = :deviceServer')
- ->setParameter('ponPort', "{$ponPort->getPonPort()}%")
- ->setParameter('oltDeviceId', $oltDeviceId)
- ->setParameter('deviceServer', $deviceServer)
- ->getQuery()
- ->getResult();
- $onuPonPorts = $_onus = array();
- if($onus) {
- $onuPonPorts = $ponPort->getArrayRxPower();
- }
- foreach($onus as $onu) {
- $p = $onu->getPonPort();
- $data = explode("/",$p);
- $onuIdIndex = 2;
- if(count($data) == 4) $onuIdIndex = 3;
- if(isset($data[$onuIdIndex])) {
- $rxPower = NULL;
- if(isset($onuPonPorts[$data[$onuIdIndex]])) {
- $rxPower = $onuPonPorts[$data[$onuIdIndex]];
- }
- $_onus[$data[$onuIdIndex]] = array('onu' => $onu, 'rxPower' => $rxPower);
- }
- }
-
- ksort($_onus);
- $this->parameters = array('onus' => $_onus); */
- $cmts = $em->getRepository("StatsBundle:device")->findOneBy(array('deviceId' => $cmtsDeviceId, 'deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
- if($cmts) {
- $data = $cmts->jsonExtraData();
- $cmtsName = null;
- if(isset($data['name'])) $cmtsName = $data['name'];
- }
- $showMapper
- ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_show_field_cmts.html.twig','cmtsName' => $cmtsName))
- ->add('index')
- ->add('name')
- ->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig', 'extend' => 'base_show_field.html.twig'))
- ;
- }
- /**
- * @param string $action
- * @param Object $object
- *
- * @return array
- */
- public function configureActionButtons($action, $object = null)
- {
- $actions = parent::configureActionButtons($action, $object);
- /* if($action == "show") {
- $actions['show_in_map'] = array('template' => 'StatsBundle:PonPort:map_button.html.twig');
- } */
-
- return $actions;
- }
- protected function configureRoutes(RouteCollection $collection)
- {
- $collection->remove('delete');
- $collection->remove('create');
- $collection->remove('edit');
- }
- }
|