Bläddra i källkod

Merged in FD3-176 (pull request #18)

FD3-176
Luciano Andrade 7 år sedan
förälder
incheckning
0fc4d4cbfe
4 ändrade filer med 82 tillägg och 11 borttagningar
  1. 1 1
      Dockerfile
  2. 4 4
      composer.lock
  3. 67 5
      src/FTTHBundle/Form/ONUType.php
  4. 10 1
      src/FTTHBundle/Resources/config/services.yml

+ 1 - 1
Dockerfile

@@ -17,7 +17,7 @@ RUN mkdir ~/.ssh
 RUN ssh-keyscan -H bitbucket.org >> ~/.ssh/known_hosts
 RUN ssh-keyscan -H -p 222 infra.flowdat.com >> ~/.ssh/known_hosts
 RUN ssh-keyscan -H -p 222 200.50.168.30 >> ~/.ssh/known_hosts
-RUN ssh-keyscan -H -p 222 infra.flowdat.com >> ~/.ssh/known_hosts
+RUN ssh-keyscan -H -p 222 gogs.infra.flowdat.com >> ~/.ssh/known_hosts
 
 WORKDIR /opt/ftth
 

+ 4 - 4
composer.lock

@@ -1420,7 +1420,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@gogs.infra.flowdat.com:222/VendorSoftwareFlowdat3/DeviceBundle.git",
-                "reference": "f801d9002000c0804b5e8436dc1f4ac6a0143514"
+                "reference": "f6b8fdcefdf517a0a28f4c8abd79940228e6ac7c"
             },
             "type": "library",
             "autoload": {
@@ -1435,7 +1435,7 @@
                 "bundle",
                 "validators"
             ],
-            "time": "2017-08-01 18:49:14"
+            "time": "2017-08-15 13:45:08"
         },
         {
             "name": "ik/extra-data-bundle",
@@ -1609,7 +1609,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
-                "reference": "b52ce2ca48888b55efae468773b25f2119348c5e"
+                "reference": "4741dcfae72c9464714d5b50f8466bcda70720d2"
             },
             "require": {
                 "ext-curl": "*",
@@ -1622,7 +1622,7 @@
                 }
             },
             "description": "The Flowdat3 Webservice Rest",
-            "time": "2017-08-15 13:48:13"
+            "time": "2017-08-25 16:30:30"
         },
         {
             "name": "ik/workflow-bundle",

+ 67 - 5
src/FTTHBundle/Form/ONUType.php

@@ -6,8 +6,24 @@ use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\FormBuilderInterface;
 use Symfony\Component\OptionsResolver\OptionsResolver;
 
+use Symfony\Component\Form\Extension\Core\Type\TextType;
+
+use Symfony\Component\Form\FormEvent;
+use Symfony\Component\Form\FormEvents;
+
 class ONUType extends AbstractType
 {
+
+    protected $webservice = null;
+    public function setWebService($ws){
+	$this->webservice = $ws;
+    }
+
+    protected $em = null;
+    public function setEntityManager($em){
+	$this->em = $em;
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -16,13 +32,61 @@ class ONUType extends AbstractType
         $builder->add('ip')
                 ->add('mac')
                 ->add('serialNumber')
+                ->add('profile')
+                ->add('model')
+                ->add('nap')
                 ->add('ponSerialNumber')
                 ->add('clientId')
-                ->add('administrativeState')
-                ->add('currentState')
-                ->add('transitionState')
                 ->add('tenancyId')
                 ;
+
+	$builder->addEventListener(
+            FormEvents::PRE_SUBMIT,
+            function (FormEvent $event) {
+                $form = $event->getForm();
+
+                $data = $event->getData();
+
+		$clientID = $data['clientId'];
+
+		if(is_array($clientID) and $this->webservice){
+		$clientID["disableTenancy"] = 1;
+			$remote_data = $this->webservice->getData("client", $clientID);
+			if(count($remote_data) === 1){
+				$data["clientId"] = $remote_data[0]["id"];
+			}else{
+				unset($data["clientId"]);
+			}
+		}
+
+		if(isset($data["profile"]) and is_array($data["profile"]) and $this->em){
+			$profile = $this->em->getRepository("FTTHBundle\Entity\Profile")->findOneBy($data["profile"]);
+			unset($data["profile"]);
+			if($profile){
+				$data["profile"] = $profile->getId();
+			}
+		}
+
+		if(isset($data["model"]) and is_array($data["model"]) and $this->em){
+			$model = $this->em->getRepository("FTTHBundle\Entity\ONUModel")->findOneBy($data["model"]);
+			unset($data["model"]);
+			if($model){
+				$data["model"] = $model->getId();
+			}
+		}
+
+		if(isset($data["nap"]) and is_array($data["nap"]) and $this->em){
+			$nap= $this->em->getRepository("FTTHBundle\Entity\NAP")->findOneBy($data["nap"]);
+			unset($data["nap"]);
+			if($nap){
+				$data["nap"] = $nap->getId();
+			}
+		}
+
+		$event->setData($data);
+
+            }
+        );
     }
     
     /**
@@ -42,6 +106,4 @@ class ONUType extends AbstractType
     {
         return 'ftthbundle_onu';
     }
-
-
 }

+ 10 - 1
src/FTTHBundle/Resources/config/services.yml

@@ -50,4 +50,13 @@ services:
     ftth.onu_position.subscriber:
         class: FTTHBundle\EventListener\ONUPositionSubscriber
         tags:
-            - { name: doctrine.event_subscriber, connection: default }
+            - { name: doctrine.event_subscriber, connection: default }
+
+    ftth.onu.form:
+        class: FTTHBundle\Form\ONUType
+        calls:
+            - ["setWebService", ["@webservice"]]
+            - ["setEntityManager", ["@doctrine.orm.entity_manager"]]
+        tags:
+            - { name: form.type }
+