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 >
2018-02-07 06:35:00 +01:00
< div class = " form-group " >
< label for = " sysLocation " class = " col-sm-2 control-label " > Override sysLocation :</ label >
< div class = " col-sm-6 " >
< input onclick = " edit.sysLocation.disabled=!edit.override_sysLocation.checked " type = " checkbox " name = " override_sysLocation "
< ? php
if ( $override_sysLocation ) {
echo ( ' checked="1"' );
}
?> />
</ div >
2014-06-16 23:06:04 +01:00
</ div >
2018-02-07 06:35:00 +01:00
< div class = " form-group " >
< div class = " col-sm-2 " ></ div >
< div class = " col-sm-6 " >
< input id = " sysLocation " name = " sysLocation " class = " form-control "
< ? php
if ( ! $override_sysLocation ) {
echo ( ' disabled="1"' );
}
?> value="<?php echo($override_sysLocation_string); ?>" />
</ div >
2014-06-16 23:06:04 +01:00
</ div >
2018-02-07 06:35:00 +01: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 ) {
2017-12-20 17:17:52 +03:00
$selected = 'selected="selected"' ;
} else {
$selected = '' ;
}
2018-02-07 06:35:00 +01:00
?>
< option value = " 0 " < ? = $selected ?> >None</option>
< ? php
2018-02-10 16:18:53 +03:00
$available_devs = dbFetchRows ( 'SELECT `device_id`,`hostname`,`sysName` FROM `devices` WHERE `device_id` <> ? ORDER BY `hostname` ASC' , array ( $device [ 'device_id' ]));
2018-02-07 06:35:00 +01:00
foreach ( $available_devs as $dev ) {
if ( in_array ( $dev [ 'device_id' ], $dev_parents )) {
$selected = 'selected="selected"' ;
} else {
$selected = '' ;
}
2018-02-10 16:18:53 +03:00
echo " <option value= " . $dev [ 'device_id' ] . " " . $selected . " > " . $dev [ 'hostname' ] . " ( " . $dev [ 'sysName' ] . " )</option> " ;
2018-02-07 06:35:00 +01:00
}
?>
</ select >
</ div >
2017-12-20 17:17:52 +03:00
</ div >
2018-02-07 06:35:00 +01:00
< div class = " form-group " >
< label for = " disabled " class = " col-sm-2 control-label " > Disable :</ label >
< div class = " col-sm-6 " >
< input name = " disabled " type = " checkbox " id = " disabled " value = " 1 "
< ? php
if ( $device [ " disabled " ]) {
echo ( " checked=checked " );
}
?> />
</ div >
2014-06-16 23:06:04 +01:00
</ div >
2018-02-07 06:35:00 +01:00
< div class = " form-group " >
< label for = " ignore " class = " col-sm-2 control-label " > Ignore </ label >
< div class = " col-sm-6 " >
< input name = " ignore " type = " checkbox " id = " ignore " value = " 1 "
< ? php
if ( $device [ 'ignore' ]) {
echo ( " checked=checked " );
}
?> />
</ div >
2015-09-16 15:59:57 +05:30
</ div >
2018-02-07 06:35:00 +01:00
< 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 >
</ div >
2014-06-16 23:06:04 +01:00
</ div >
</ 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 ();
?>