Acces to non-privilege user to planned downtime
(cherry picked from commit bbbddf2fff
)
Conflicts resolved:
pandora_console/godmode/agentes/planned_downtime.list.php
This commit is contained in:
parent
8115724e60
commit
88a53868aa
|
@ -197,42 +197,29 @@ if ($delete_downtime) {
|
|||
|
||||
// Filter parameters
|
||||
$offset = (int) get_parameter('offset');
|
||||
$search_text = (string) get_parameter('search_text');
|
||||
$date_from = (string) get_parameter('date_from');
|
||||
$date_to = (string) get_parameter('date_to');
|
||||
$execution_type = (string) get_parameter('execution_type');
|
||||
$show_archived = (bool) get_parameter('archived');
|
||||
$agent_id = (int) get_parameter('agent_id');
|
||||
$agent_name = !empty($agent_id) ? (string) get_parameter('agent_name') : "";
|
||||
$module_id = (int) get_parameter('module_name_hidden');
|
||||
$module_name = !empty($module_id) ? (string) get_parameter('module_name') : "";
|
||||
|
||||
$filter_params = array();
|
||||
$filter_params['search_text'] = $search_text;
|
||||
$filter_params['date_from'] = $date_from;
|
||||
$filter_params['date_to'] = $date_to;
|
||||
$filter_params['execution_type'] = $execution_type;
|
||||
$filter_params['archived'] = $show_archived;
|
||||
$filter_params['agent_id'] = $agent_id;
|
||||
$filter_params['agent_name'] = $agent_name;
|
||||
$filter_params['module_id'] = $module_id;
|
||||
$filter_params['module_name'] = $module_name;
|
||||
|
||||
$filter_params_aux = array();
|
||||
foreach ($filter_params as $name => $value) {
|
||||
$filter_params_aux[] = is_bool($value) ? $name."=".(int)$value : "$name=$value";
|
||||
}
|
||||
$filter_params_str = !empty($filter_params_aux) ? implode("&", $filter_params_aux) : "";
|
||||
$search_text = $filter_params['search_text'] = (string) get_parameter('search_text');
|
||||
$date_from = $filter_params['date_from'] = (string) get_parameter('date_from');
|
||||
$date_to = $filter_params['date_to'] = (string) get_parameter('date_to');
|
||||
$execution_type = $filter_params['execution_type'] = (string) get_parameter('execution_type');
|
||||
$show_archived = $filter_params['archived'] = (bool) get_parameter('archived');
|
||||
$agent_id = $filter_params['agent_id'] = (int) get_parameter('agent_id');
|
||||
$agent_name = $filter_params['agent_name'] = (string) (!empty($agent_id) ? get_parameter('agent_name') : '');
|
||||
$module_id = $filter_params['module_id'] = (int) get_parameter('module_name_hidden');
|
||||
$module_name = $filter_params['module_name'] = (string) (!empty($module_id) ? get_parameter('module_name') : '');
|
||||
|
||||
$filter_params_str = http_build_query($filter_params);
|
||||
|
||||
// Table filter
|
||||
$table = new StdClass();
|
||||
$table->class = 'databox';
|
||||
$table->width = '99%';
|
||||
$table->rowstyle = array();
|
||||
$table->rowstyle[0] = "background-color: #f9faf9;";
|
||||
$table->rowstyle[1] = "background-color: #f9faf9;";
|
||||
$table->rowstyle[2] = "background-color: #f9faf9;";
|
||||
$table->data = array();
|
||||
$table_form = new StdClass();
|
||||
$table_form->class = 'databox filters';
|
||||
$table_form->width = '100%';
|
||||
$table_form->rowstyle = array();
|
||||
$table_form->rowstyle[0] = "background-color: #f9faf9;";
|
||||
$table_form->rowstyle[1] = "background-color: #f9faf9;";
|
||||
$table_form->rowstyle[2] = "background-color: #f9faf9;";
|
||||
$table_form->data = array();
|
||||
|
||||
$row = array();
|
||||
|
||||
|
@ -244,7 +231,7 @@ $date_inputs .= " ";
|
|||
$date_inputs .= __('To') . ' ' . html_print_input_text('date_to', $date_to, '', 10, 10, true);
|
||||
$row[] = $date_inputs;
|
||||
|
||||
$table->data[] = $row;
|
||||
$table_form->data[] = $row;
|
||||
|
||||
$row = array();
|
||||
|
||||
|
@ -254,7 +241,7 @@ $row[] = __('Execution type') . ' ' . html_print_select($execution_type_fie
|
|||
// Show past downtimes
|
||||
$row[] = __('Show past downtimes') . ' ' . html_print_checkbox ("archived", 1, $show_archived, true);
|
||||
|
||||
$table->data[] = $row;
|
||||
$table_form->data[] = $row;
|
||||
|
||||
$row = array();
|
||||
|
||||
|
@ -271,22 +258,18 @@ $agent_input = __('Agent') . ' ' . ui_print_agent_autocomplete_input($param
|
|||
$row[] = $agent_input;
|
||||
|
||||
// Module
|
||||
$module_input = __('Module') . ' ' . html_print_autocomplete_modules('module_name', $module_name, false, true, '', array(), true);
|
||||
$row[] = $module_input;
|
||||
$row[] = __('Module') . ' ' . html_print_autocomplete_modules('module_name', $module_name, false, true, '', array(), true);
|
||||
|
||||
$row[] = html_print_submit_button('Search', 'search', false, 'class="sub search"', true);
|
||||
|
||||
$table->data[] = $row;
|
||||
$table_form->data[] = $row;
|
||||
|
||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
html_print_table($table);
|
||||
echo "</form>";
|
||||
|
||||
// View available downtimes present in database (if any of them)
|
||||
$table = new StdClass();
|
||||
$table->class = 'databox';
|
||||
$table->class = 'databox data';
|
||||
//Start Overview of existing planned downtime
|
||||
$table->width = '98%';
|
||||
$table->width = '100%';
|
||||
$table->cellstyle = array();
|
||||
$table->data = array();
|
||||
$table->head = array();
|
||||
|
@ -299,9 +282,7 @@ $table->head[5] = __('Configuration');
|
|||
$table->head[6] = __('Running');
|
||||
$table->head[7] = __('Stop downtime');
|
||||
$table->head[8] = __('Edit');
|
||||
if (check_acl ($config['id_user'], 0, "AW")) {
|
||||
$table->head[9] = __('delete');
|
||||
}
|
||||
$table->head[9] = __('Delete');
|
||||
$table->align[2] = "center";
|
||||
$table->align[6] = "center";
|
||||
$table->align[7] = "center";
|
||||
|
@ -309,7 +290,7 @@ $table->align[8] = "center";
|
|||
$table->align[9] = "center";
|
||||
|
||||
$groups = users_get_groups ();
|
||||
if(!empty($groups)) {
|
||||
if (!empty($groups)) {
|
||||
$where_values = "1=1";
|
||||
|
||||
$groups_string = implode (",", array_keys ($groups));
|
||||
|
@ -374,16 +355,77 @@ if(!empty($groups)) {
|
|||
AND tam.id_agente_modulo = $module_id
|
||||
AND tpda.all_modules = 1))";
|
||||
}
|
||||
|
||||
// Columns of the table tplanned_downtime
|
||||
$columns = array(
|
||||
'id',
|
||||
'name',
|
||||
'description',
|
||||
'date_from',
|
||||
'date_to',
|
||||
'executed',
|
||||
'id_group',
|
||||
'only_alerts',
|
||||
'monday',
|
||||
'tuesday',
|
||||
'wednesday',
|
||||
'thursday',
|
||||
'friday',
|
||||
'saturday',
|
||||
'sunday',
|
||||
'periodically_time_from',
|
||||
'periodically_time_to',
|
||||
'periodically_day_from',
|
||||
'periodically_day_to',
|
||||
'type_downtime',
|
||||
'type_execution',
|
||||
'type_periodicity',
|
||||
'id_user',
|
||||
);
|
||||
|
||||
switch ($config["dbtype"]) {
|
||||
case "mysql":
|
||||
case "postgresql":
|
||||
$columns_str = implode(',', $columns);
|
||||
$sql = "SELECT $columns_str
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values
|
||||
ORDER BY type_execution DESC, date_from DESC
|
||||
LIMIT ".$config["block_size"]."
|
||||
OFFSET $offset";
|
||||
break;
|
||||
case "oracle":
|
||||
// Oracle doesn't have TIME type, so we should transform the DATE value
|
||||
$new_time_from = "TO_CHAR(periodically_time_from, 'HH24:MI:SS') AS periodically_time_from";
|
||||
$new_time_to = "TO_CHAR(periodically_time_to, 'HH24:MI:SS') AS periodically_time_to";
|
||||
|
||||
$time_from_key = array_search('periodically_time_from', $columns);
|
||||
$time_to_key = array_search('periodically_time_to', $columns);
|
||||
|
||||
if ($time_from_key !== false)
|
||||
$columns[$time_from_key] = $new_time_from;
|
||||
if ($time_to_key !== false)
|
||||
$columns[$time_to_key] = $new_time_to;
|
||||
|
||||
$columns_str = implode(',', $columns);
|
||||
|
||||
$set = array ();
|
||||
$set['limit'] = $config["block_size"];
|
||||
$set['offset'] = $offset;
|
||||
|
||||
$sql = "SELECT $columns_str
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values
|
||||
ORDER BY type_execution DESC, date_from DESC";
|
||||
|
||||
$sql = oracle_recode_query ($sql, $set);
|
||||
break;
|
||||
}
|
||||
|
||||
$sql = "SELECT *
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values
|
||||
ORDER BY type_execution DESC, date_from DESC
|
||||
LIMIT ".$config["block_size"]."
|
||||
OFFSET $offset";
|
||||
$sql_count = "SELECT COUNT(id) AS num
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values";
|
||||
|
||||
$downtimes = db_get_all_rows_sql ($sql);
|
||||
$downtimes_number_res = db_get_all_rows_sql($sql_count);
|
||||
$downtimes_number = $downtimes_number_res != false ? $downtimes_number_res[0]['num'] : 0;
|
||||
|
@ -396,6 +438,10 @@ if (!$downtimes) {
|
|||
echo '<div class="nf">'.__('No planned downtime').'</div>';
|
||||
}
|
||||
else {
|
||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
html_print_table($table_form);
|
||||
echo "</form>";
|
||||
|
||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
||||
|
||||
foreach ($downtimes as $downtime) {
|
||||
|
@ -421,9 +467,9 @@ else {
|
|||
|
||||
switch ($downtime['type_execution']) {
|
||||
case 'once':
|
||||
$data[5] = date ("Y-m-d H:i", $downtime['date_from']) .
|
||||
$data[5] = date ("Y-m-d H:i:s", $downtime['date_from']) .
|
||||
" " . __('to') . " ".
|
||||
date ("Y-m-d H:i", $downtime['date_to']);
|
||||
date ("Y-m-d H:i:s", $downtime['date_to']);
|
||||
break;
|
||||
case 'periodically':
|
||||
switch ($downtime['type_periodicity']) {
|
||||
|
@ -458,7 +504,7 @@ else {
|
|||
$data[5] .= __('Sun');
|
||||
$data[5] .= " ";
|
||||
}
|
||||
$data[5] .= " (" . $downtime['periodically_time_from'];
|
||||
$data[5] .= " (" . $downtime['periodically_time_from'];
|
||||
$data[5] .= "-" . $downtime['periodically_time_to'] . ")";
|
||||
break;
|
||||
case 'monthly':
|
||||
|
@ -484,9 +530,8 @@ else {
|
|||
|
||||
if ($downtime['type_execution'] == 'once' && $downtime["executed"] == 1) {
|
||||
|
||||
$data[7] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list&' .
|
||||
'stop_downtime=1&' .
|
||||
'id_downtime=' . $downtime['id'] . '">' .
|
||||
$data[7] .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list' .
|
||||
'&stop_downtime=1&id_downtime=' . $downtime['id'] . '&' . $filter_params_str . '">' .
|
||||
html_print_image("images/cancel.png", true, array("border" => '0', "alt" => __('Stop downtime')));
|
||||
}
|
||||
else {
|
||||
|
@ -494,8 +539,7 @@ else {
|
|||
}
|
||||
|
||||
if ($downtime["executed"] == 0) {
|
||||
$data[8] = '<a
|
||||
href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">' .
|
||||
$data[8] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">' .
|
||||
html_print_image("images/config.png", true, array("border" => '0', "alt" => __('Update'))) . '</a>';
|
||||
if (check_acl ($config['id_user'], 0, "AW")) {
|
||||
$data[9] = '<a id="delete_downtime" href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list'.
|
||||
|
@ -503,6 +547,15 @@ else {
|
|||
html_print_image("images/cross.png", true, array("border" => '0', "alt" => __('Delete')));
|
||||
}
|
||||
}
|
||||
elseif ($downtime["executed"] == 1
|
||||
&& $downtime['type_execution'] == 'once') {
|
||||
|
||||
$data[8] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&' .
|
||||
'edit_downtime=1&id_downtime=' . $downtime['id'] . '">' .
|
||||
html_print_image("images/config.png", true,
|
||||
array("border" => '0', "alt" => __('Update'))) . '</a>';
|
||||
$data[9]= "N/A";
|
||||
}
|
||||
else {
|
||||
$data[8]= "N/A";
|
||||
$data[9]= "N/A";
|
||||
|
@ -521,20 +574,22 @@ else {
|
|||
array_push ($table->data, $data);
|
||||
}
|
||||
html_print_table ($table);
|
||||
}
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
echo '<br>';
|
||||
echo '<div style="display: inline;">';
|
||||
html_print_button(__('Export to CSV'), 'csv_export', false, "location.href='godmode/agentes/planned_downtime.export_csv.php?$filter_params_str'", 'class="sub next"');
|
||||
echo '</div>';
|
||||
echo ' ';
|
||||
if (check_acl ($config['id_user'], 0, "AW")) {
|
||||
echo '<br>';
|
||||
echo '<div style="display: inline;">';
|
||||
html_print_button(__('Export to CSV'), 'csv_export', false,
|
||||
"location.href='godmode/agentes/planned_downtime.export_csv.php?$filter_params_str'", 'class="sub next"');
|
||||
echo '</div>';
|
||||
echo ' ';
|
||||
if (check_acl ($config['id_user'], 0, "AW")) {
|
||||
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
||||
html_print_submit_button (__('Create'), 'create', false, 'class="sub next"');
|
||||
echo '</form>';
|
||||
}
|
||||
echo '</form>';
|
||||
echo '</div>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
|
||||
|
||||
ui_require_jquery_file("ui.datepicker-" . get_user_language(), "include/javascript/i18n/");
|
||||
|
|
Loading…
Reference in New Issue