Преглед изворни кода

Merged in FD3-535 (pull request #15)

FD3-535 se muestra cablemodem en vista show de host

Approved-by: Maximiliano Schvindt <maximiliano@interlink.com.ar>
Guillermo Espinoza пре 7 година
родитељ
комит
e651e320a1

+ 6 - 0
app/config/bundles/ik/webservice-bundle/parameters.yml.dist

@@ -20,3 +20,9 @@ parameters:
         Mapas: '%url_mapas%'
         Stats: '%url_stats%'
         Radius: '%url_radius%'
+
+    # Cablemodem APP API URL
+    cablemodem_docker: 'http://cablemodem:8000'
+    cablemodem_post_url: '%cablemodem_docker%/api/cablemodems.json'
+    cablemodem_put_url: '%cablemodem_docker%/api/cablemodems/{id}.json'
+    cablemodem_del_url: '%cablemodem_docker%/api/cablemodems/{id}.json'

+ 6 - 0
app/config/bundles/ik/webservice-bundle/parameters.yml.docker

@@ -20,3 +20,9 @@ parameters:
         Mapas: '%url_mapas%'
         Stats: '%url_stats%'
         Radius: '%url_radius%'
+
+    # Cablemodem APP API URL
+    cablemodem_docker: 'http://cablemodem:8000'
+    cablemodem_post_url: '%cablemodem_docker%/api/cablemodems.json'
+    cablemodem_put_url: '%cablemodem_docker%/api/cablemodems/{id}.json'
+    cablemodem_del_url: '%cablemodem_docker%/api/cablemodems/{id}.json'

+ 4 - 4
composer.lock

@@ -1633,7 +1633,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
-                "reference": "f4c224b26d011c99f789cb4bddf68e1d2cc32645"
+                "reference": "7425e39fc61b46db91ddcfb405adc1b9f38c0d59"
             },
             "require": {
                 "ext-curl": "*",
@@ -1646,7 +1646,7 @@
                 }
             },
             "description": "The Flowdat3 Webservice Rest",
-            "time": "2018-02-27T11:03:58+00:00"
+            "time": "2018-05-22T17:32:16+00:00"
         },
         {
             "name": "ik/workflow-bundle",
@@ -1654,7 +1654,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/WorkflowBundle.git",
-                "reference": "bd577e702f687cceafb370131d60916ecc2b6976"
+                "reference": "4eff7cff8e2e23771f02e03646d4378c9d8a5e33"
             },
             "require": {
                 "php-amqplib/rabbitmq-bundle": "^1.12"
@@ -1684,7 +1684,7 @@
                 "bundle",
                 "workflow"
             ],
-            "time": "2018-04-25T14:53:54+00:00"
+            "time": "2018-05-22T13:38:30+00:00"
         },
         {
             "name": "incenteev/composer-parameter-handler",

+ 43 - 12
src/IPv4Bundle/Admin/HostAdmin.php

@@ -3,10 +3,12 @@
 namespace IPv4Bundle\Admin;
 
 use Base\AdminBundle\Admin\BaseAdmin;
+use IPv4Bundle\Entity\Host;
 use Sonata\AdminBundle\Datagrid\DatagridMapper;
 use Sonata\AdminBundle\Datagrid\ListMapper;
 use Sonata\AdminBundle\Form\FormMapper;
 use Sonata\AdminBundle\Show\ShowMapper;
+use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
 
 class HostAdmin extends BaseAdmin
 {
@@ -48,11 +50,17 @@ class HostAdmin extends BaseAdmin
         $formMapper
             ->tab('Host')
             ->with('Host')
-		    ->add('mac')
-		    ->add('hostType')
-		    ->add('state')
-		->end()
-		->end()
+            ->add('mac')
+            ->add('hostType')
+            ->add('state', ChoiceType::class, [
+                'choices' => [
+                    Host::STATE_ACTIVE => Host::STATE_ACTIVE,
+                    Host::STATE_SUSPENDED => Host::STATE_SUSPENDED,
+                ],
+                'translation_domain' => 'IPv4Bundle',
+            ])
+        ->end()
+        ->end()
         ;
     }
 
@@ -67,18 +75,41 @@ class HostAdmin extends BaseAdmin
             ->add('mac')
             ->add('hostType')
             ->add('state')
-		->end()
-		->end()
+        ->end()
+        ->end()
         ;
+
+        $this->addCablemodemTab($showMapper);
+    }
+
+    /**
+     * @param ShowMapper $showMapper
+     */
+    protected function addCablemodemTab(ShowMapper $showMapper)
+    {
+        if ($showMapper->hasOpenTab()) {
+            $showMapper
+            ->end()
+            ->end();
+        }
+        $showMapper
+        ->tab('Cablemodem')
+        ->with('Cablemodem')
+        ->add('cablemodem', null, array(
+            'template' => 'IPv4Bundle:CRUD:cablemodem_show_field.html.twig',
+            'label' => false,
+        ))
+        ->end()
+        ->end();
     }
 
     function prePersist($object){
-	    $object->setOptions(json_encode($object->getDHCPOption()));
-	    return parent::preUpdate($object);
+        $object->setOptions(json_encode($object->getDHCPOption()));
+        return parent::preUpdate($object);
     }
