From e7b664dd63326e73127ef5cbe7a901ce2cf68c61 Mon Sep 17 00:00:00 2001 From: mdtrooper Date: Mon, 22 Feb 2016 13:02:06 +0100 Subject: [PATCH] Some changes that we need. --- .../include/class/Networkmap.class.php | 35 +++++++++++++------ .../include/javascript/map/MapController.js | 12 ++++--- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/pandora_console/include/class/Networkmap.class.php b/pandora_console/include/class/Networkmap.class.php index e14fa01d8c..83c3bfe534 100644 --- a/pandora_console/include/class/Networkmap.class.php +++ b/pandora_console/include/class/Networkmap.class.php @@ -67,6 +67,7 @@ class Networkmap extends Map { $nodes = array(); $edges = array(); + $last_graph_id = 0; foreach ($nodes_and_edges as $node_or_edge) { $node_or_edge = trim($node_or_edge); @@ -104,10 +105,15 @@ class Networkmap extends Map { $type = ITEM_TYPE_AGENT_NETWORKMAP; } - $nodes[$graphviz_id] = array('id' => $id, 'type' => $type); + $nodes[] = array('graph_id' => $graphviz_id, + 'id' => $id, 'type' => $type); + + $last_graph_id = $graphviz_id; } } + + foreach ($positions as $line) { //clean line a long spaces for one space caracter $line = preg_replace('/[ ]+/', ' ', $line); @@ -116,20 +122,29 @@ class Networkmap extends Map { $items = explode(' ', $line); $graphviz_id = $items[1]; - $nodes[$graphviz_id]['x'] = $items[2] * 100; //200 is for show more big - $nodes[$graphviz_id]['y'] = $items[3] * 100; + // We need a binary tree...in some future time. + + foreach ($nodes as $i => $node) { + if ($node['graph_id'] == $graphviz_id) { + $nodes[$i]['x'] = $items[2] * 100; //200 is for show more big + $nodes[$i]['y'] = $items[3] * 100; + } + } } } - foreach ($nodes as $graphviz_id => $node) { - $this->nodes[$graphviz_id] = $node; + foreach ($edges as $i => $edge) { + $graph_id = $last_graph_id++; + + $this->nodes[] = array( + 'graph_id' => $graph_id, + 'type' => ITEM_TYPE_EDGE_NETWORKMAP); + $edge[$i]['graph_id'] = $graph_id; + } - foreach ($edges as $edge) { - $this->nodes[] = array('type' => ITEM_TYPE_EDGE_NETWORKMAP); - $edge['id_item'] = key(end($this->nodes)); - $this->edges[] = $edge; - } + $this->nodes = $nodes; + $this->edges = $edges; } protected function temp_parseParameters_generateDot() { diff --git a/pandora_console/include/javascript/map/MapController.js b/pandora_console/include/javascript/map/MapController.js index 69f63da9f2..235e9b0c90 100644 --- a/pandora_console/include/javascript/map/MapController.js +++ b/pandora_console/include/javascript/map/MapController.js @@ -37,7 +37,8 @@ MapController.prototype.init_map = function() { var viewport = svg .call(d3.behavior.zoom().scaleExtent([1/100, 100]).on("zoom", zoom)) - .append("g"); + .append("g") + .attr("class", "viewport"); function zoom() { viewport @@ -45,7 +46,7 @@ MapController.prototype.init_map = function() { } this.paint_nodes(viewport); - + //~ //~ viewport.append("g").append("circle") //~ .attr("id", "node_10") //~ .attr("class", "node") @@ -148,12 +149,15 @@ Return void This function manages mouse clicks and run events in consecuence */ MapController.prototype.click_event = function(event) { + console.log(1111); var self = event.data.map; event.preventDefault(); event.stopPropagation(); switch (event.which) { case 1: + console.log(2222); if ($(event.currentTarget).hasClass("node")) { + console.log(3333); self.tooltip_map_create(self, event); } else { @@ -177,7 +181,7 @@ This function manages nodes tooltips MapController.prototype.tooltip_map_create = function(self, event, close) { var nodeR = parseInt($(event.currentTarget).attr("r")); var node_id = $(event.currentTarget).attr("id"); - + if (this.containsTooltipId(node_id)) { $(event.currentTarget).tooltipster("show"); } @@ -189,7 +193,7 @@ MapController.prototype.tooltip_map_create = function(self, event, close) { offsetX: nodeR, theme: 'tooltipster-noir', multiple: true, - content: $('I\'M A FUCKING TOOLTIP!!') + content: $('I\'M A FUCKING TOOLTIP!!') }); this._tooltipsID.push(node_id);