diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php index 473e36dfdc..3d3c883da8 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_common.php +++ b/pandora_console/godmode/agentes/module_manager_editor_common.php @@ -291,7 +291,7 @@ if (modules_is_string_type($id_module_type) || $edit) { $table_simple->data[4][1] .= '
'.__('Inverse interval').''; $table_simple->data[4][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true, $disabledBecauseInPolicy); if (!modules_is_string_type($id_module_type) || $edit) { - $table_simple->data[4][2] = ''; + $table_simple->data[4][2] = ' '; $table_simple->colspan[4][2] = 2; $table_simple->rowspan[4][2] = 3; } @@ -1199,17 +1199,32 @@ function paint_graph_values(){ //inicialiced error var error_w = 0; var error_c = 0; + //messages legend + var legend_normal = ''; + var legend_warning = ''; + var legend_critical = ''; + //messages error + var message_error_warning = ''; + var message_error_critical = ''; + //if haven't error if(max_w == 0 || max_w > min_w){ if(max_c == 0 || max_c > min_c){ - paint_graph_status(min_w, max_w, min_c, max_c, inverse_w, inverse_c, error_w, error_c); + paint_graph_status(min_w, max_w, min_c, max_c, inverse_w, + inverse_c, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } else { error_c = 1; - paint_graph_status(0,0,0,0,0,0, error_w, error_c); + paint_graph_status(0,0,0,0,0,0, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } } else { error_w = 1; - paint_graph_status(0,0,0,0,0,0, error_w, error_c); + paint_graph_status(0,0,0,0,0,0, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } } diff --git a/pandora_console/godmode/modules/manage_network_components_form_common.php b/pandora_console/godmode/modules/manage_network_components_form_common.php index b9cc96a468..6cbf0a608b 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_common.php +++ b/pandora_console/godmode/modules/manage_network_components_form_common.php @@ -128,7 +128,7 @@ $table->data[4][1] .= html_print_input_text ('str_warning', $str_warning, $table->data[4][1] .= '
'.__('Inverse interval').''; $table->data[4][1] .= html_print_checkbox ("warning_inverse", 1, $warning_inverse, true); -$table->data[4][2] = ' '; +$table->data[4][2] = ' '; $table->colspan[4][2] = 2; $table->rowspan[4][2] = 3; @@ -349,20 +349,36 @@ $next_row++; if(!inverse_w){ inverse_w = 0; } var inverse_c = $('input:checkbox[name=critical_inverse]:checked').val(); if(!inverse_c){ inverse_c = 0; } + //inicialiced error var error_w = 0; var error_c = 0; + //messages legend + var legend_normal = ''; + var legend_warning = ''; + var legend_critical = ''; + //messages error + var message_error_warning = ''; + var message_error_critical = ''; + //if haven't error if(max_w == 0 || max_w > min_w){ if(max_c == 0 || max_c > min_c){ - paint_graph_status(min_w, max_w, min_c, max_c, inverse_w, inverse_c, error_w, error_c); + paint_graph_status(min_w, max_w, min_c, max_c, inverse_w, + inverse_c, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } else { error_c = 1; - paint_graph_status(0,0,0,0,0,0, error_w, error_c); + paint_graph_status(0,0,0,0,0,0, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } } else { error_w = 1; - paint_graph_status(0,0,0,0,0,0, error_w, error_c); + paint_graph_status(0,0,0,0,0,0, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical); } } diff --git a/pandora_console/include/javascript/pandora.js b/pandora_console/include/javascript/pandora.js index a7ddd6074f..12018f23dd 100644 --- a/pandora_console/include/javascript/pandora.js +++ b/pandora_console/include/javascript/pandora.js @@ -622,7 +622,6 @@ function post_process_select_init_unit(name,selected) { } }); - console.log(select_or_text); if(select_or_text) { $('#' + name + '_select option[value='+ selected +']').attr("selected",true); $('#text-' + name + '_text').val(""); @@ -1265,4 +1264,288 @@ function pagination_show_more(params, message){ }, datatype: "html" }); +} +/* +*function use d3.js for paint graph +*/ +function paint_graph_status(min_w, max_w, min_c, max_c, inverse_w, inverse_c, error_w, error_c, + legend_normal, legend_warning, legend_critical, + message_error_warning, message_error_critical) { + + //Check if they are numbers + if(isNaN(min_w)){ min_w = 0; }; + if(isNaN(max_w)){ max_w = 0; }; + if(isNaN(min_c)){ min_c = 0; }; + if(isNaN(max_c)){ max_c = 0; }; + + //if haven't errors + if (error_w == 0 && error_c == 0){ + //parse element + min_w = parseFloat(min_w); + min_c = parseFloat(min_c); + max_w = parseFloat(max_w); + max_c = parseFloat(max_c); + + //inicialize var + var range_min = 0; + var range_max = 0; + var range_max_min = 0; + var range_max_min = 0; + + //Find the lowest possible value + if(min_w < 0 || min_c < 0){ + if(min_w < min_c){ + range_min = min_w - 100; + } else { + range_min = min_c - 100; + } + } else if (min_w > 0 || min_c > 0) { + if(min_w > min_c){ + range_max_min = min_w; + } else { + range_max_min = min_c; + } + } else { + if(min_w < min_c){ + range_min = min_w - 100; + } else { + range_min = min_c - 100; + } + } + + //Find the maximum possible value + if(max_w > max_c){ + range_max = max_w + 100 + range_max_min; + } else { + range_max = max_c + 100 + range_max_min; + } + + //Controls whether the maximum = 0 is infinite + if((max_w == 0 || max_w == 0.00) && min_w != 0){ + max_w = range_max; + } + if((max_c == 0 || max_c == 0.00) && min_c != 0){ + max_c = range_max; + } + + //Scale according to the position + position = 200 / (range_max-range_min); + + //axes + var yScale = d3.scale.linear() + .domain([range_min, range_max]) + .range([100, -100]); + + var yAxis = d3.svg.axis() + .scale(yScale) + .orient("left"); + + //create svg + var svg = d3.select("#svg_dinamic"); + //delete elements + svg.selectAll("g").remove(); + + width_x = 201; + height_x = 50; + + svg.append("g") + .attr("transform", "translate(200, 150)") + .call(yAxis); + + //legend Normal text + svg.append("g") + .attr("width", 300) + .attr("height", 300) + .append("text") + .attr("x", width_x) + .attr("y", height_x - 20) + .attr("fill", 'black') + .style("font-family", "arial") + .style("font-weight", "bold") + .style("font-size", '8pt') + .html(legend_normal) + .style("text-anchor", "first") + .attr("width", 300) + .attr("height", 300); + + //legend Normal rect + svg.append("g") + .append("rect") + .attr("id", "legend_normal") + .attr("x", width_x + 80) + .attr("y", height_x - 30) + .attr("width", 10) + .attr("height", 10) + .style("fill", "#82B92E"); + + //legend Warning text + svg.append("g") + .append("text") + .attr("x", width_x + 100) + .attr("y", height_x - 20) + .attr("fill", 'black') + .style("font-family", "arial") + .style("font-weight", "bold") + .style("font-size", '8pt') + .html(legend_warning) + .style("text-anchor", "first"); + + //legend Warning rect + svg.append("g") + .append("rect") + .attr("id", "legend_warning") + .attr("x", width_x + 185) + .attr("y", height_x - 30) + .attr("width", 10) + .attr("height", 10) + .style("fill", "#ffd731"); + + //legend Critical text + svg.append("g") + .append("text") + .attr("x", width_x + 205) + .attr("y", height_x - 20) + .attr("fill", 'black') + .style("font-family", "arial") + .style("font-weight", "bold") + .style("font-size", '8pt') + .html(legend_critical) + .style("text-anchor", "first"); + + //legend critical rect + svg.append("g") + .append("rect") + .attr("id", "legend_critical") + .attr("x", width_x + 285) + .attr("y", height_x - 30) + .attr("width", 10) + .attr("height", 10) + .style("fill", "#fc4444"); + + //styles for number and axes + svg.selectAll("g .domain") + .style("stroke-width", 2) + .style("fill", "none") + .style("stroke", "black"); + + svg.selectAll("g .tick text") + .style("font-size", "9pt") + .style("font-weight", "initial"); + + //estatus normal + svg.append("g") + .append("rect") + .attr("id", "status_rect") + .attr("x", width_x) + .attr("y", height_x) + .attr("width", 300) + .attr("height", 200) + .style("fill", "#82B92E"); + + //controls the inverse warning + if(inverse_w == 0){ + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "warning_rect") + .attr("x", width_x) + .attr("y", (height_x +(range_max - min_w) * position) - ((max_w - min_w) * position)) + .attr("width", 300) + .attr("height", ((max_w - min_w) * position)) + .style("fill", "#ffd731"); + } + else { + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "warning_rect") + .attr("x", width_x) + .attr("y", height_x + 200 - ((min_w -range_min) * position)) + .attr("width", 300) + .attr("height", (min_w -range_min) * position) + .style("fill", "#ffd731"); + + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "warning_inverse_rect") + .attr("x", width_x) + .attr("y", height_x) + .attr("width", 300) + .attr("height", ((range_max - min_w) * position) - ((max_w - min_w) * position)) + .style("fill", "#ffd731"); + + } + //controls the inverse critical + if(inverse_c == 0){ + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "critical_rect") + .attr("x", width_x) + .attr("y", (height_x + (range_max - min_c) * position) - ((max_c - min_c) * position)) + .attr("width", 300) + .attr("height", ((max_c - min_c) * position)) + .style("fill", "#fc4444"); + } + else { + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "critical_rect") + .attr("x", width_x) + .attr("y", height_x + 200 - ((min_c -range_min) * position)) + .attr("width", 300) + .attr("height", (min_c -range_min) * position) + .style("fill", "#fc4444"); + svg.append("g") + .append("rect").transition() + .duration(600) + .attr("id", "critical_inverse_rect") + .attr("x", width_x) + .attr("y", height_x) + .attr("width", 300) + .attr("height", ((range_max - min_c) * position) - ((max_c - min_c) * position)) + .style("fill", "#fc4444"); + } + + } + else { + d3.select("#svg_dinamic rect").remove(); + //create svg + var svg = d3.select("#svg_dinamic"); + svg.selectAll("g").remove(); + + //message error warning + if (error_w == 1) { + $("#text-max_warning").addClass("input_error"); + svg.append("g") + .append("text") + .attr("x", width_x) + .attr("y", height_x) + .attr("fill", 'black') + .style("font-family", "arial") + .style("font-weight", "bold") + .style("font-size", 14) + .style("fill", "red") + .html(message_error_warning) + .style("text-anchor", "first"); + } + //message error critical + if (error_c == 1) { + $("#text-max_critical").addClass("input_error"); + svg.append("g") + .append("text") + .attr("x", width_x) + .attr("y", height_x) + .attr("fill", 'black') + .style("font-family", "arial") + .style("font-weight", "bold") + .style("font-size", 14) + .style("fill", "red") + .html(message_error_critical) + .style("text-anchor", "first"); + } + + } } \ No newline at end of file