Merge remote-tracking branch 'origin/develop' into ent-7074-Command-Center

This commit is contained in:
Daniel Barbero Martin 2021-04-15 17:41:56 +02:00
commit 741ec6a144
20 changed files with 697 additions and 594 deletions

View File

@ -462,13 +462,16 @@ if (is_ajax()) {
}
// This check should be after ajax. Because, ajax will be called from configure_alert_action.
if (!check_acl($config['id_user'], 0, 'PM') && !is_user_admin($config['id_user
'])) {
if (!check_acl($config['id_user'], 0, 'PM') && !is_user_admin(
$config['id_user
']
)
) {
echo "<div id='message_permissions' title='".__('Permissions warning')."' s
tyle='display:none;'>";
echo "<p style='text-align: center;font-weight: bold;'>".__('Command managem
ent is limited to administrator users or user profiles with permissions over Pan
dora FMS management').'</p>';
echo "<p style='text-align: center;font-weight: bold; margin: 15px'>".__(
'Command management is limited to administrator users or user profiles with permissions PM'
).'</p>';
echo '</div>';
}
@ -680,12 +683,19 @@ foreach ($commands as $command) {
// (IMPORTANT, DO NOT CHANGE!) only users with permissions over "All" group have access to edition of commands belonging to "All" group.
if ($is_central_policies_on_node === false && !$command['internal'] && check_acl_restricted_all($config['id_user'], $command['id_group'], 'LM')) {
$data['action'] = '<span class="inline_flex">';
$data['action'] .= '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_commands&amp;copy_command=1&id='.$command['id'].'&pure='.$pure.'"
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/copy.png', true, ['class' => 'invert_filter']).'</a>';
$data['action'] .= '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_commands&delete_command=1&id='.$command['id'].'&pure='.$pure.'"
if (check_acl($config['id_user'], 0, 'PM') || is_user_admin(
$config['id_user
']
)
) {
$data['action'] = '<span class="inline_flex">';
$data['action'] .= '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_commands&amp;copy_command=1&id='.$command['id'].'&pure='.$pure.'"
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/copy.png', true, ['class' => 'invert_filter']).'</a>';
$data['action'] .= '<a href="index.php?sec='.$sec.'&sec2=godmode/alerts/alert_commands&delete_command=1&id='.$command['id'].'&pure='.$pure.'"
onClick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['class' => 'invert_filter']).'</a>';
$data['action'] .= '</span>';
$data['action'] .= '</span>';
}
}
array_push($table->data, $data);

View File

@ -885,6 +885,11 @@ function html_print_select(
";
}
$select2 = 'select2.min';
if ($config['style'] === 'pandora_black') {
$select2 = 'select2_dark.min';
}
if ($multiple === false) {
if (is_ajax()) {
$output .= '<script src="';
@ -898,18 +903,13 @@ function html_print_select(
$output .= '<link rel="stylesheet" href="';
$output .= ui_get_full_url(
'include/styles/select2.min.css',
'include/styles/'.$select2.'.css',
false,
false,
false
);
$output .= '"/>';
} else {
$select2 = 'select2.min';
if ($config['style'] === 'pandora_black') {
$select2 = 'select2_dark.min';
}
ui_require_css_file($select2);
ui_require_javascript_file('select2.min');
}

View File

@ -130,17 +130,24 @@ function html_do_report_info($report)
$date_today = date($config['date_format']);
$date_today = preg_split('/[\s,]+/', io_safe_output($date_today));
$date_today = __($date_today[0]).' '.$date_today[1].' '.$date_today[2].' '.$date_today[3].' '.$date_today[4];
$html = '<div class="report_info" style="background: '.$background_color.'"><table>
<tr>
<td><b>'.__('Generated').': </b></td><td>'.$date_today.'</td>
</tr>
<tr>
<td><b>'.__('Report date').': </b></td>';
$date_before = date($config['date_format'], $report['datetime']);
$date_before = preg_split('/[\s,]+/', io_safe_output($date_before));
$date_before = __($date_before[0]).' '.$date_before[1].' '.$date_before[2].' '.$date_before[3].' '.$date_before[4];
if (is_numeric($report['datetime']) && is_numeric($report['period']) && ($report['period'] != 0)) {
$html .= '<td>'.__('From').' <b>'.date($config['date_format'], ($report['datetime'] - $report['period'])).'</b></td>';
$html .= '<td>'.__('to').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
} else {
$html .= '<td>'.__('Items period before').' <b>'.date($config['date_format'], $report['datetime']).'</b></td>';
$html .= '<td>'.__('Items period before').' <b>'.$date_before.'</b></td>';
}
$html .= '</tr>

View File

@ -290,7 +290,7 @@ function treeview_printModuleTable($id_module, $server_data=false, $no_head=fals
}
$last_data_str .= '&nbsp;';
$last_data_str .= html_print_image('images/clock2.png', true, ['title' => $last_data['timestamp'], 'width' => '18px']);
$last_data_str .= html_print_image('images/clock2.png', true, ['title' => $last_data['timestamp'], 'width' => '18px', 'class' => 'invert_filter']);
$is_snapshot = is_snapshot_data($last_data['datos']);
$is_large_image = is_text_to_black_string($last_data['datos']);
@ -307,7 +307,7 @@ function treeview_printModuleTable($id_module, $server_data=false, $no_head=fals
}
if ($salida !== null) {
$last_data_str = html_print_image('images/clock2.png', true, ['title' => $last_data['timestamp'], 'width' => '18px']);
$last_data_str = html_print_image('images/clock2.png', true, ['title' => $last_data['timestamp'], 'width' => '18px', 'class' => 'invert_filter']);
}
$last_data_str .= $salida;

View File

@ -322,7 +322,7 @@ function ui_print_message($message, $class='', $attributes='', $return=false, $t
class="info_box '.$id.' '.$class.' textodialogo" style="'.$force_style.'">
<tr>
<td class="icon icon_ui" rowspan="2" >'.html_print_image($icon_image, true, false, false, false, false).'</td>
<td class="title pandora_upper pdd_t_10px"><b>'.$text_title.'</b></td>
<td class="title pandora_upper pdd_t_10px text_left"><b>'.$text_title.'</b></td>
<td class="icon right pdd_r_3px">';
if (!$no_close_bool) {
// Use the no_meta parameter because this image is only in

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -114,7 +114,8 @@ function pandoraFlotPie(
// Reset styles
function resetInteractivity() {
legends.css("color", "#fff");
legends.css("color", "#3F3F3D");
legends.attr("class", "invert_filter");
}
if (water_mark) {
@ -293,7 +294,6 @@ function pandoraFlotPieCustom(
function resetInteractivity() {
legends.each(function() {
// fix the widths so they don't jump around
console.log($(this));
$(this).css("color", "#3F3F3D");
});
}

View File

@ -683,12 +683,13 @@ function flot_vcolumn_chart(array $options)
$options['graphId'] = $graphId;
// If pandora_black theme its enabled then change grid colors.
if ($config['style'] === 'pandora_black') {
/*
if ($config['style'] === 'pandora_black') {
$options['grid']['backgroundColor']['colors'][0] = 'transparent';
$options['grid']['backgroundColor']['colors'][1] = 'transparent';
$options['y']['color'] = 'transparent';
$options['x']['color'] = 'transparent';
}
}*/
$settings = base64_encode(json_encode($options));

View File

@ -2486,6 +2486,7 @@ function printClockAnalogic1(
var face = svg
.append("g")
.attr("id", "clock-face")
.attr("class", "invert_filter")
.attr(
"transform",
"translate(" +
@ -2646,6 +2647,8 @@ function printClockDigital1(
svg = d3.selectAll("#clock_" + id_element + " svg");
svgUnderlay.attr("id", "underlay_" + id_element);
svgUnderlay.attr("class", "invert_filter");
svgOverlay.attr("id", "overlay_" + id_element);
var digit = svg.selectAll(".digit"),

View File

@ -1211,43 +1211,43 @@ function add_agent_node(agents) {
graph.nodes.push(temp_node);
/*jQuery.each(data['rel'], function(i, relation) {
var temp_link = {};
if (i == 0) {
var found = 0;
temp_link['source'] = graph.nodes[temp_node['id']];
jQuery.each(graph.nodes, function(j, element) {
if (element.id_agent == relation['id_agent_end']) {
found = j;
}
});
temp_link['target'] = graph.nodes[found];
}
else {
var found = 0;
temp_link['target'] = graph.nodes[temp_node['id']];
jQuery.each(graph.nodes, function(j, element) {
if (element.id_agent == relation['id_agent_start']) {
found = j;
}
});
temp_link['source'] = graph.nodes[found];
}
temp_link['id_db'] = String(relation['id_db']);
temp_link['id_agent_end'] = String(relation['id_agent_end']);
temp_link['id_agent_start'] = String(relation['id_agent_start']);
temp_link['id_module_end'] = relation['id_module_end'];
temp_link['id_module_start'] = relation['id_module_start'];
temp_link['source_in_db'] = String(relation['source_in_db']);
temp_link['target_in_db'] = String(relation['target_in_db']);
temp_link['arrow_end'] = relation['arrow_end'];
temp_link['arrow_start'] = relation['arrow_start'];
temp_link['status_end'] = relation['status_end'];
temp_link['status_start'] = relation['status_start'];
temp_link['text_end'] = relation['text_end'];
temp_link['text_start'] = relation['text_start'];
graph.links.push(temp_link);
});*/
var temp_link = {};
if (i == 0) {
var found = 0;
temp_link['source'] = graph.nodes[temp_node['id']];
jQuery.each(graph.nodes, function(j, element) {
if (element.id_agent == relation['id_agent_end']) {
found = j;
}
});
temp_link['target'] = graph.nodes[found];
}
else {
var found = 0;
temp_link['target'] = graph.nodes[temp_node['id']];
jQuery.each(graph.nodes, function(j, element) {
if (element.id_agent == relation['id_agent_start']) {
found = j;
}
});
temp_link['source'] = graph.nodes[found];
}
temp_link['id_db'] = String(relation['id_db']);
temp_link['id_agent_end'] = String(relation['id_agent_end']);
temp_link['id_agent_start'] = String(relation['id_agent_start']);
temp_link['id_module_end'] = relation['id_module_end'];
temp_link['id_module_start'] = relation['id_module_start'];
temp_link['source_in_db'] = String(relation['source_in_db']);
temp_link['target_in_db'] = String(relation['target_in_db']);
temp_link['arrow_end'] = relation['arrow_end'];
temp_link['arrow_start'] = relation['arrow_start'];
temp_link['status_end'] = relation['status_end'];
temp_link['status_start'] = relation['status_start'];
temp_link['text_end'] = relation['text_end'];
temp_link['text_start'] = relation['text_start'];
graph.links.push(temp_link);
});*/
draw_elements_graph();
init_drag_and_drop();
@ -3385,8 +3385,8 @@ function init_graph(parameter_object) {
"stroke-opacity: 0.75; " +
"stroke-dasharray: none; " +
"stroke-dashoffset: 0"
);
)
.attr("class", "fill_222");
window.layer_graph
.append("text")
.append("tspan")
@ -3406,6 +3406,7 @@ function init_graph(parameter_object) {
"stroke: none; " +
"font-family: Verdana"
)
.attr("class", "fill_fff")
.attr(
"x",
networkmap_dimensions[0] + node_radius - holding_area_dimensions[0]
@ -4072,7 +4073,7 @@ function draw_elements_graph() {
node_temp
.append("text")
.attr("class", "node_text")
.attr("class", "node_text fill_fff")
.attr("id", "node_text_" + networkmap_id)
.attr(
"style",
@ -4094,7 +4095,7 @@ function draw_elements_graph() {
.text(function(d) {
return ellipsize(get_node_name_ov(d), 30);
})
.classed("dragable_node", true) //own dragable
.classed("dragable_node fill_fff", true) //own dragable
.on("click", selected_node)
.on("contextmenu", function(d) {
show_menu("node", d);

View File

@ -490,6 +490,8 @@ class Widget
*/
public function getFormInputs(): array
{
global $config;
$inputs = [];
$values = $this->values;
@ -501,6 +503,10 @@ class Widget
if (empty($values['background']) === true) {
$values['background'] = '#ffffff';
if ($config['style'] === 'pandora_black') {
$values['background'] = '#222222';
}
}
$inputs[] = [

View File

@ -732,7 +732,12 @@ class EventsListWidget extends Widget
$table->data[$i] = $data;
$table->cellstyle[$i][0] = 'background: #E8E8E8;';
$bg_color = 'background: #E8E8E8;';
if ($config['style'] === 'pandora_black') {
$bg_color = 'background: #222;';
}
$table->cellstyle[$i][0] = $bg_color;
$rowclass = \events_get_criticity_class($event['criticity']);
$table->cellclass[$i][1] = $rowclass;
$table->cellclass[$i][2] = $rowclass;

View File

@ -510,7 +510,7 @@ class SystemGroupStatusWidget extends Widget
$show_link = array_key_exists($group['g'], $user_groups);
if ((in_array($group['g'], $this->values['groupId'])) === true) {
$table->data[$i][] = '<span>'.$group['name'].'</span>';
$table->data[$i][] = '<span class="legendLabel">'.$group['name'].'</span>';
$url = $config['homeurl'].'index.php';
$url .= '?sec=estado&sec2=operation/agentes/status_monitor';

View File

@ -536,6 +536,9 @@ class TreeViewWidget extends Widget
// Css Files.
\ui_require_css_file('tree', 'include/styles/', true);
if ($config['style'] == 'pandora_black') {
\ui_require_css_file('pandora_black', 'include/styles/', true);
}
// Javascript Files.
\ui_include_time_picker();
@ -683,7 +686,7 @@ class TreeViewWidget extends Widget
];
// Show the modal window of an module.
$output .= '<div id="module_details_window" class="invisible">';
$output .= '<div id="module_details_window" class="">';
$output .= '</div>';
// Script.

View File

@ -5450,6 +5450,10 @@ table.info_table.policy_sub_table {
min-width: 100px;
}
div.label_select_child_left > span {
width: 100% !important;
}
.label_select_child_right {
width: 20%;
min-width: 140px;

View File

@ -665,6 +665,9 @@ form ul.form_flex {
border-radius: 4px;
}
text {
color: #fff !important;
}
.legendLabel {
color: #fff;
}
@ -720,8 +723,9 @@ form ul.form_flex {
color: #900;
}
.cluetip-default ul {
text-align: left;
.cluetip-default ul,
.text_left {
text-align: left !important;
}
.card {
border: 1px solid #e2e2e2;
@ -892,3 +896,53 @@ div.integria_details_description textarea {
color: #fff;
resize: vertical;
}
.grid-stack-item-content {
color: #fff !important;
}
.widget-groups-status h1 a {
font-size: 1.1em;
font-weight: bold;
line-height: 20px;
color: #fff;
font-family: "lato-lighter", "Open Sans", sans-serif;
letter-spacing: 0.03pt;
text-decoration: none;
text-transform: capitalize;
}
.widget_groups_status {
background-color: #222;
}
.flot-text {
color: #fff !important;
}
.table.group_modules_status_box tr td {
font-family: "lato-lighter", "Open Sans", sans-serif;
letter-spacing: 0.03pt;
font-size: 11pt;
text-decoration: none;
color: #fff !important;
font-weight: bolder;
text-align: justify;
border-bottom: 0px;
}
.bg_222_important {
background-color: #222 !important;
}
.networkconsole {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
background-color: #111;
}
.fill_222 {
fill: #222 !important;
}
.fill_fff {
fill: #fff !important;
}

View File

@ -255,7 +255,7 @@
.select2-container--default
.select2-selection--multiple
.select2-selection__choice {
background-color: #e4e4e4;
background-color: #222;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
@ -263,7 +263,7 @@
margin-right: 5px;
margin-top: 5px;
padding: 0 5px;
color: #111;
color: #fff;
}
.select2-container--default
.select2-selection--multiple
@ -277,7 +277,7 @@
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove:hover {
color: #333;
color: #82b92e;
}
.select2-container--default[dir="rtl"]
.select2-selection--multiple
@ -301,7 +301,7 @@
}
.select2-container--default.select2-container--focus
.select2-selection--multiple {
border: solid black 1px;
border: solid #fff 1px;
outline: 0;
}
.select2-container--default.select2-container--disabled
@ -331,7 +331,7 @@
border: 1px solid #aaa;
}
.select2-container--default .select2-search--inline .select2-search__field {
background: transparent;
background: #222;
border: none;
outline: 0;
box-shadow: none;

View File

@ -438,7 +438,7 @@ enterprise_hook('close_meta_frame');
.hide()
.prop("id", "module_details_window")
.appendTo('body');
console.log("vamos a ver");
function show_module_detail_dialog(module_id, id_agent, server_name, offset, period, module_name) {
var params = {};
var f = new Date();

View File

@ -73,6 +73,13 @@ if ($manageDashboards !== 0) {
$output .= '</div>';
$output .= '</div>';
if ($config['style'] === 'pandora') {
$options['background'] = '#fff';
}
if ($config['style'] === 'pandora_black') {
$options['background'] = '#222';
}
if ((int) $cellData['id_widget'] !== 0) {
$style = 'style="background-color:'.$options['background'].';"';