-    
+
     function preUpdate($object){
-	    $object->setOptions(json_encode($object->getDHCPOption()));
-	    return parent::preUpdate($object);
+        $object->setOptions(json_encode($object->getDHCPOption()));
+        return parent::preUpdate($object);
     }
 }

+ 5 - 0
src/IPv4Bundle/Entity/HostType.php

@@ -4,6 +4,7 @@ namespace IPv4Bundle\Entity;
 
 use Base\AdminBundle\Interfaces\PreRemoveInterface;
 use Doctrine\ORM\Mapping as ORM;
+use JMS\Serializer\Annotation as JMS;
 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Validator\Constraints as Assert;
 
@@ -46,11 +47,15 @@ class HostType implements PreRemoveInterface
 
     /**
      * @ORM\OneToMany(targetEntity="Host", mappedBy="hostType")
+     *
+     * @JMS\MaxDepth(1)
      */
     protected $hosts;
 
     /**
      * @ORM\OneToMany(targetEntity="SubNet", mappedBy="allowedHostType")
+     *
+     * @JMS\MaxDepth(1)
      */
     protected $subNets;
 

+ 11 - 0
src/IPv4Bundle/Resources/translations/IPv4Bundle.es.yml

@@ -117,3 +117,14 @@ breadcrumb:
     link_pool_delete: Eliminar Pool
     link_sub_net_list: Listado Subred
     link_sub_net_delete: Eliminar Subred
+
+
+Mac: Mac
+Model: Modelo
+Profile: Perfil
+Node: Nodo
+'MTA Enabled': 'MTA Enabled'
+State: Estado
+active: Activo
+suspended: Suspendido
+disabled: Inactivo

+ 42 - 0
src/IPv4Bundle/Resources/views/CRUD/cablemodem_show_field.html.twig

@@ -0,0 +1,42 @@
+{% set cablemodem = get_json('cablemodem_post_url', { mac: object.mac }) %}
+
+{% block field %}
+{% if cablemodem %}
+<td>
+<table class="table">
+    <tbody>
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'Mac'|trans({}, 'IPv4Bundle') }}</th><td>{{ cablemodem.mac }}</td>
+        </tr>
+        {% if cablemodem.model %}
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'Model'|trans({}, 'IPv4Bundle') }}</th><td>{{ cablemodem.model.name }}</td>
+        </tr>
+        {% endif %}
+        {% if cablemodem.profile %}
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'Profile'|trans({}, 'IPv4Bundle') }}</th><td>{{ cablemodem.profile.name }}</td>
+        </tr>
+        {% endif %}
+        {% if cablemodem.node %}
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'Node'|trans({}, 'IPv4Bundle') }}</th><td>{{ cablemodem.node.name }}</td>
+        </tr>
+        {% endif %}
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'MTA Enabled'|trans({}, 'IPv4Bundle') }}</th><td>
+            {% if cablemodem.mtaEnabled %}
+            <span class="label label-success">sí</span>
+            {% else %}
+            <span class="label label-danger">no</span>
+            {% endif %}
+            </td>
+        </tr>
+        <tr class="sonata-ba-view-container">
+            <th>{{ 'State'|trans({}, 'IPv4Bundle') }}</th><td>{{ cablemodem.currentState|trans({}, 'IPv4Bundle') }}</td>
+        </tr>
+    </tbody>
+</table>
+</td>
+{% endif %}
+{% endblock %}

+ 0 - 1
src/IPv4Bundle/Resources/views/Default/index.html.twig

@@ -1 +0,0 @@
-Hello World!