161 lines
5.0 KiB
PHP
161 lines
5.0 KiB
PHP
<?php
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage web
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
if ($vars['editing']) {
|
|
if ($readonly) {
|
|
print_error_permission('You have insufficient permissions to edit settings.');
|
|
} else {
|
|
$override_sysContact_bool = $vars['override_sysContact'];
|
|
if (isset($vars['sysContact'])) {
|
|
$override_sysContact_string = $vars['sysContact'];
|
|
}
|
|
$disable_notify = $vars['disable_notify'];
|
|
|
|
if ($override_sysContact_bool) {
|
|
set_dev_attrib($device, 'override_sysContact_bool', '1');
|
|
} else {
|
|
del_dev_attrib($device, 'override_sysContact_bool');
|
|
}
|
|
if (isset($override_sysContact_string)) {
|
|
set_dev_attrib($device, 'override_sysContact_string', $override_sysContact_string);
|
|
}
|
|
if ($disable_notify) {
|
|
set_dev_attrib($device, 'disable_notify', '1');
|
|
} else {
|
|
del_dev_attrib($device, 'disable_notify');
|
|
}
|
|
|
|
// 2019-12-05 23:30:00
|
|
|
|
if (isset($vars['ignore_until']) && $vars['ignore_until_enable']) {
|
|
$update['ignore_until'] = $vars['ignore_until'];
|
|
$device['ignore_until'] = $vars['ignore_until'];
|
|
} else {
|
|
$update['ignore_until'] = ['NULL'];
|
|
$device['ignore_until'] = '';
|
|
}
|
|
|
|
foreach (['ignore'] as $param) {
|
|
|
|
if (!in_array($param, ['purpose', 'poller_id'])) {
|
|
// Boolean params
|
|
$vars[$param] = get_var_true($vars[$param]) ? '1' : '0';
|
|
}
|
|
if ($vars[$param] != $device[$param]) {
|
|
$update[$param] = $vars[$param];
|
|
}
|
|
}
|
|
|
|
dbUpdate($update, 'devices', '`device_id` = ?', [$device['device_id']]);
|
|
|
|
$update_message = "Device alert settings updated.";
|
|
$updated = 1;
|
|
|
|
// Request for clear WUI cache
|
|
set_cache_clear('wui');
|
|
|
|
$device = dbFetchRow("SELECT * FROM `devices` WHERE `device_id` = ?", [$device['device_id']]);
|
|
|
|
}
|
|
|
|
if ($updated && $update_message) {
|
|
print_message($update_message);
|
|
} elseif ($update_message) {
|
|
print_error($update_message);
|
|
}
|
|
}
|
|
|
|
$override_sysContact_bool = get_dev_attrib($device, 'override_sysContact_bool');
|
|
$override_sysContact_string = get_dev_attrib($device, 'override_sysContact_string');
|
|
$disable_notify = get_dev_attrib($device, 'disable_notify');
|
|
|
|
$form = ['type' => 'horizontal',
|
|
'id' => 'edit',
|
|
//'space' => '20px',
|
|
'title' => 'Alert Settings',
|
|
//'class' => 'box box-solid',
|
|
'fieldset' => ['edit' => ''],
|
|
];
|
|
|
|
$form['row'][0]['editing'] = [
|
|
'type' => 'hidden',
|
|
'value' => 'yes'];
|
|
|
|
$form['row'][1]['ignore'] = [
|
|
'type' => 'toggle',
|
|
'view' => 'toggle',
|
|
'palette' => 'yellow',
|
|
'name' => 'Ignore Device',
|
|
//'fieldset' => 'edit',
|
|
'placeholder' => 'Suppresses alerts and notifications. Hides device from some UI elements.',
|
|
'readonly' => $readonly,
|
|
'value' => $device['ignore']];
|
|
|
|
$form['row'][2]['ignore_until'] = [
|
|
'type' => 'datetime',
|
|
//'fieldset' => 'edit',
|
|
'name' => 'Ignore Until',
|
|
'placeholder' => '',
|
|
//'width' => '250px',
|
|
'readonly' => $readonly,
|
|
'disabled' => empty($device['ignore_until']),
|
|
'min' => 'current',
|
|
'value' => $device['ignore_until'] ?: ''];
|
|
$form['row'][2]['ignore_until_enable'] = [
|
|
'type' => 'toggle',
|
|
'size' => 'large',
|
|
'readonly' => $readonly,
|
|
'onchange' => "toggleAttrib('disabled', 'ignore_until')",
|
|
'value' => !empty($device['ignore_until'])];
|
|
|
|
$form['row'][3]['override_sysContact'] = [
|
|
'type' => 'toggle',
|
|
'view' => 'toggle',
|
|
'palette' => 'yellow',
|
|
'name' => 'Override sysContact',
|
|
//'fieldset' => 'edit',
|
|
'placeholder' => 'Use custom contact below',
|
|
'readonly' => $readonly,
|
|
'onchange' => "toggleAttrib('disabled', 'sysContact')",
|
|
'value' => $override_sysContact_bool];
|
|
$form['row'][4]['sysContact'] = [
|
|
'type' => 'text',
|
|
//'fieldset' => 'edit',
|
|
'name' => 'Custom contact',
|
|
'placeholder' => '',
|
|
'width' => '250px',
|
|
'readonly' => $readonly,
|
|
'disabled' => !$override_sysContact_bool,
|
|
'value' => $override_sysContact_string];
|
|
$form['row'][5]['disable_notify'] = [
|
|
'type' => 'toggle',
|
|
'view' => 'toggle',
|
|
'palette' => 'red',
|
|
'name' => 'Disable notifications',
|
|
//'fieldset' => 'edit',
|
|
'placeholder' => 'Don\'t send alert notifications (but write to eventlog)',
|
|
'readonly' => $readonly,
|
|
'value' => $disable_notify];
|
|
$form['row'][7]['submit'] = [
|
|
'type' => 'submit',
|
|
'name' => 'Save Changes',
|
|
'icon' => 'icon-ok icon-white',
|
|
//'right' => TRUE,
|
|
'class' => 'btn-primary',
|
|
'readonly' => $readonly,
|
|
'value' => 'save'];
|
|
|
|
print_form($form);
|
|
unset($form);
|
|
|
|
// EOF
|