359 lines
17 KiB
PHP
359 lines
17 KiB
PHP
<?php
|
|
|
|
$blank = '{}';
|
|
|
|
dbInsert(['dash_id' => '1', 'dash_name' => 'Default Dashboard'], 'dashboards');
|
|
$y = 0;
|
|
|
|
// Migrate an existing front page arrangement if it exists. Remove this after next CE.
|
|
if (!isset($config['frontpage']['order']) || FALSE) {
|
|
|
|
$height = round((100 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1', 'widget_type' => 'welcome', 'widget_config' => $blank, 'x' => '6', 'y' => $y, 'width' => '12', 'height' => $height], 'dash_widgets');
|
|
$y += $height;
|
|
|
|
$height = round(240 / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'map',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'status_summary',
|
|
'widget_config' => $blank,
|
|
'x' => '6',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
|
|
$height = ceil((90 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'alert_boxes',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
|
|
$height = ceil((280 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'eventlog',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'alertlog',
|
|
'widget_config' => $blank,
|
|
'x' => '6',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
|
|
} else {
|
|
|
|
$height = ceil((80 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'welcome',
|
|
'widget_config' => json_encode(['converted' => TRUE]),
|
|
'x' => '6',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
|
|
$x = 0;
|
|
$y += $height;
|
|
|
|
foreach ($config['frontpage']['order'] as $entry) {
|
|
|
|
switch ($entry) {
|
|
case "map":
|
|
$height = ceil((250 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'map',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "portpercent":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'port_percent',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "status_summary":
|
|
$height = ceil((140 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'status_summary',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "alert_table":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'alert_table',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "device_status_boxes":
|
|
$height = ceil((90 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'old_status_boxes',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "eventlog":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'eventlog',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "syslog":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'syslog',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "device_status":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'old_status_table',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '12',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "splitlog":
|
|
$height = ceil((240 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'syslog',
|
|
'widget_config' => $blank,
|
|
'x' => '0',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
dbInsert(['dash_id' => '1',
|
|
'widget_type' => 'eventlog',
|
|
'widget_config' => $blank,
|
|
'x' => '6',
|
|
'y' => $y,
|
|
'width' => '6',
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "overall_traffic":
|
|
|
|
//$peering_count = dbFetchCell("SELECT COUNT(port_id) FROM `ports` WHERE `port_descr_type` = 'peering'");
|
|
//$transit_count = dbFetchCell("SELECT COUNT(port_id) FROM `ports` WHERE `port_descr_type` = 'transit'");
|
|
$peering_exist = dbExist('ports', '`port_descr_type` = ?', ['peering']);
|
|
$transit_exist = dbExist('ports', '`port_descr_type` = ?', ['transit']);
|
|
|
|
$height = ceil((120 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
if ($transit_exist) {
|
|
$graph_array = ['type' => 'global_bits', 'port_type' => 'transit', 'title' => 'Transit Traffic', 'separate' => 'yes'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 6,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x += 6;
|
|
}
|
|
if ($peering_exist) {
|
|
$graph_array = ['type' => 'global_bits', 'port_type' => 'peering', 'title' => 'Peering Traffic', 'separate' => 'yes'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 6,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x += 6;
|
|
}
|
|
$y += $height;
|
|
|
|
$height = ceil((160 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
$graph_array = ['type' => 'global_bits_types', 'type_a' => 'transit', 'type_b' => 'peering', 'from' => '-1m', 'title' => 'Monthly Transit and Peering Traffic'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 12,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x = 0;
|
|
$y += $height;
|
|
break;
|
|
|
|
case "custom_traffic":
|
|
|
|
if (isset($config['frontpage']['custom_traffic']['title'])) {
|
|
$title = $config['frontpage']['custom_traffic']['title'];
|
|
} else {
|
|
$title = "Custom Traffic";
|
|
}
|
|
|
|
$height = ceil((120 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
$graph_array = ['type' => 'multi-port_bits', 'id' => $config['frontpage']['custom_traffic']['ids'], 'from' => '-1d', 'title' => $title . ' Today'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 6,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x += 6;
|
|
$graph_array = ['type' => 'multi-port_bits', 'id' => $config['frontpage']['custom_traffic']['ids'], 'from' => '-7d', 'title' => $title . ' This Week'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 6,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
$x = 0;
|
|
|
|
$graph_array = ['type' => 'multi-port_bits', 'id' => $config['frontpage']['custom_traffic']['ids'], 'from' => '-1m', 'title' => $title . ' This Month'];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 12,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$y += $height;
|
|
break;
|
|
|
|
case "micrographs":
|
|
|
|
$height = ceil((40 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
|
|
foreach ($config['frontpage']['micrographs'] as $row) {
|
|
foreach (explode(';', $row['ids']) as $graph) {
|
|
if (!$graph) {
|
|
continue;
|
|
}
|
|
[$device, $type, $header] = explode(',', $graph, 3);
|
|
$graph_array = ['type' => $type, 'id' => $device, 'title' => $header];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => 2,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x += 2;
|
|
}
|
|
$y += $height;
|
|
$x = 0;
|
|
|
|
}
|
|
break;
|
|
|
|
case "minigraphs":
|
|
$height = ceil((100 + $grid_v_margin) / ($grid_cell_height + $grid_v_margin));
|
|
$width = 3;
|
|
|
|
foreach (explode(';', $config['frontpage']['minigraphs']['ids']) as $graph) {
|
|
if (!$graph) {
|
|
continue;
|
|
}
|
|
|
|
if ($x + $width > 12) {
|
|
$x = 0;
|
|
$y += $height;
|
|
}
|
|
|
|
[$id, $type, $header] = explode(',', $graph, 3);
|
|
$id = str_replace("%2C", ",", $id); // Replace the HTML code for comma with a comma.
|
|
|
|
$graph_array = ['type' => $type, 'id' => $id, 'title' => $header];
|
|
$widget_id = dbInsert(['dash_id' => '1',
|
|
'widget_config' => json_encode($graph_array),
|
|
'widget_type' => 'graph',
|
|
'x' => $x,
|
|
'y' => $y,
|
|
'width' => $width,
|
|
'height' => $height], 'dash_widgets'
|
|
);
|
|
$x += 3;
|
|
}
|
|
$y += $height;
|
|
$x = 0;
|
|
|
|
break;
|
|
}
|
|
}
|
|
} |