|
@@ -4,6 +4,7 @@ namespace FTTHBundle\Admin;
|
|
|
|
|
|
use Buzz\Message\RequestInterface as HttpRequestInterface;
|
|
|
use Doctrine\ORM\EntityRepository;
|
|
|
+use FTTHBundle\Entity\NAP;
|
|
|
use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery;
|
|
|
use Sonata\AdminBundle\Datagrid\DatagridMapper;
|
|
|
use Sonata\AdminBundle\Datagrid\ListMapper;
|
|
@@ -45,7 +46,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
{$alias}.ponSerialNumber LIKE :id OR
|
|
|
{$alias}.ponSerialNumberAux LIKE :id")
|
|
|
->setParameter('id', "%{$data['value']}%");
|
|
|
-
|
|
|
+
|
|
|
return true;
|
|
|
},), null, [
|
|
|
'attr' => [
|
|
@@ -108,7 +109,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
{
|
|
|
$subject = $this->getSubject();
|
|
|
$em = $this->get("doctrine.orm.entity_manager");
|
|
|
-
|
|
|
+
|
|
|
// busco el ONU template si se pasa como parámetro
|
|
|
$template = null;
|
|
|
$onuTemplateId = $this->getRequest()->query->get('onu_template');
|
|
@@ -135,13 +136,8 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
|
|
|
// Editando la ONU o hay template base o pasado como parámetro
|
|
|
if ($subject->getId() || $template) {
|
|
|
- $olt = null;
|
|
|
- if ($subject->getOlt()) {
|
|
|
- $olt = $subject->getOlt();
|
|
|
- } elseif ($template) {
|
|
|
- $olt = $template->getOlt();
|
|
|
- }
|
|
|
-
|
|
|
+ $olt = $subject->getOlt();
|
|
|
+
|
|
|
// Según el modelo de OLT se muestran algunos campos específicos
|
|
|
if ($olt && $olt->getModel()) {
|
|
|
$oltModel = $olt->getModel();
|
|
@@ -165,7 +161,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
$formMapper
|
|
|
->tab('default')
|
|
|
->with('');
|
|
|
-
|
|
|
+
|
|
|
// Se agrega ONUTemplate solo en el create
|
|
|
if ($this->isCurrentRoute('create')) {
|
|
|
$formMapper->add('onuTemplate', 'entity', [
|
|
@@ -176,7 +172,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
'data' => $template,
|
|
|
]);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$formMapper
|
|
|
->add('clientId')
|
|
|
->add('ponSerialNumber', null, array(
|
|
@@ -186,9 +182,25 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
if ($this->hasParameter('show.onu.activationCode') && $this->getParameter('show.onu.activationCode') == true) {
|
|
|
$formMapper->add('activationCode');
|
|
|
}
|
|
|
+
|
|
|
+ $naps = $em->getRepository(NAP::class)->findAll(['enable' => 1]);
|
|
|
$formMapper
|
|
|
->add('profile')
|
|
|
- ->add('nap')
|
|
|
+ ->add('nap', ChoiceType::class,
|
|
|
+ array(
|
|
|
+ 'choices' => $naps,
|
|
|
+ 'multiple' => false,
|
|
|
+ 'required' => true,
|
|
|
+ 'choice_value' => function ( $entity = null) {
|
|
|
+ return $entity ? $entity->getId() : '';
|
|
|
+ },
|
|
|
+ 'choice_label' => function ($choiceValue, $key, $value) {
|
|
|
+ return $choiceValue->getName();
|
|
|
+ },
|
|
|
+ 'group_by' => function($value, $key, $index) {
|
|
|
+ return $value->getOlt()->getName();
|
|
|
+ },
|
|
|
+ ))
|
|
|
->add('model')
|
|
|
->add('comments')
|
|
|
->end()
|
|
@@ -203,7 +215,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
'attr' => array(
|
|
|
'style' => 'text-transform: uppercase;'
|
|
|
)))
|
|
|
- ->add('olt')
|
|
|
+ ->add('olt','hidden', array('attr' => array("hidden" => true)))
|
|
|
->add('position')
|
|
|
->add('ip')
|
|
|
->end()
|
|
@@ -351,7 +363,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
->setParameter('id', $olt);
|
|
|
|
|
|
$form->add('olt', 'entity', array(
|
|
|
- 'class' => 'FTTHBundle:OLT',
|
|
|
+ 'class' => 'FTTHBundle:OLT',
|
|
|
'query_builder' => $query_olt
|
|
|
));
|
|
|
}
|
|
@@ -379,7 +391,43 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
if ($this->hasParameter('show.onu.activationCode') && $this->getParameter('show.onu.activationCode') == true) {
|
|
|
$showMapper->add('activationCode');
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ $subject = $this->getSubject();
|
|
|
+ $em = $this->get("doctrine.orm.entity_manager");
|
|
|
+ $marks = OLTModelMark::getChoices();
|
|
|
+ foreach ($marks as $m) {
|
|
|
+ $hidden[$m] = 'hidden';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Por defecto se esconden los campos en ZTE v4
|
|
|
+ $optionsZTEV4 = [
|
|
|
+ 'label_attr' => [
|
|
|
+ 'class' => 'zte_v4 hidden',
|
|
|
+ ],
|
|
|
+ 'attr' => [
|
|
|
+ 'class' => 'zte_v4 hidden',
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+
|
|
|
+ // Editando la ONU o hay template base o pasado como parámetro
|
|
|
+ if ($subject->getId()) {
|
|
|
+ $olt = $subject->getOlt();
|
|
|
+
|
|
|
+ // Según el modelo de OLT se muestran algunos campos específicos
|
|
|
+ if ($olt && $olt->getModel()) {
|
|
|
+ $oltModel = $olt->getModel();
|
|
|
+ $mark = $oltModel->getMark();
|
|
|
+ $hidden[$mark] = '';
|
|
|
+
|
|
|
+ // Chequeo si el modelo de OLT es ZTE v4
|
|
|
+ $name = $oltModel->getName();
|
|
|
+ if (strpos($name, 'ZTE') !== false && strpos($name, 'V4') !== false) {
|
|
|
+ $optionsZTEV4['label_attr']['class'] = 'zte_v4';
|
|
|
+ $optionsZTEV4['attr']['class'] = 'zte_v4';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$showMapper->add('profile')
|
|
|
->add('nap')
|
|
|
->add('model')
|
|
@@ -394,7 +442,31 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
->add('olt')
|
|
|
->add('currentState')
|
|
|
->add('position')
|
|
|
- ->add('ip');
|
|
|
+ ->add('ip')
|
|
|
+ ->end()
|
|
|
+ ->with('Huawei', ['class' => "col-md-12 {$hidden['Huawei']} olt_mark Huawei"])
|
|
|
+ ->add('servicePorts', CollectionType::class, array(
|
|
|
+ 'entry_type' => "FTTHBundle\\Form\\ServicePortType",
|
|
|
+ 'allow_add' => true,
|
|
|
+ 'allow_delete' => true,
|
|
|
+ 'required' => false,
|
|
|
+ 'by_reference' => false,
|
|
|
+ ))
|
|
|
+ ->end()
|
|
|
+ ->with('ZTE', ['class' => "col-md-12 {$hidden['ZTE']} olt_mark ZTE"])
|
|
|
+ ->add('vlan')
|
|
|
+ ->add('vlanProfile', null, $optionsZTEV4)
|
|
|
+ ->add('onuProfile', null, $optionsZTEV4)
|
|
|
+ ->add('trafficProfileIn')
|
|
|
+ ->add('trafficProfileOut')
|
|
|
+ ->add('tcontprofile')
|
|
|
+ ->add('catv')
|
|
|
+ ->end()
|
|
|
+ ->with('FiberLink', ['class' => "col-md-12 {$hidden['FiberLink']} olt_mark FiberLink"])
|
|
|
+ ->add('vlans', null, array(
|
|
|
+ 'required' => false,
|
|
|
+ 'multiple' => true,
|
|
|
+ ));
|
|
|
// Consulto en stats la url del detalle de onu
|
|
|
$onuShowUrl = $this->getStatsShowOnuUrl();
|
|
|
if ($onuShowUrl != '') {
|
|
@@ -500,7 +572,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
->end();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @return string
|
|
|
*/
|
|
@@ -518,7 +590,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
$json_decode = json_decode($response, true);
|
|
|
$onuShowUrl = isset($json_decode['url']) ? $json_decode['url'] : '';
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return $onuShowUrl;
|
|
|
}
|
|
|
|
|
@@ -547,6 +619,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
|
|
|
public function preUpdate($onu)
|
|
|
{
|
|
|
+ $onu->setOlt($onu->getNap()->getOlt());
|
|
|
$this->correctSerialNumber($onu);
|
|
|
|
|
|
if((boolean) $this->getForm()->get('tr069_exist')->getData()) {
|
|
@@ -576,6 +649,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
|
|
|
public function prePersist($onu)
|
|
|
{
|
|
|
+ $onu->setOlt($onu->getNap()->getOlt());
|
|
|
$this->correctSerialNumber($onu);
|
|
|
}
|
|
|
|
|
@@ -664,10 +738,6 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
$form->add('profile', null, array('data' => $profile));
|
|
|
}
|
|
|
|
|
|
- if($olt = $template->getOlt()) {
|
|
|
- $form->add('olt', null, array('data' => $olt));
|
|
|
- }
|
|
|
-
|
|
|
if($model = $template->getModel()) {
|
|
|
$form->add('model', null, array('data' => $model));
|
|
|
}
|