diff --git a/pandora_console/extras/mr/55.sql b/pandora_console/extras/mr/55.sql
new file mode 100644
index 0000000000..2618a7512c
--- /dev/null
+++ b/pandora_console/extras/mr/55.sql
@@ -0,0 +1,5 @@
+START TRANSACTION;
+
+ALTER TABLE `tservice` ADD COLUMN `enable_sunburst` tinyint(1) NOT NULL default 0;
+
+COMMIT;
diff --git a/pandora_console/include/graphs/pandora.d3.js b/pandora_console/include/graphs/pandora.d3.js
index 8495a8728b..a07c780501 100644
--- a/pandora_console/include/graphs/pandora.d3.js
+++ b/pandora_console/include/graphs/pandora.d3.js
@@ -965,8 +965,8 @@ function sunburst(recipient, data, width, height) {
}
function move_tooltip(d) {
- var x = d3.event.pageX + 10;
- var y = d3.event.pageY + 10;
+ var x = d3.event.pageX + 10 - $("#menu_full").width();
+ var y = d3.event.pageY - 90;
$("#tooltip").css("left", x + "px");
$("#tooltip").css("top", y + "px");
@@ -1017,10 +1017,10 @@ function sunburst(recipient, data, width, height) {
"-moz-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
"box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
"left: " +
- x +
+ 100 +
"px;" +
"top: " +
- y +
+ 100 +
"px;"
);
}
diff --git a/pandora_console/include/lib/Dashboard/Widgets/service_map.php b/pandora_console/include/lib/Dashboard/Widgets/service_map.php
index a2122c6dca..a05f71c92a 100644
--- a/pandora_console/include/lib/Dashboard/Widgets/service_map.php
+++ b/pandora_console/include/lib/Dashboard/Widgets/service_map.php
@@ -235,6 +235,10 @@ class ServiceMapWidget extends Widget
$values['showLegend'] = $decoder['showLegend'];
}
+ if (isset($decoder['sunburst']) === true) {
+ $values['sunburst'] = $decoder['sunburst'];
+ }
+
return $values;
}
@@ -296,19 +300,16 @@ class ServiceMapWidget extends Widget
],
];
- // TODO refactoriced services: Hidden legend.
- /*
- // Show legend.
- $inputs[] = [
- 'label' => __('Show legend'),
+ $inputs[] = [
+ 'label' => __('Enable sunburst'),
'arguments' => [
- 'name' => 'showLegend',
- 'id' => 'showLegend',
- 'type' => 'switch',
- 'value' => $values['showLegend'],
+ 'type' => 'switch',
+ 'name' => 'sunburst',
+ 'class' => 'event-widget-input',
+ 'value' => $values['sunburst'],
+ 'return' => true,
],
- ];
- */
+ ];
return $inputs;
}
@@ -325,7 +326,9 @@ class ServiceMapWidget extends Widget
$values = parent::getPost();
$values['serviceId'] = \get_parameter('serviceId', 0);
- // $values['showLegend'] = \get_parameter_switch('showLegend');
+
+ $values['sunburst'] = \get_parameter_switch('sunburst', 0);
+
return $values;
}
@@ -341,6 +344,7 @@ class ServiceMapWidget extends Widget
$size = parent::getSize();
+ $output = '';
if (check_acl($config['id_user'], 0, 'AR') === 0) {
$output .= '
';
$output .= \ui_print_error_message(
@@ -367,42 +371,6 @@ class ServiceMapWidget extends Widget
$style = 'position: relative; text-align: center;';
$output .= "
";
- // TODO refactoriced services: Hidden legend.
- /*
- if ($this->values['showLegend'] === 1) {
- $output .= "
cellId."'>";
- $output .= '
';
- $output .= "".__('Legend').' | ';
- $output .= " |
";
-
- $output .= "";
- $output .= "";
- $output .= ' | '.__('Services').' | ';
-
- // Coulour legend.
- $output .= "";
- $output .= '';
- $output .= " | ".__('Critical').' | ';
- $output .= " | ".__('Warning').' | ';
- $output .= " | ".__('Ok').' | ';
- $output .= " | ".__('Unknown').' | ';
- $output .= ' ';
- $output .= ' |
';
-
- $output .= "";
- $output .= "";
- $output .= ' | '.__('Agents').' | ';
- $output .= '
';
-
- $output .= "";
- $output .= "";
- $output .= ' | '.__('Modules').' | ';
- $output .= '
';
- $output .= '
';
- $output .= '
';
- }
- */
-
// TODO: removed refactoriced services. Only 1 widget Zoom.
$sql = sprintf(
'SELECT COUNT(*)
@@ -425,14 +393,21 @@ class ServiceMapWidget extends Widget
);
// TODO:XXX fix draw service map.
ob_start();
- servicemap_print_servicemap(
- $this->values['serviceId'],
- false,
- $size['width'],
- $size['height'],
- $this->cellId,
- $disableZoom
- );
+
+ if ($this->values['sunburst'] === 0) {
+ servicemap_print_servicemap(
+ $this->values['serviceId'],
+ false,
+ $size['width'],
+ $size['height'],
+ $this->cellId,
+ $disableZoom
+ );
+ } else {
+ include_once $config['homedir'].'/include/graphs/functions_d3.php';
+ servicemap_print_sunburst($this->values['serviceId'], $size['width'], $size['height']);
+ }
+
$output .= ob_get_clean();
$output .= '
';
return $output;
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index 29ec6e572b..0cd5d07ac1 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -2817,6 +2817,7 @@ CREATE TABLE IF NOT EXISTS `tservice` (
`cascade_protection` TINYINT NOT NULL DEFAULT 0,
`evaluate_sla` INT NOT NULL DEFAULT 0,
`is_favourite` TINYINT NOT NULL DEFAULT 0,
+ `enable_sunburst` TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
COMMENT = 'Table to define services to monitor'