Guillermo Espinoza пре 8 година
родитељ
комит
ae2238e45b

+ 30 - 2
src/StatsBundle/Controller/StatsController.php

@@ -26,13 +26,12 @@ class StatsController extends Controller
     }
 
     /**
-     * @Route("/admin/stats/stats/graph", name="stats_graph")
+     * @Route("/admin/stats/olt/stats/graph", name="stats_graph")
      * 
      * @return string
      */
     public function getStatsGraphAction(Request $request)
     {
-//        $deviceType = $request->get('deviceType','FTTHBundle\Entity\OLT');
         $grafana_url = $this->getParameter('grafana_url');
 
         // Puertos pon
@@ -73,5 +72,34 @@ class StatsController extends Controller
             'urls' => $urls,
         ));
     }
+    
+    /**
+     * @Route("/admin/stats/onu/stats/graph", name="onu_stats_graph")
+     * 
+     * @return string
+     */
+    public function getONUStatsGraphAction(Request $request)
+    {
+        $grafana_url = $this->getParameter('grafana_url');
+
+        $urls = array();
+        $serialNumber = 'fhtt000753b0';
+        $panelIds = array(1, 2, 3, 4, 5);
+        foreach ($panelIds as $panelId) {
+            $urls[] = "onu?orgId=1&var-serialnumber={$serialNumber}&panelId={$panelId}";
+        }
+
+        if ($request->isMethod('GET')) {
+            return $this->render('StatsBundle:Stats:onu_graph.html.twig', array(
+                        'grafana_url' => $grafana_url,
+                        'urls' => $urls,
+                        'serial_number' => $serialNumber,
+            ));
+        }
+
+        return new JsonResponse(array(
+            'urls' => $urls,
+        ));
+    }
 
 }

+ 34 - 0
src/StatsBundle/Resources/views/Stats/onu_graph.html.twig

@@ -0,0 +1,34 @@
+<div>
+    <h4>{{ 'Statistics'|trans({}, 'StatsBundle') }}</h4>
+    <div style="margin: 0 auto;">
+        {{ 'Serial number'|trans({}, 'StatsBundle') }}: <b>{{ serial_number }}</b>
+        <div id="stats-iframe">
+        {% for url in urls %}
+        {% set url_iframe = grafana_url ~ url %}
+        {% set iframe = "<iframe src='#{url_iframe}' height='450' frameborder='0' style='margin-bottom: 10px; width: 100%;'></iframe>" %}
+        {{ iframe|raw }}
+        {% endfor %}
+        </div>
+    </div>
+</div>
+    
+<script type="text/javascript">
+    $(function () {
+        $('#serialnumber').on('change', function () {
+            var pon = $('#serialnumber').val();
+            $.ajax({
+                url: '{{ path('onu_stats_graph') }}',
+                type: 'POST',
+                data: {
+                    pon: pon
+                },
+                success: function(data) {
+                    $('#stats-iframe').html('');
+                    for (i = 1; i < data.urls.length; i++) {
+                        $('#stats-iframe').append('<iframe src="{{ grafana_url }}'+data.urls[i]+'" height="450" frameborder="0" style="margin-bottom: 10px; width: 100%;"></iframe>');
+                    }
+                }
+            });
+        });
+    });
+</script>

+ 4 - 0
src/StatsBundle/Resources/views/StatsDevice/show.html.twig

@@ -2,5 +2,9 @@
 
 {% block show %}
     {{ parent() }}
+    {% if object.deviceType == constant('DeviceBundle\\Utils\\DeviceTypes::FTTH_OLT') %}
     {{ render(controller('StatsBundle:Stats:getStatsGraph')) }}
+    {% else %}
+    {{ render(controller('StatsBundle:Stats:getONUStatsGraph')) }}
+    {% endif %}
 {% endblock %}