Added a lot of code to add donut graph to visual console. Print donut in progress.
This commit is contained in:
parent
ce72e5a5af
commit
d18dded93a
|
@ -448,13 +448,6 @@ function update_button_palette_callback() {
|
||||||
setDonutsGraph(idItem, values);
|
setDonutsGraph(idItem, values);
|
||||||
break;
|
break;
|
||||||
case 'simple_value':
|
case 'simple_value':
|
||||||
//checkpoint
|
|
||||||
// if(($('#text-label_ifr').contents().find('#tinymce p').html() == '_VALUE_' ||
|
|
||||||
// $('#text-label_ifr').contents().find('#tinymce').html() == '_VALUE_')
|
|
||||||
// && $('#data_image_check').html() != 'On'){
|
|
||||||
// alert('_VALUE_ exactly value is only enable for data image. Please change label text or select a data image module.');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
$("#" + idItem).html(values['label']);
|
$("#" + idItem).html(values['label']);
|
||||||
if( (values['label'].replace( /<.*?>/g, '' ) != '_VALUE_')
|
if( (values['label'].replace( /<.*?>/g, '' ) != '_VALUE_')
|
||||||
&& (values['label'].replace( /<.*?>/g, '' ) != '(_VALUE_)') ){
|
&& (values['label'].replace( /<.*?>/g, '' ) != '(_VALUE_)') ){
|
||||||
|
@ -469,12 +462,7 @@ function update_button_palette_callback() {
|
||||||
$("#" + idItem).html(
|
$("#" + idItem).html(
|
||||||
'<table><tbody><tr><td></td></tr><tr><td><span style="" id="text_21" class="text">'+values["label"]+'</span></td></tr><tr><td></td></tr></tbody></table>'
|
'<table><tbody><tr><td></td></tr><tr><td><span style="" id="text_21" class="text">'+values["label"]+'</span></td></tr><tr><td></td></tr></tbody></table>'
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//$("#simplevalue_" + idItem)
|
|
||||||
//.html($('<img></img>').attr('src', "images/spinner.gif"));
|
|
||||||
setModuleValue(idItem,values['process_simple_value'], values['period'],values['width']);
|
setModuleValue(idItem,values['process_simple_value'], values['period'],values['width']);
|
||||||
break;
|
break;
|
||||||
case 'label':
|
case 'label':
|
||||||
|
@ -2011,6 +1999,53 @@ function setEventsBar(id_data, values) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setDonutsGraph (id_data, values) {
|
||||||
|
var url_hack_metaconsole = '';
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
url_hack_metaconsole = '../../';
|
||||||
|
}
|
||||||
|
|
||||||
|
parameter = Array();
|
||||||
|
|
||||||
|
parameter.push ({name: "page", value: "include/ajax/visual_console_builder.ajax"});
|
||||||
|
parameter.push ({name: "action", value: "get_module_type_string"});
|
||||||
|
parameter.push ({name: "id_agent", value: values['id_agent']});
|
||||||
|
parameter.push ({name: "id_agent_module", value: values['module']});
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
parameter.push ({name: "id_metaconsole", value: id_metaconsole});
|
||||||
|
}
|
||||||
|
parameter.push ({name: "id_visual_console", value: id_visual_console});
|
||||||
|
jQuery.ajax({
|
||||||
|
url: get_url_ajax(),
|
||||||
|
data: parameter,
|
||||||
|
type: "POST",
|
||||||
|
dataType: 'json',
|
||||||
|
success: function (data) {
|
||||||
|
if (data['no_data'] == true) {
|
||||||
|
if (values['width'] == "0" || values['height'] == "0") {
|
||||||
|
$("#" + id_data + " img").attr('src', url_hack_metaconsole + 'images/console/signes/module-events.png');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#" + id_data + " img").attr('src', url_hack_metaconsole + 'images/console/signes/module-events.png');
|
||||||
|
$("#" + id_data + " img").css('width', values['width'] + 'px');
|
||||||
|
$("#" + id_data + " img").css('height', values['height'] + 'px');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#" + id_data + " img").attr('src', url_hack_metaconsole + 'images/console/signes/module-events.png');
|
||||||
|
|
||||||
|
if($('#text-width').val() == 0 || $('#text-height').val() == 0){
|
||||||
|
// Image size
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$("#" + id_data + " img").css('width', $('#text-width').val()+'px');
|
||||||
|
$("#" + id_data + " img").css('height', $('#text-height').val()+'px');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function setPercentileBubble(id_data, values) {
|
function setPercentileBubble(id_data, values) {
|
||||||
metaconsole = $("input[name='metaconsole']").val();
|
metaconsole = $("input[name='metaconsole']").val();
|
||||||
|
|
||||||
|
@ -2373,7 +2408,6 @@ function createItem(type, values, id_data) {
|
||||||
var sizeStyle = '';
|
var sizeStyle = '';
|
||||||
var imageSize = '';
|
var imageSize = '';
|
||||||
item = $('<div id="' + id_data + '" class="item donut_graph" style="text-align: left; position: absolute; display: inline-block; ' + sizeStyle + ' top: ' + values['top'] + 'px; left: ' + values['left'] + 'px;">' +
|
item = $('<div id="' + id_data + '" class="item donut_graph" style="text-align: left; position: absolute; display: inline-block; ' + sizeStyle + ' top: ' + values['top'] + 'px; left: ' + values['left'] + 'px;">' +
|
||||||
'<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></table>' +
|
|
||||||
'<img class="image" id="image_' + id_data + '" src="images/spinner.gif" />' +
|
'<img class="image" id="image_' + id_data + '" src="images/spinner.gif" />' +
|
||||||
'</div>'
|
'</div>'
|
||||||
);
|
);
|
||||||
|
|
|
@ -141,6 +141,36 @@ switch ($action) {
|
||||||
echo json_encode($return);
|
echo json_encode($return);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'get_module_type_string':
|
||||||
|
$data = array ();
|
||||||
|
|
||||||
|
if (!empty($id_metaconsole)) {
|
||||||
|
$connection = db_get_row_filter ('tmetaconsole_setup', $id_metaconsole);
|
||||||
|
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$is_string = db_get_value_filter ('id_tipo_modulo', 'tagente_modulo',
|
||||||
|
array ('id_agente' => $id_agent,
|
||||||
|
'id_agente_modulo' => $id_module));
|
||||||
|
|
||||||
|
if (!empty($id_metaconsole)) {
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = array();
|
||||||
|
if (($is_string == 17) || ($is_string == 23) || ($is_string == 3) ||
|
||||||
|
($is_string == 10) || ($is_string == 33)) {
|
||||||
|
$return['no_data'] = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$return['no_data'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode($return);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'get_module_events':
|
case 'get_module_events':
|
||||||
$data = array ();
|
$data = array ();
|
||||||
|
|
||||||
|
@ -465,6 +495,7 @@ switch ($action) {
|
||||||
case 'label':
|
case 'label':
|
||||||
case 'icon':
|
case 'icon':
|
||||||
case 'auto_sla_graph':
|
case 'auto_sla_graph':
|
||||||
|
case 'donut_graph':
|
||||||
default:
|
default:
|
||||||
if ($type == 'label') {
|
if ($type == 'label') {
|
||||||
$values['type'] = LABEL;
|
$values['type'] = LABEL;
|
||||||
|
@ -551,6 +582,15 @@ switch ($action) {
|
||||||
$values['height'] = $height;
|
$values['height'] = $height;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'donut_graph':
|
||||||
|
$values['type'] = DONUT_GRAPH;
|
||||||
|
if ($width !== null) {
|
||||||
|
$values['width'] = $width;
|
||||||
|
}
|
||||||
|
if ($height !== null) {
|
||||||
|
$values['height'] = $height;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'box_item':
|
case 'box_item':
|
||||||
$values['border_width'] = $border_width;
|
$values['border_width'] = $border_width;
|
||||||
$values['border_color'] = $border_color;
|
$values['border_color'] = $border_color;
|
||||||
|
@ -711,6 +751,7 @@ switch ($action) {
|
||||||
case 'label':
|
case 'label':
|
||||||
case 'icon':
|
case 'icon':
|
||||||
case 'auto_sla_graph':
|
case 'auto_sla_graph':
|
||||||
|
case 'donut_graph':
|
||||||
$elementFields = db_get_row_filter('tlayout_data',
|
$elementFields = db_get_row_filter('tlayout_data',
|
||||||
array('id' => $id_element));
|
array('id' => $id_element));
|
||||||
|
|
||||||
|
@ -929,6 +970,11 @@ switch ($action) {
|
||||||
$values['width'] = $width;
|
$values['width'] = $width;
|
||||||
$values['height'] = $height;
|
$values['height'] = $height;
|
||||||
break;
|
break;
|
||||||
|
case 'donut_graph':
|
||||||
|
$values['type'] = DONUT_GRAPH;
|
||||||
|
$values['width'] = $width;
|
||||||
|
$values['height'] = $height;
|
||||||
|
break;
|
||||||
case 'percentile_item':
|
case 'percentile_item':
|
||||||
case 'percentile_bar':
|
case 'percentile_bar':
|
||||||
if ($type_percentile == 'percentile') {
|
if ($type_percentile == 'percentile') {
|
||||||
|
|
|
@ -379,6 +379,9 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
case AUTO_SLA_GRAPH:
|
case AUTO_SLA_GRAPH:
|
||||||
$link = true;
|
$link = true;
|
||||||
break;
|
break;
|
||||||
|
case DONUT_GRAPH:
|
||||||
|
$link = true;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (!empty($element_enterprise)) {
|
if (!empty($element_enterprise)) {
|
||||||
$link = $element_enterprise['link'];
|
$link = $element_enterprise['link'];
|
||||||
|
@ -487,6 +490,18 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
"&date_to=" . $date_to . "&time_to=" . $time_to . "&status=-1";
|
"&date_to=" . $date_to . "&time_to=" . $time_to . "&status=-1";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DONUT_GRAPH:
|
||||||
|
if (empty($layout_data['id_metaconsole'])) {
|
||||||
|
$url = $config['homeurl'] . "index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=" . $layoutData['id_agent'] .
|
||||||
|
"&tab=module&edit_module=1&id_agent_module=" . $layoutData['id_agente_modulo'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$url = "index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=" . $layoutData['id_agent'] .
|
||||||
|
"&tab=module&edit_module=1&id_agent_module=" . $layoutData['id_agente_modulo'];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case GROUP_ITEM:
|
case GROUP_ITEM:
|
||||||
$is_a_link_to_other_visualconsole = false;
|
$is_a_link_to_other_visualconsole = false;
|
||||||
if ($layoutData['id_layout_linked'] != 0) {
|
if ($layoutData['id_layout_linked'] != 0) {
|
||||||
|
@ -1121,6 +1136,44 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$z_index = 2 + 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DONUT_GRAPH:
|
||||||
|
$donut_data = get_donut_module_data($layoutData['id_agent'], $layoutData['id_agente_modulo']);
|
||||||
|
|
||||||
|
if ((get_parameter('action') == 'edit') || (get_parameter('operation') == 'edit_visualmap')) {
|
||||||
|
if($width == 0 || $height == 0){
|
||||||
|
if ($layoutData['id_metaconsole'] != 0) {
|
||||||
|
$img = '<img src="../../images/console/signes/module-events.png">';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$img = '<img src="images/console/signes/module-events.png">';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if ($layoutData['id_metaconsole'] != 0) {
|
||||||
|
$img = '<img src="../../images/console/signes/module-events.png" style="width:'.$width.'px;height:'. $height.'px;">';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$img = '<img src="images/console/signes/module-events.png" style="width:'.$width.'px;height:'. $height.'px;">';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($width == 0 || $height == 0) {
|
||||||
|
$img = d3_donut_graph ($layoutData['id'], 200, 400, $donut_data);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$img = d3_donut_graph ($layoutData['id'], $width, $height, $donut_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Restore db connection
|
||||||
|
if ($layoutData['id_metaconsole'] != 0) {
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
|
|
||||||
$z_index = 2 + 1;
|
$z_index = 2 + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1133,6 +1186,9 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
case AUTO_SLA_GRAPH:
|
case AUTO_SLA_GRAPH:
|
||||||
$class .= "auto_sla_graph";
|
$class .= "auto_sla_graph";
|
||||||
break;
|
break;
|
||||||
|
case DONUT_GRAPH:
|
||||||
|
$class .= "donut_graph";
|
||||||
|
break;
|
||||||
case GROUP_ITEM:
|
case GROUP_ITEM:
|
||||||
$class .= "group_item";
|
$class .= "group_item";
|
||||||
break;
|
break;
|
||||||
|
@ -1575,6 +1631,9 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
echo io_safe_output($text);
|
echo io_safe_output($text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case DONUT_GRAPH:
|
||||||
|
echo $img;
|
||||||
|
break;
|
||||||
case SIMPLE_VALUE:
|
case SIMPLE_VALUE:
|
||||||
case SIMPLE_VALUE_MAX:
|
case SIMPLE_VALUE_MAX:
|
||||||
case SIMPLE_VALUE_MIN:
|
case SIMPLE_VALUE_MIN:
|
||||||
|
@ -1726,6 +1785,10 @@ function visual_map_print_item($mode = "read", $layoutData,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_donut_module_data ($id_agent, $id_module) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The function to get simple value type from the value of process type in the form
|
* The function to get simple value type from the value of process type in the form
|
||||||
*
|
*
|
||||||
|
|
|
@ -309,4 +309,32 @@ function ux_console_phases_donut ($phases, $id, $return = false) {
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function d3_donut_graph ($id, $width, $height, $module_data) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$module_data = json_encode($module_data);
|
||||||
|
|
||||||
|
$recipient_name = "donut_graph_" . $id;
|
||||||
|
$recipient_name_to_js = "#donut_graph_" . $id;
|
||||||
|
|
||||||
|
$output = "<div id=" . $recipient_name . " style='overflow: hidden;'></div>";
|
||||||
|
$output .= include_javascript_d3(true);
|
||||||
|
$output .= "<style type=\"text/css\">
|
||||||
|
path {
|
||||||
|
stroke: #fff;
|
||||||
|
fill-rule: evenodd;
|
||||||
|
}
|
||||||
|
</style>";
|
||||||
|
|
||||||
|
$output .= "<script language=\"javascript\" type=\"text/javascript\">
|
||||||
|
print_donut_graph('" . $recipient_name_to_js . "', " . $width . ", " . $height . ", " . $module_data . ");
|
||||||
|
</script>";
|
||||||
|
|
||||||
|
if (!$return)
|
||||||
|
echo $output;
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1492,4 +1492,51 @@ function print_phases_donut (recipient, phases) {
|
||||||
polyline.exit()
|
polyline.exit()
|
||||||
.remove();
|
.remove();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function print_donut_graph (recipient, width, height, module_data) {
|
||||||
|
var svg = d3.select(recipient)
|
||||||
|
.append("svg")
|
||||||
|
.attr("width", width)
|
||||||
|
.attr("height", height)
|
||||||
|
.append("g");
|
||||||
|
|
||||||
|
var radius = Math.min(width, height) / 2;
|
||||||
|
|
||||||
|
var pie = d3.layout.pie()
|
||||||
|
.sort(null)
|
||||||
|
.value(function(d) {
|
||||||
|
return parseFloat(d.label2);
|
||||||
|
});
|
||||||
|
|
||||||
|
svg.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
|
||||||
|
|
||||||
|
/* ------- PIE SLICES -------*/
|
||||||
|
var slice = svg.select(".slices").selectAll("path.slice")
|
||||||
|
.data(module_data);
|
||||||
|
|
||||||
|
slice.enter()
|
||||||
|
.insert("path")
|
||||||
|
.style("fill", function(d) {
|
||||||
|
if (d.data.value == 0) {
|
||||||
|
return "#80BA27";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "#FC4444";
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.attr("class", "slice");
|
||||||
|
|
||||||
|
slice.transition()
|
||||||
|
.duration(0)
|
||||||
|
.attrTween("d", function(d) {
|
||||||
|
this._current = this._current || d;
|
||||||
|
var interpolate = d3.interpolate(this._current, d);
|
||||||
|
this._current = interpolate(0);
|
||||||
|
return function(t) {
|
||||||
|
return arc(interpolate(t));
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
slice.exit().remove();
|
||||||
}
|
}
|
Loading…
Reference in New Issue