|
@@ -17,6 +17,7 @@ use Symfony\Component\Form\Extension\Core\Type\CollectionType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
|
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
|
|
+use FTTHBundle\Entity\ONUTemplate;
|
|
|
use FTTHBundle\Form\ServicePortType;
|
|
|
use FTTHBundle\Utils\OLTModelMark;
|
|
|
use WorkflowBundle\Admin\WorkflowBaseAdmin;
|
|
@@ -105,11 +106,19 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
*/
|
|
|
protected function configureFormFields(FormMapper $formMapper)
|
|
|
{
|
|
|
- $marks = OLTModelMark::getChoices();
|
|
|
- $em = $this->get("doctrine.orm.entity_manager");
|
|
|
- $template = $em->getRepository('FTTHBundle:ONUTemplate')->findOneBy(array('base'=>true));
|
|
|
$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');
|
|
|
+ if ($onuTemplateId) {
|
|
|
+ $this->getRequest()->query->remove('onu_template');
|
|
|
+ $template = $em->getRepository(ONUTemplate::class)
|
|
|
+ ->find($onuTemplateId);
|
|
|
+ }
|
|
|
|
|
|
+ $marks = OLTModelMark::getChoices();
|
|
|
foreach ($marks as $m) {
|
|
|
$hidden[$m] = 'hidden';
|
|
|
}
|
|
@@ -124,15 +133,16 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
],
|
|
|
];
|
|
|
|
|
|
+ // Editando la ONU o hay template base o pasado como parámetro
|
|
|
if ($subject->getId() || $template) {
|
|
|
- if($subject->getOlt()) {
|
|
|
+ $olt = null;
|
|
|
+ if ($subject->getOlt()) {
|
|
|
$olt = $subject->getOlt();
|
|
|
- } elseif($template) {
|
|
|
+ } elseif ($template) {
|
|
|
$olt = $template->getOlt();
|
|
|
- } else {
|
|
|
- $olt = null;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ // Según el modelo de OLT se muestran algunos campos específicos
|
|
|
if ($olt && $olt->getModel()) {
|
|
|
$oltModel = $olt->getModel();
|
|
|
$mark = $oltModel->getMark();
|
|
@@ -147,15 +157,27 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if($template && $this->isCurrentRoute('create')) {
|
|
|
- $translator = $this->get('translator');
|
|
|
+ if ($template && $this->isCurrentRoute('create')) {
|
|
|
$flashbag = $this->get('session')->getFlashBag();
|
|
|
- $flashbag->add("warning", $translator->trans("msg_use_template_onu_in_create_onu_ftth",array(),"FTTHBundle"));
|
|
|
+ $flashbag->add("warning", $this->trans("msg_use_template_onu_in_create_onu_ftth"));
|
|
|
}
|
|
|
|
|
|
$formMapper
|
|
|
->tab('default')
|
|
|
- ->with('')
|
|
|
+ ->with('');
|
|
|
+
|
|
|
+ // Se agrega ONUTemplate solo en el create
|
|
|
+ if ($this->isCurrentRoute('create')) {
|
|
|
+ $formMapper->add('onuTemplate', 'entity', [
|
|
|
+ 'class' => ONUTemplate::class,
|
|
|
+ 'required' => false,
|
|
|
+ 'mapped' => false,
|
|
|
+ 'help' => $this->trans('helps.onuTemplate'),
|
|
|
+ 'data' => $template,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ $formMapper
|
|
|
->add('clientId')
|
|
|
->add('ponSerialNumber', null, array(
|
|
|
'attr' => array(
|
|
@@ -224,38 +246,33 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
|
|
|
|
|
|
$tr069Data = 0;
|
|
|
-
|
|
|
- if($this->isCurrentRoute('edit')) {
|
|
|
-
|
|
|
- if($this->getParameter('tr069_service')) {
|
|
|
- $object = $this->getSubject();
|
|
|
+ if ($this->isCurrentRoute('edit')) {
|
|
|
+ if ($this->getParameter('tr069_service')) {
|
|
|
$serviceName = $this->getParameter('tr069_api');
|
|
|
- if($model = $object->getModel()) {
|
|
|
+ if ($model = $subject->getModel()) {
|
|
|
if($model->getData('tr069_api')) $serviceName = $model->getData('tr069_api');
|
|
|
}
|
|
|
$tr069 = $this->get($serviceName);
|
|
|
|
|
|
$query = array('$or' => array());
|
|
|
- if($object->getSerialNumber()) {
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getSerialNumber()));
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getSerialNumber()));
|
|
|
+ if ($subject->getSerialNumber()) {
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getSerialNumber()));
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getSerialNumber()));
|
|
|
}
|
|
|
|
|
|
- if($object->getPonSerialNumber()) {
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getPonSerialNumber()));
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getPonSerialNumber()));
|
|
|
+ if ($subject->getPonSerialNumber()) {
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getPonSerialNumber()));
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getPonSerialNumber()));
|
|
|
}
|
|
|
|
|
|
- if($object->getPonSerialNumberAux()) {
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getPonSerialNumberAux()));
|
|
|
- $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getPonSerialNumberAux()));
|
|
|
+ if ($subject->getPonSerialNumberAux()) {
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getPonSerialNumberAux()));
|
|
|
+ $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getPonSerialNumberAux()));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
$devices = $tr069->getDevices($query);
|
|
|
|
|
|
- if(is_array($devices) && isset($devices[0]) && isset($devices[0]['_id'])) {
|
|
|
-
|
|
|
+ if (is_array($devices) && isset($devices[0]) && isset($devices[0]['_id'])) {
|
|
|
$tr069Data = $tr069->getTR069Data($devices[0]);
|
|
|
|
|
|
$id = $tr069Data['_id'] ?? null;
|
|
@@ -318,7 +335,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
* Si vienen parámetros por GET de olt=id o psn=string seteamos los campos
|
|
|
*/
|
|
|
$formMapper->getFormBuilder()->addEventListener(FormEvents::PRE_SET_DATA,
|
|
|
- function (FormEvent $event) use ($formMapper, $template, $subject) {
|
|
|
+ function (FormEvent $event) use ($em, $template) {
|
|
|
$form = $event->getForm();
|
|
|
|
|
|
if ($template && $this->isCurrentRoute('create')) {
|
|
@@ -326,16 +343,17 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
}
|
|
|
|
|
|
$olt = $this->getRequest()->query->get('olt');
|
|
|
- if(!is_null($olt)) {
|
|
|
- $em = $this->get("doctrine.orm.entity_manager");
|
|
|
-
|
|
|
+ if (!is_null($olt)) {
|
|
|
$query_olt = $em->createQueryBuilder('o')
|
|
|
->select('o')
|
|
|
->from('FTTHBundle:OLT', 'o')
|
|
|
->where('o.id = :id')
|
|
|
->setParameter('id', $olt);
|
|
|
|
|
|
- $form->add('olt', 'entity', array('class' => 'FTTHBundle:OLT', 'query_builder' => $query_olt));
|
|
|
+ $form->add('olt', 'entity', array(
|
|
|
+ 'class' => 'FTTHBundle:OLT',
|
|
|
+ 'query_builder' => $query_olt
|
|
|
+ ));
|
|
|
}
|
|
|
|
|
|
$ponSerialNumber = $this->getRequest()->query->get('psn');
|
|
@@ -654,6 +672,7 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
}
|
|
|
return parent::update($object);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* @param Form $form
|
|
|
* @param Template $template
|
|
@@ -703,9 +722,6 @@ class ONUAdmin extends WorkflowBaseAdmin
|
|
|
if($vlans = $template->getVlans()) {
|
|
|
$form->add('vlans', null, array('data' => $vlans));
|
|
|
}
|
|
|
- if($position = $template->getPosition()) {
|
|
|
- $form->add('position', null, array('data' => $position));
|
|
|
- }
|
|
|
|
|
|
if($extraData = $template->getExtraData()) {
|
|
|
$form->add('extraData', null, array('data' => $extraData));
|