2010-06-20 17:21:35 +00:00
<? php
2015-07-13 20:10:26 +02:00
if ( $_POST [ 'editing' ]) {
if ( $_SESSION [ 'userlevel' ] > "7" ) {
$updated = 0 ;
2011-03-31 17:19:54 +00:00
2017-12-20 17:17:52 +03:00
if ( isset ( $_POST [ 'parent_id' ])) {
$parent_id = $_POST [ 'parent_id' ];
$res = dbDelete ( 'device_relationships' , '`child_device_id` = ?' , array ( $device [ 'device_id' ]));
if ( ! in_array ( '0' , $pr )) {
foreach ( $parent_id as $pr ) {
dbInsert ( array ( 'parent_device_id' => $pr , 'child_device_id' => $device [ 'device_id' ]), 'device_relationships' );
}
}
}
2015-07-13 20:10:26 +02:00
$override_sysLocation_bool = mres ( $_POST [ 'override_sysLocation' ]);
if ( isset ( $_POST [ 'sysLocation' ])) {
2016-03-08 11:18:33 +00:00
$override_sysLocation_string = $_POST [ 'sysLocation' ];
2015-07-13 20:10:26 +02:00
}
2011-03-31 17:19:54 +00:00
2015-07-20 16:52:33 +01:00
if ( $device [ 'override_sysLocation' ] != $override_sysLocation_bool || $device [ 'location' ] != $override_sysLocation_string ) {
$updated = 1 ;
}
2011-03-31 17:19:54 +00:00
2015-07-13 20:10:26 +02:00
if ( $override_sysLocation_bool ) {
2015-07-20 16:52:33 +01:00
$override_sysLocation = 1 ;
2016-08-18 20:28:22 -05:00
} else {
2015-07-20 16:52:33 +01:00
$override_sysLocation = 0 ;
2015-07-13 20:10:26 +02:00
}
2015-07-20 16:52:33 +01:00
2016-08-18 20:28:22 -05:00
dbUpdate ( array ( 'override_sysLocation' => $override_sysLocation ), 'devices' , '`device_id`=?' , array ( $device [ 'device_id' ]));
2015-07-20 16:52:33 +01:00
2015-07-13 20:10:26 +02:00
if ( isset ( $override_sysLocation_string )) {
2016-08-18 20:28:22 -05:00
dbUpdate ( array ( 'location' => $override_sysLocation_string ), 'devices' , '`device_id`=?' , array ( $device [ 'device_id' ]));
2015-07-20 16:52:33 +01:00
}
2011-03-31 17:19:54 +00:00
2017-01-22 09:49:13 +00:00
if ( $device [ 'type' ] != $vars [ 'type' ]) {
$param [ 'type' ] = $vars [ 'type' ];
$update_type = true ;
}
2015-07-13 20:10:26 +02:00
#FIXME needs more sanity checking! and better feedback
2011-03-18 15:30:49 +00:00
2017-01-22 09:49:13 +00:00
$param [ 'purpose' ] = $vars [ 'descr' ];
$param [ 'ignore' ] = set_numeric ( $vars [ 'ignore' ]);
$param [ 'disabled' ] = set_numeric ( $vars [ 'disabled' ]);
2011-05-15 17:20:26 +00:00
2015-07-13 20:10:26 +02:00
$rows_updated = dbUpdate ( $param , 'devices' , '`device_id` = ?' , array ( $device [ 'device_id' ]));
2011-03-18 15:30:49 +00:00
2015-07-13 20:10:26 +02:00
if ( $rows_updated > 0 || $updated ) {
2017-01-22 09:49:13 +00:00
if ( $update_type === true ) {
set_dev_attrib ( $device , 'override_device_type' , true );
}
2015-07-13 20:10:26 +02:00
$update_message = "Device record updated." ;
$updated = 1 ;
$device = dbFetchRow ( "SELECT * FROM `devices` WHERE `device_id` = ?" , array ( $device [ 'device_id' ]));
2017-01-22 09:49:13 +00:00
} elseif ( $rows_updated == 0 ) {
2015-07-13 20:10:26 +02:00
$update_message = "Device record unchanged. No update necessary." ;
$updated = - 1 ;
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
$update_message = "Device record update error." ;
}
2016-12-08 04:16:05 +00:00
if ( isset ( $_POST [ 'hostname' ]) && $_POST [ 'hostname' ] !== '' && $_POST [ 'hostname' ] !== $device [ 'hostname' ]) {
2016-11-12 17:19:22 -07:00
if ( is_admin ()) {
$result = renamehost ( $device [ 'device_id' ], $_POST [ 'hostname' ], 'webui' );
if ( $result == "" ) {
print_message ( "Hostname updated from { $device [ 'hostname' ] } to { $_POST [ 'hostname' ] } " );
echo '
<script>
var loc = window.location;
window.location.replace(loc.protocol + "//" + loc.host + loc.pathname + loc.search);
</script>
' ;
} else {
print_error ( $result . ". Does your web server have permission to modify the rrd files?" );
}
} else {
print_error ( 'Only administrative users may update the device hostname' );
}
}
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
include 'includes/error-no-perm.inc.php' ;
2011-03-18 15:30:49 +00:00
}
2010-06-20 17:21:35 +00:00
}
$descr = $device [ 'purpose' ];
2015-07-20 16:52:33 +01:00
$override_sysLocation = $device [ 'override_sysLocation' ];
$override_sysLocation_string = $device [ 'location' ];
2011-03-31 17:19:54 +00:00
2015-07-13 20:10:26 +02:00
if ( $updated && $update_message ) {
print_message ( $update_message );
2016-08-18 20:28:22 -05:00
} elseif ( $update_message ) {
2015-07-13 20:10:26 +02:00
print_error ( $update_message );
2010-06-20 17:21:35 +00:00
}
2011-03-31 17:19:54 +00:00
?>
2016-01-10 19:01:59 +05:30
<h3> Device Settings </h3>
2014-10-02 20:17:45 +01:00
<div class="row">
2015-09-16 15:59:57 +05:30
<div class="col-md-1 col-md-offset-2">
2014-10-02 20:17:45 +01:00
<form id="delete_host" name="delete_host" method="post" action="delhost/" role="form">
<input type="hidden" name="id" value="<?php echo($device['device_id']); ?>">
2015-09-15 01:41:39 +05:30
<button type="submit" class="btn btn-danger" name="Submit"><i class="fa fa-trash"></i> Delete device</button>
2014-10-02 20:17:45 +01:00
</form>
</div>
2015-09-16 15:59:57 +05:30
<div class="col-md-1 col-md-offset-2">
2015-09-15 01:41:39 +05:30
<?php
2017-10-31 14:48:15 -05:00
if ($config['enable_clear_discovery'] == 1 && !$device['snmp_disable']) {
2015-09-15 01:41:39 +05:30
?>
<button type="submit" id="rediscover" data-device_id="<?php echo($device['device_id']); ?>" class="btn btn-primary" name="rediscover"><i class="fa fa-retweet"></i> Rediscover device</button>
<?php
}
?>
2014-10-02 20:17:45 +01:00
</div>
</div>
2015-09-16 15:59:57 +05:30
<br>
2014-06-16 23:06:04 +01:00
<form id="edit" name="edit" method="post" action="" role="form" class="form-horizontal">
<input type=hidden name="editing" value="yes">
2016-11-12 17:19:22 -07:00
<div class="form-group" data-toggle="tooltip" data-container="body" data-placement="bottom" title="Change the hostname used for name resolution" >
<label for="edit-hostname-input" class="col-sm-2 control-label" >Hostname:</label>
<div class="col-sm-6">
<input type="text" id="edit-hostname-input" name="hostname" class="form-control" disabled value=<?php echo(display($device['hostname'])); ?> />
</div>
<div class="col-sm-2">
<button name="hostname-edit-button" id="hostname-edit-button" class="btn btn-danger"> <i class="fa fa-pencil"></i> </button>
</div>
</div>
<div class="form-group">
2015-09-16 15:59:57 +05:30
<label for="descr" class="col-sm-2 control-label">Description:</label>
<div class="col-sm-6">
2016-10-15 20:45:18 +01:00
<textarea id="descr" name="descr" class="form-control"><?php echo(display($device['purpose'])); ?></textarea>
2015-09-16 15:59:57 +05:30
</div>
2014-06-16 23:06:04 +01:00
</div>
2015-09-16 15:59:57 +05:30
<div class="form-group">
<label for="type" class="col-sm-2 control-label">Type:</label>
<div class="col-sm-6">
<select id="type" name="type" class="form-control">
<?php
$unknown = 1;
foreach ($config['device_types'] as $type) {
echo(' <option value="'.$type['type'].'"');
if ($device['type'] == $type['type']) {
echo(' selected="1"');
$unknown = 0;
}
echo(' >' . ucfirst($type['type']) . '</option>');
}
if ($unknown) {
echo(' <option value="other">Other</option>');
}
?>
</select>
</div>
</div>
<div class="form-group">
2014-06-16 23:06:04 +01:00
<label for="sysLocation" class="col-sm-2 control-label">Override sysLocation:</label>
<div class="col-sm-6">
2017-11-29 02:23:19 -06:00
<input onclick="edit.sysLocation.disabled=!edit.override_sysLocation.checked" type="checkbox" name="override_sysLocation"
<?php
if ($override_sysLocation) {
echo(' checked="1"');
}
?> />
2014-06-16 23:06:04 +01:00
</div>
2015-09-16 15:59:57 +05:30
</div>
<div class="form-group">
<div class="col-sm-2"></div>
2014-06-16 23:06:04 +01:00
<div class="col-sm-6">
2017-11-29 02:23:19 -06:00
<input id="sysLocation" name="sysLocation" class="form-control"
<?php
if (!$override_sysLocation) {
echo(' disabled="1"');
}
?> value="<?php echo($override_sysLocation_string); ?>" />
2014-06-16 23:06:04 +01:00
</div>
2015-09-16 15:59:57 +05:30
</div>
2017-12-20 17:17:52 +03:00
<div class="form-group">
<label for="parent_id" class="col-sm-2 control-label">This device depends on:</label>
<div class="col-sm-6">
<select multiple name="parent_id[]" id="parent_id" class="form-control">
<?php
$dev_parents = dbFetchColumn('SELECT device_id from devices WHERE device_id IN (SELECT dr.parent_device_id from devices as d, device_relationships as dr WHERE d.device_id = dr.child_device_id AND d.device_id = ?)', array($device['device_id']));
if (!$dev_parents) {
$selected = 'selected="selected"';
} else {
$selected = '';
}
?>
<option value="0" <?=$selected?>>None</option>
<?php
$available_devs = dbFetchRows('SELECT `device_id`,`hostname` FROM `devices` WHERE `device_id` <> ? ORDER BY `hostname` ASC', array($device['device_id']));
foreach ($available_devs as $dev) {
if (in_array($dev['device_id'], $dev_parents)) {
$selected = 'selected="selected"';
} else {
$selected = '';
}
echo "<option value=".$dev['device_id']." ".$selected.">".$dev['hostname']."</option>";
}
?>
</select>
</div>
</div>
2015-09-16 15:59:57 +05:30
<div class="form-group">
2014-06-16 23:06:04 +01:00
<label for="disabled" class="col-sm-2 control-label">Disable:</label>
<div class="col-sm-6">
2017-11-29 02:23:19 -06:00
<input name="disabled" type="checkbox" id="disabled" value="1"
<?php
if ($device["disabled"]) {
echo("checked=checked");
}
?> />
2014-06-16 23:06:04 +01:00
</div>
2015-09-16 15:59:57 +05:30
</div>
<div class="form-group">
2014-06-16 23:06:04 +01:00
<label for="ignore" class="col-sm-2 control-label">Ignore</label>
<div class="col-sm-6">
2017-11-29 02:23:19 -06:00
<input name="ignore" type="checkbox" id="ignore" value="1"
<?php
if ($device['ignore']) {
echo("checked=checked");
}
?> />
2015-09-16 15:59:57 +05:30
</div>
</div>
<div class="row">
<div class="col-md-1 col-md-offset-2">
<button type="submit" name="Submit" class="btn btn-default"><i class="fa fa-check"></i> Save</button>
2014-06-16 23:06:04 +01:00
</div>
2015-09-16 15:59:57 +05:30
</div>
2014-06-16 23:06:04 +01:00
</form>
2011-09-23 10:16:31 +00:00
<br />
2014-10-02 20:17:45 +01:00
<script>
$("#rediscover").click(function() {
var device_id = $(this).data("device_id");
$.ajax({
type: 'POST',
2015-08-11 14:54:05 -07:00
url: 'ajax_form.php',
2014-10-02 20:17:45 +01:00
data: { type: "rediscover-device", device_id: device_id },
dataType: "json",
success: function(data){
if(data['status'] == 'ok') {
toastr.success(data['message']);
} else {
toastr.error(data['message']);
}
},
error:function(){
toastr.error('An error occured setting this device to be rediscovered');
}
});
});
2016-11-12 17:19:22 -07:00
$('#hostname-edit-button').click(function(e) {
e.preventDefault();
disabled_state = document.getElementById('edit-hostname-input').disabled;
if (disabled_state == true) {
document.getElementById('edit-hostname-input').disabled = false;
} else {
document.getElementById('edit-hostname-input').disabled = true;
}
});
2017-12-20 17:17:52 +03:00
$('#parent_id').select2({
width: 'resolve',
tags: true,
});
2014-10-02 20:17:45 +01:00
</script>
2011-09-23 10:16:31 +00:00
<?php
print_optionbar_start();
2017-09-02 20:45:31 +02:00
list($sizeondisk, $numrrds) = foldersize(get_rrd_dir($device['hostname']));
2011-09-23 10:16:31 +00:00
echo("Size on Disk: <b>" . formatStorage($sizeondisk) . "</b> in <b>" . $numrrds . " RRD files</b>.");
print_optionbar_end();
?>