mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Add new input linked visual console
This commit is contained in:
parent
04d39a0f70
commit
4813bef53e
@ -262,57 +262,7 @@ if ($getVisualConsole === true) {
|
||||
echo json_encode($result);
|
||||
return;
|
||||
} else if ($getAllVisualConsole === true) {
|
||||
// Extract all VC except own.
|
||||
$result = db_get_all_rows_filter(
|
||||
'tlayout',
|
||||
'id != '.(int) $visualConsole,
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
]
|
||||
);
|
||||
|
||||
// Extract all VC for each node.
|
||||
if (is_metaconsole() === true) {
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
$meta_servers = metaconsole_get_servers();
|
||||
foreach ($meta_servers as $server) {
|
||||
if (metaconsole_load_external_db($server) !== NOERR) {
|
||||
metaconsole_restore_db();
|
||||
continue;
|
||||
}
|
||||
|
||||
$node_visual_maps = db_get_all_rows_filter(
|
||||
'tlayout',
|
||||
[],
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
]
|
||||
);
|
||||
|
||||
if (isset($node_visual_maps) === true
|
||||
&& is_array($node_visual_maps) === true
|
||||
) {
|
||||
foreach ($node_visual_maps as $node_visual_map) {
|
||||
// Add nodeID.
|
||||
$node_visual_map['nodeId'] = (int) $server['id'];
|
||||
|
||||
// Name = vc_name - (node).
|
||||
$node_visual_map['name'] = $node_visual_map['name'];
|
||||
$node_visual_map['name'] .= ' - (';
|
||||
$node_visual_map['name'] .= $server['server_name'].')';
|
||||
|
||||
$result[] = $node_visual_map;
|
||||
}
|
||||
}
|
||||
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(io_safe_output($result));
|
||||
return;
|
||||
// TODO: Remove.
|
||||
} else if ($getImagesVisualConsole) {
|
||||
// TODO: Remove.
|
||||
} else if ($autocompleteAgentsVisualConsole) {
|
||||
|
@ -1912,6 +1912,14 @@ class Item extends CachedModel
|
||||
break;
|
||||
|
||||
case 'general':
|
||||
$inputs[] = [
|
||||
'arguments' => [
|
||||
'type' => 'hidden',
|
||||
'name' => 'tabGeneral',
|
||||
'value' => true,
|
||||
],
|
||||
];
|
||||
|
||||
// Size.
|
||||
$inputs[] = [
|
||||
'block_id' => 'size-item',
|
||||
@ -2100,4 +2108,203 @@ class Item extends CachedModel
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all VC except own.
|
||||
*
|
||||
* @param integer $id Id Visual Console.
|
||||
*
|
||||
* @return array Array all VCs.
|
||||
*/
|
||||
public function getAllVisualConsole(int $id):array
|
||||
{
|
||||
// Extract all VC except own.
|
||||
$result = db_get_all_rows_filter(
|
||||
'tlayout',
|
||||
'id != '.(int) $id,
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
]
|
||||
);
|
||||
|
||||
// Extract all VC for each node.
|
||||
if (is_metaconsole() === true) {
|
||||
enterprise_include_once('include/functions_metaconsole.php');
|
||||
$meta_servers = metaconsole_get_servers();
|
||||
foreach ($meta_servers as $server) {
|
||||
if (metaconsole_load_external_db($server) !== NOERR) {
|
||||
metaconsole_restore_db();
|
||||
continue;
|
||||
}
|
||||
|
||||
$node_visual_maps = db_get_all_rows_filter(
|
||||
'tlayout',
|
||||
[],
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
]
|
||||
);
|
||||
|
||||
if (isset($node_visual_maps) === true
|
||||
&& is_array($node_visual_maps) === true
|
||||
) {
|
||||
foreach ($node_visual_maps as $node_visual_map) {
|
||||
// Add nodeID.
|
||||
$node_visual_map['nodeId'] = (int) $server['id'];
|
||||
|
||||
// Name = vc_name - (node).
|
||||
$node_visual_map['name'] = $node_visual_map['name'];
|
||||
$node_visual_map['name'] .= ' - (';
|
||||
$node_visual_map['name'] .= $server['server_name'].')';
|
||||
|
||||
$result[] = $node_visual_map;
|
||||
}
|
||||
}
|
||||
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
|
||||
if ($result === false && $result === '') {
|
||||
$result = [];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inputs for Linked Visual Console.
|
||||
*
|
||||
* @param array $values Array values item.
|
||||
*
|
||||
* @return array Inputs.
|
||||
*/
|
||||
public function inputsLinkedVisualConsole(array $values):array
|
||||
{
|
||||
// LinkConsoleInputGroup.
|
||||
$fields = self::getAllVisualConsole($values['vCId']);
|
||||
\array_unshift($fields, ['id' => 0, 'name' => __('None')]);
|
||||
|
||||
$getAllVisualConsoleValue = $values['linkedLayoutId'];
|
||||
if (\is_metaconsole() === true) {
|
||||
$getAllVisualConsoleValue = $values['linkedLayoutId'];
|
||||
$getAllVisualConsoleValue .= '|';
|
||||
$getAllVisualConsoleValue .= $values['linkedLayoutNodeId'];
|
||||
}
|
||||
|
||||
$inputs[] = [
|
||||
'label' => __('Linked visual console'),
|
||||
'arguments' => [
|
||||
'type' => 'select',
|
||||
'fields' => $fields,
|
||||
'name' => 'getAllVisualConsole',
|
||||
'selected' => $getAllVisualConsoleValue,
|
||||
'script' => 'linkedVisualConsoleChange()',
|
||||
'return' => true,
|
||||
],
|
||||
];
|
||||
|
||||
$inputs[] = [
|
||||
'arguments' => [
|
||||
'type' => 'hidden',
|
||||
'name' => 'linkedLayoutId',
|
||||
'value' => $values['linkedLayoutId'],
|
||||
],
|
||||
];
|
||||
|
||||
$inputs[] = [
|
||||
'arguments' => [
|
||||
'type' => 'hidden',
|
||||
'name' => 'linkedLayoutNodeId',
|
||||
'value' => $values['linkedLayoutNodeId'],
|
||||
],
|
||||
];
|
||||
|
||||
// Initial hidden.
|
||||
$hiddenType = true;
|
||||
$hiddenWeight = true;
|
||||
$hiddenCritical = true;
|
||||
$hiddenWarning = true;
|
||||
if (isset($values['linkedLayoutId']) === true
|
||||
&& $values['linkedLayoutId'] !== 0
|
||||
) {
|
||||
$hiddenType = false;
|
||||
if ($values['linkedLayoutStatusType'] === 'service') {
|
||||
$hiddenCritical = false;
|
||||
$hiddenWarning = false;
|
||||
}
|
||||
|
||||
if ($values['linkedLayoutStatusType'] === 'weight') {
|
||||
$hiddenWeight = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Type of the status calculation of the linked visual console.
|
||||
$fields = [
|
||||
'default' => __('By default'),
|
||||
'weight' => __('By status weight'),
|
||||
'service' => __('By critical elements'),
|
||||
];
|
||||
|
||||
$inputs[] = [
|
||||
'id' => 'li-linkedLayoutStatusType',
|
||||
'hidden' => $hiddenType,
|
||||
'label' => __(
|
||||
'Type of the status calculation of the linked visual console'
|
||||
),
|
||||
'arguments' => [
|
||||
'type' => 'select',
|
||||
'fields' => $fields,
|
||||
'name' => 'linkedLayoutStatusType',
|
||||
'selected' => $values['linkedLayoutStatusType'],
|
||||
'script' => 'linkedVisualConsoleTypeChange()',
|
||||
'return' => true,
|
||||
],
|
||||
];
|
||||
|
||||
// Linked visual console weight.
|
||||
$inputs[] = [
|
||||
'id' => 'li-linkedLayoutStatusTypeWeight',
|
||||
'hidden' => $hiddenWeight,
|
||||
'label' => __('Linked visual console weight'),
|
||||
'arguments' => [
|
||||
'name' => 'linkedLayoutStatusTypeWeight',
|
||||
'type' => 'number',
|
||||
'value' => $values['linkedLayoutStatusTypeWeight'],
|
||||
'return' => true,
|
||||
],
|
||||
];
|
||||
|
||||
// Critical weight.
|
||||
$inputs[] = [
|
||||
'id' => 'li-linkedLayoutStatusTypeCriticalThreshold',
|
||||
'hidden' => $hiddenCritical,
|
||||
'label' => __('Critical weight'),
|
||||
'arguments' => [
|
||||
'name' => 'linkedLayoutStatusTypeCriticalThreshold',
|
||||
'type' => 'number',
|
||||
'value' => $values['linkedLayoutStatusTypeCriticalThreshold'],
|
||||
'return' => true,
|
||||
],
|
||||
];
|
||||
|
||||
// Warning weight.
|
||||
$inputs[] = [
|
||||
'id' => 'li-linkedLayoutStatusTypeWarningThreshold',
|
||||
'hidden' => $hiddenWarning,
|
||||
'label' => __('Warning weight'),
|
||||
'arguments' => [
|
||||
'name' => 'linkedLayoutStatusTypeWarningThreshold',
|
||||
'type' => 'number',
|
||||
'value' => $values['linkedLayoutStatusTypeWarningThreshold'],
|
||||
'return' => true,
|
||||
],
|
||||
];
|
||||
|
||||
return $inputs;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -254,7 +254,13 @@ final class DonutGraph extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -230,7 +230,13 @@ final class EventsHistory extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup.
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -492,7 +492,13 @@ final class Group extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -163,7 +163,13 @@ final class Icon extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -466,7 +466,13 @@ final class ModuleGraph extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -576,7 +576,13 @@ final class Percentile extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -369,7 +369,13 @@ final class SimpleValue extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -307,7 +307,13 @@ final class StaticGraph extends Item
|
||||
],
|
||||
];
|
||||
|
||||
// TODO:XXXX LinkConsoleInputGroup
|
||||
// Inputs LinkedVisualConsole.
|
||||
$inputsLinkedVisualConsole = self::inputsLinkedVisualConsole(
|
||||
$values
|
||||
);
|
||||
foreach ($inputsLinkedVisualConsole as $key => $value) {
|
||||
$inputs[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $inputs;
|
||||
|
@ -44,7 +44,6 @@ class View extends \HTML
|
||||
public function loadTabs()
|
||||
{
|
||||
$type = (int) \get_parameter('type', 0);
|
||||
hd($type, true);
|
||||
$itemId = (int) \get_parameter('itemId', 0);
|
||||
$vCId = (int) \get_parameter('vCId', 0);
|
||||
// TODO:XXX;
|
||||
@ -159,9 +158,12 @@ class View extends \HTML
|
||||
$values = $item->toArray();
|
||||
} else {
|
||||
$values['type'] = $type;
|
||||
$values['isLinkEnabled'] = true;
|
||||
$values['isOnTop'] = true;
|
||||
}
|
||||
|
||||
$values['tabSelected'] = $tabSelected;
|
||||
$values['vCId'] = $vCId;
|
||||
|
||||
// Retrieve inputs.
|
||||
$inputs = $itemClass::getFormInputs($values);
|
||||
@ -193,6 +195,59 @@ class View extends \HTML
|
||||
$('#MGcustomGraph').show();
|
||||
}
|
||||
}";
|
||||
|
||||
$jsforms .= 'function linkedVisualConsoleChange(){
|
||||
$("#li-linkedLayoutStatusType").removeClass("hidden");
|
||||
if ($("#getAllVisualConsole :selected").val() != 0) {
|
||||
$("#li-linkedLayoutStatusType").show();
|
||||
} else {
|
||||
$("#li-linkedLayoutStatusType").hide();
|
||||
$("#li-linkedLayoutStatusTypeWeight").removeClass("hidden");
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold")
|
||||
.removeClass("hidden");
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold")
|
||||
.removeClass("hidden");
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWeight").hide();
|
||||
}
|
||||
|
||||
var linkedLayoutExtract = $("#getAllVisualConsole :selected")
|
||||
.val()
|
||||
.split("|");
|
||||
|
||||
var linkedLayoutNodeId = 0;
|
||||
var linkedLayoutId = 0;
|
||||
if (linkedLayoutExtract instanceof Array) {
|
||||
linkedLayoutId = (linkedLayoutExtract[0]) ? linkedLayoutExtract[0] : 0;
|
||||
linkedLayoutNodeId = (linkedLayoutExtract[1]) ? linkedLayoutExtract[1] : 0;
|
||||
}
|
||||
|
||||
$("#hidden-linkedLayoutId").val(linkedLayoutId);
|
||||
$("#hidden-linkedLayoutNodeId").val(linkedLayoutNodeId);
|
||||
}';
|
||||
|
||||
$jsforms .= 'function linkedVisualConsoleTypeChange(){
|
||||
$("#li-linkedLayoutStatusTypeWeight").removeClass("hidden");
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold")
|
||||
.removeClass("hidden");
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold")
|
||||
.removeClass("hidden");
|
||||
if ($("#linkedLayoutStatusType :selected").val() == "service") {
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold").show();
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold").show();
|
||||
$("#li-linkedLayoutStatusTypeWeight").hide();
|
||||
} else if ($("#linkedLayoutStatusType :selected").val() == "weight") {
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWeight").show();
|
||||
} else {
|
||||
$("#li-linkedLayoutStatusTypeCriticalThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWarningThreshold").hide();
|
||||
$("#li-linkedLayoutStatusTypeWeight").hide();
|
||||
}
|
||||
}';
|
||||
|
||||
$jsforms .= '</script>';
|
||||
|
||||
return $form.$jsforms;
|
||||
@ -222,12 +277,22 @@ class View extends \HTML
|
||||
$data['label'] = \get_parameter('label');
|
||||
|
||||
// Page general for each item.
|
||||
$tabGeneral = (bool) \get_parameter('tabGeneral', false);
|
||||
$data['width'] = \get_parameter('width');
|
||||
$data['height'] = \get_parameter('height');
|
||||
$data['x'] = \get_parameter('x');
|
||||
$data['y'] = \get_parameter('y');
|
||||
$data['isLinkEnabled'] = \get_parameter_switch('isLinkEnabled', 0);
|
||||
$data['isOnTop'] = \get_parameter_switch('isOnTop', 0);
|
||||
|
||||
if ($tabGeneral === true) {
|
||||
$data['isLinkEnabled'] = \get_parameter_switch('isLinkEnabled');
|
||||
$data['isOnTop'] = \get_parameter_switch('isOnTop');
|
||||
} else {
|
||||
if ($itemId === 0) {
|
||||
$data['isLinkEnabled'] = true;
|
||||
$data['isOnTop'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$data['parentId'] = \get_parameter('parentId');
|
||||
$data['aclGroupId'] = \get_parameter('aclGroupId');
|
||||
$data['cacheExpiration_select'] = \get_parameter(
|
||||
@ -239,6 +304,29 @@ class View extends \HTML
|
||||
'cacheExpiration_units'
|
||||
);
|
||||
|
||||
// Linked other VC.
|
||||
$data['linkedLayoutId'] = \get_parameter(
|
||||
'linkedLayoutId',
|
||||
0
|
||||
);
|
||||
$data['linkedLayoutNodeId'] = \get_parameter(
|
||||
'linkedLayoutNodeId',
|
||||
0
|
||||
);
|
||||
$data['linkedLayoutStatusType'] = \get_parameter(
|
||||
'linkedLayoutStatusType',
|
||||
'default'
|
||||
);
|
||||
$data['linkedLayoutStatusTypeWeight'] = \get_parameter(
|
||||
'linkedLayoutStatusTypeWeight'
|
||||
);
|
||||
$data['linkedLayoutStatusTypeCriticalThreshold'] = \get_parameter(
|
||||
'linkedLayoutStatusTypeCriticalThreshold'
|
||||
);
|
||||
$data['linkedLayoutStatusTypeWarningThreshold'] = \get_parameter(
|
||||
'linkedLayoutStatusTypeWarningThreshold'
|
||||
);
|
||||
|
||||
// Page specific data for each item.
|
||||
switch ($type) {
|
||||
case STATIC_GRAPH:
|
||||
|
@ -477,7 +477,7 @@ export class LinkConsoleInputGroup extends InputGroup<
|
||||
|
||||
// Create Principal element label - select.
|
||||
const linkConsoleLabel = document.createElement("label");
|
||||
linkConsoleLabel.textContent = t("Linked visual console ");
|
||||
linkConsoleLabel.textContent = t("Linked visual console");
|
||||
|
||||
// Create element Spinner.
|
||||
const spinner = fontAwesomeIcon(faCircleNotch, t("Spinner"), {
|
||||
|
Loading…
x
Reference in New Issue
Block a user