librenms/html/pages/device/edit/health.inc.php

142 lines
4.5 KiB
PHP

<?php
/*
Copyright (C) 2013 LibreNMS Contributors librenms-project@googlegroups.com
*/
// FUA
?>
<h3>Health settings</h3>
<table class="table table-hover table-condensed table-bordered">
<tr class="info">
<th class="col-sm-2">Class</th>
<th class="col-sm-2">Type</th>
<th class="col-sm-3">Desc</th>
<th class="col-sm-1">Current</th>
<th class="col-sm-1">High</th>
<th class="col-sm-1">Low</th>
<th class="col-sm-2">Alerts</th>
</tr>
<?php
foreach ( dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND sensor_deleted='0'", array($device['device_id'])) as $sensor)
{
$rollback[] = array('sensor_id' => $sensor['sensor_id'], 'sensor_limit' => $sensor['sensor_limit'], 'sensor_limit_low' => $sensor['sensor_limit_low'], 'sensor_alert' => $sensor['sensor_alert']);
if($sensor['sensor_alert'] == 1)
{
$alert_status = 'checked';
}
else
{
$alert_status = '';
}
echo('
<tr>
<td>'.$sensor['sensor_class'].'</td>
<td>'.$sensor['sensor_type'].'</td>
<td>'.$sensor['sensor_descr'].'</td>
<td>'.$sensor['sensor_current'].'</td>
<td>
<div class="form-group">
<input type="text" class="form-control input-sm sensor" id="high-'.$sensor['device_id'].'" data-device_id="'.$sensor['device_id'].'" data-value_type="sensor_limit" data-sensor_id="'.$sensor['sensor_id'].'" value="'.$sensor['sensor_limit'].'">
</div>
</td>
<td><div class="form-group">
<input type="text" class="form-control input-sm sensor" id="low-'.$sensor['device_id'].'" data-device_id="'.$sensor['device_id'].'" data-value_type="sensor_limit_low" data-sensor_id="'.$sensor['sensor_id'].'" value="'.$sensor['sensor_limit_low'].'">
</div></td>
<td>
<input type="checkbox" name="alert-status" data-device_id="'.$sensor['device_id'].'" data-sensor_id="'.$sensor['sensor_id'].'" '.$alert_status.'>
</td>
</tr>
');
}
?>
</table>
<form id="alert-reset">
<?php
foreach($rollback as $reset_data)
{
echo ('
<input type="hidden" name="sensor_id[]" value="'.$reset_data['sensor_id'].'">
<input type="hidden" name="sensor_limit[]" value="'.$reset_data['sensor_limit'].'">
<input type="hidden" name="sensor_limit_low[]" value="'.$reset_data['sensor_limit_low'].'">
<input type="hidden" name="sensor_alert[]" value="'.$reset_data['sensor_alert'].'">
');
}
?>
<input type="hidden" name="type" value="sensor-alert-reset">
<button id = "newThread" class="btn btn-primary" type="submit">Reset values</button>
</form>
<script>
$('#newThread').on('click', function(e){
e.preventDefault(); // preventing default click action
var form = $('#alert-reset');
$.ajax({
type: 'POST',
url: '/ajax_form.php',
data: form.serialize(),
dataType: "html",
success: function(data){
//alert(data);
location.reload(true);
},
error:function(){
//alert('bad');
}
});
});
</script>
<script>
$( ".sensor" ).blur(function() {
var sensor_type = $(this).attr('id');
var device_id = $(this).data("device_id");
var sensor_id = $(this).data("sensor_id");
var value_type = $(this).data("value_type");
var data = $(this).val();
var $this = $(this);
$.ajax({
type: 'POST',
url: '/ajax_form.php?'+value_type,
data: { type: "health-update", device_id: device_id, data: data, sensor_id: sensor_id , value_type: value_type},
dataType: "html",
success: function(data){
$this.closest('.form-group').addClass('has-success');
setTimeout(function(){
$this.closest('.form-group').removeClass('has-success');
}, 2000);
},
error:function(){
$(this).closest('.form-group').addClass('has-error');
setTimeout(function(){
$this.closest('.form-group').removeClass('has-error');
}, 2000);
}
});
});
</script>
<script>
$("[name='alert-status']").bootstrapSwitch('offColor','danger');
$('input[name="alert-status"]').on('switchChange.bootstrapSwitch', function(event, state) {
event.preventDefault();
var $this = $(this);
var device_id = $(this).data("device_id");
var sensor_id = $(this).data("sensor_id");
$.ajax({
type: 'POST',
url: '/ajax_form.php',
data: { type: "sensor-alert-update", device_id: device_id, sensor_id: sensor_id, state: state},
dataType: "html",
success: function(data){
//alert('good');
},
error:function(){
//alert('bad');
}
});
});
</script>