|
@@ -10,6 +10,8 @@ use Sonata\AdminBundle\Show\ShowMapper;
|
|
|
use DeviceBundle\Utils\DeviceTypes;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|
|
use Sonata\AdminBundle\Route\RouteCollection;
|
|
|
+use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery;
|
|
|
+use Sonata\DoctrineORMAdminBundle\Filter\CallbackFilter;
|
|
|
|
|
|
class CablemodemAdmin extends BaseAdmin
|
|
|
{
|
|
@@ -33,10 +35,30 @@ class CablemodemAdmin extends BaseAdmin
|
|
|
|
|
|
$datagridMapper
|
|
|
->add('cmtsDeviceId', 'doctrine_orm_string', array(), 'choice', array('choices' => $choices))
|
|
|
- ->add('deviceServer')
|
|
|
- ->add('tenancyId')
|
|
|
- ->add('ip')
|
|
|
->add('mac')
|
|
|
+ ->add('ip')
|
|
|
+ ->add('clientName', CallbackFilter::class, array(
|
|
|
+ 'callback' => function (ProxyQuery $query, $alias, $field, $data) {
|
|
|
+ if (!$data || !is_array($data) || !array_key_exists('value', $data) || !isset($data['value'])) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $alias = $query->getRootAlias();
|
|
|
+ $query
|
|
|
+ ->andWhere("{$alias}.clientExternalId LIKE :id OR
|
|
|
+ {$alias}.clientAddress LIKE :id OR
|
|
|
+ {$alias}.clientName LIKE :id")
|
|
|
+ ->setParameter('id', "%{$data['value']}%");
|
|
|
+
|
|
|
+ return true;
|
|
|
+ },), null, [
|
|
|
+ 'attr' => [
|
|
|
+ 'placeholder' => $this->trans('sonata.filter.onu_client')
|
|
|
+ ]
|
|
|
+ ])
|
|
|
+ ->add('upIf')
|
|
|
+ ->add('downIf')
|
|
|
+ ->add('status')
|
|
|
;
|
|
|
}
|
|
|
|
|
@@ -98,6 +120,9 @@ class CablemodemAdmin extends BaseAdmin
|
|
|
->add('signalCmts',null, array('template' => 'StatsBundle:Cablemodem:field_snr_power_in_cm.html.twig'))
|
|
|
/* ->add('microreflectionCmts',null, array('template' => 'StatsBundle:Cablemodem:field_microreflection_power_in_cm.html.twig')) */
|
|
|
->add('uptime',null, array('template' => 'StatsBundle:Cablemodem:field_uptime.html.twig'))
|
|
|
+ ->add('clientExternalId', 'string', array('template' => 'StatsBundle:Templates:base_list_field_null.html.twig'))
|
|
|
+ ->add('clientName', 'string', array('template' => 'StatsBundle:Templates:base_list_field_null.html.twig'))
|
|
|
+ ->add('clientAddress', 'string', array('template' => 'StatsBundle:Templates:base_list_field_null.html.twig'))
|
|
|
|
|
|
;
|
|
|
}
|