瀏覽代碼

Merged in FD3-793 (pull request #119)

FD3-793 FiberHome en FD3

Approved-by: Guillermo Espinoza <guillermo@interlink.com.ar>
Approved-by: Maximiliano Schvindt <maximiliano@interlink.com.ar>
Maximiliano Schvindt 6 年之前
父節點
當前提交
9fb479b288

+ 2 - 2
app/DoctrineMigrations/src/oltmodel.yml

@@ -2,10 +2,10 @@ insertorupdate:
     oltmodel:
         -
             id: 1
-            name: "FiberHome-AN5516-01"
+            name: "FiberHome AN5516 01"
             props: "NULL"
             mark: "FiberHome"
-            library: "OIDSBase"
+            library: "OIDSFiberHomeV1"
             extra_data: "{\r\n\"model\": \"FiberHome-AN5516-01\"\r\n}"
             tenancy_id: 1
         -

+ 12 - 2
app/DoctrineMigrations/src/onumodel.yml

@@ -2,8 +2,8 @@ insertorupdate:
     onumodel:
         -
           id: 1
-          name: "FiberHome-AN5506-04-b2"
-          extra_data: "{\r\n\"type\" : \"5506-04-b2\",\r\n\"telnet\": \"/tmp\"\r\n}"
+          name: "FiberHome-AN5506-04-B2"
+          extra_data: "{\r\n\"type\" : \"5506-04-B2\",\r\n\"telnet\": \"/tmp\"\r\n}"
           tenancy_id: 1
         -
           id: 2
@@ -26,3 +26,13 @@ insertorupdate:
           routing_mode: "bridge"
           catv: 0
           wifi: 0
+        -
+          id: 5
+          name: "FiberHome-AN5506-02-F"
+          extra_data: "{\r\n\"type\" : \"5506-02-F\",\r\n\"telnet\": \"/tmp\"\r\n}"
+          tenancy_id: 1
+        -
+          id: 6
+          name: "VSolution-HG323"
+          extra_data: "{\r\n\"type\" : \"HG260\",\r\n\"telnet\": \"/tmp\"\r\n}"
+          tenancy_id: 1

文件差異過大導致無法顯示
+ 10 - 0
app/DoctrineMigrations/src/template.yml


+ 1 - 1
src/FTTHBundle/Admin/ONUAdmin.php

@@ -239,7 +239,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                     ->add('tcontprofile')
                     ->add('catv')
                 ->end()
-                ->with('FiberLink', ['class' => "col-md-12 {$hidden['FiberLink']} olt_mark FiberLink"])
+                ->with("FiberLink | FiberHome", ['class' => "col-md-12 olt_mark FiberLink FiberHome"])
                     ->add('vlans', null, array(
                         'required' => false,
                         'multiple' => true,

+ 11 - 0
src/FTTHBundle/Entity/OLT.php

@@ -724,5 +724,16 @@ class OLT implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
         $this->sshConnect = $sshConnect;
     }
 
+    /**
+     * return string | null
+     */
+    public function getMark()
+    {
+        if($this->model)
+            return $this->model->getMark();
+        
+        return null;
+    }
+
 
 }

+ 0 - 4
src/FTTHBundle/Entity/ONU.php

@@ -1066,7 +1066,6 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
 
         if(strlen($ponSerialNumber) == 12 || strlen($ponSerialNumber) == 16) {
 
-            if(is_null($serialNumber) || empty($serialNumber)) {
                 if(strlen($ponSerialNumber) == 16) {
                     // It is a serial number > set serial number
                     $this->setSerialNumber($ponSerialNumber);
@@ -1077,9 +1076,7 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
                     $sn = strtolower($vendoId.$rest);
                     $this->setSerialNumber($sn);
                 }
-            }
 
-            if(is_null($ponSerialNumberAux) || empty($ponSerialNumberAux)) {
                 if(strlen($ponSerialNumber) == 16) {
                     // It is a serial number > convert vendor id from hexa to string and set pon serial number
                     $_vendor = substr($ponSerialNumber,0,8);
@@ -1104,7 +1101,6 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
                     // It is a pon serial number > set pon serial number
                     $this->setPonSerialNumberAux($ponSerialNumber);
                 }
-            }
         }
     }
 

+ 33 - 0
src/FTTHBundle/EventListener/ONUSubscriber.php

@@ -166,6 +166,8 @@ class ONUSubscriber implements EventSubscriber
                 $this->assignVLanId($args);
             }
 
+            $this->fiberHomeRequire($args);
+
             if ($eventName == DoctrineEvents::PRE_UPDATE) {
                 $uow = $this->em->getUnitOfWork();
                 $meta = $this->em->getClassMetadata(get_class($entity));
@@ -375,4 +377,35 @@ class ONUSubscriber implements EventSubscriber
         }
     }
     
+    /**
+     * @param LifecycleEventArgs $args
+     */
+    private function fiberHomeRequire(LifecycleEventArgs &$args) 
+    {
+        $olt = $args->getEntity()->getOlt();
+        $vlanName = "vlanid_data";
+
+        if(!$olt || $olt->getMark() != "FiberHome") 
+            return true;
+        
+        if($args->getEntity()->getVlanByName($vlanName)) 
+            return true;
+
+        $obj = $this->em->getRepository(VLanID::class)->findOneBy(array("usedByDefault" => true, "name" => $vlanName));
+        if ($obj) {
+            $args->getEntity()->addVlan($obj);
+            $this->em->flush();
+        } else {
+            $obj = $this->em->getRepository(VLanID::class)->findOneBy(array("name" => $vlanName));
+            if ($obj) {
+                $args->getEntity()->addVlan($obj);
+                $this->em->flush();
+            }
+
+        }
+
+        return true;
+        
+    }
+    
 }

+ 18 - 6
src/FTTHBundle/Resources/views/ONU/form.html.twig

@@ -78,13 +78,25 @@
                     id: olt
                 },
                 success: function (result) {
-                    $('.olt_mark').addClass('hidden');
-                    $('.' + result.mark).removeClass('hidden');
+                    if(result.mark !== 'ERROR') {
+                        $('.olt_mark').addClass('hidden');
+                        $('.' + result.mark).removeClass('hidden');
+                        $("div." + result.mark + " div div.box-header h4.box-title").html(result.mark);
 
-                    $('.zte_v4').addClass('hidden');
-                    // El modelo de OLT es ZTE V4, entonces muestro los campos
-                    if (result.name.includes('ZTE') && result.name.includes('V4')) {
-                        $('.zte_v4').removeClass('hidden');
+                        // FiberHome and FiberLink have vlans but in FiberHome vlans is required (at least vlanid_data)
+                        if(result.mark === 'FiberHome') {
+                            $('#{{ admin.uniqid ~ "_vlans" }}').attr('required',true)
+                            $("label[for='{{ admin.uniqid ~ '_vlans' }}']").addClass('required');
+                        } else {
+                            $('#{{ admin.uniqid ~ "_vlans" }}').attr('required',false)
+                            $("label[for='{{ admin.uniqid ~ '_vlans' }}']").removeClass('required');
+                        }
+                        
+                        $('.zte_v4').addClass('hidden');
+                        // El modelo de OLT es ZTE V4, entonces muestro los campos
+                        if (result.name.includes('ZTE') && result.name.includes('V4')) {
+                            $('.zte_v4').removeClass('hidden');
+                        }
                     }
                 }
             });