add a monitors view which is for editing function/enabled/server/storage of multiple monitors

pull/3122/head
Isaac Connor 2017-10-23 17:01:43 -07:00
parent ced5015a83
commit d2c8a0240a
2 changed files with 36 additions and 7 deletions

View File

@ -266,6 +266,30 @@ Warning("Addterm");
}
}
if ( isset($_REQUEST['object']) and $_REQUEST['object'] == 'Monitor' ) {
if ( $action == 'save' ) {
foreach ( $_REQUEST['mids'] as $mid ) {
$mid = ValidInt( $mid );
if ( ! canEdit('Monitors', $mid ) ) {
Warning("Cannot edit monitor $mid");
continue;
}
$Monitor = new Monitor( $mid );
$Monitor->zmaControl('stop');
$Monitor->zmcControl('stop');
$Monitor->save( $_REQUEST['newMonitor'] );
if ($Monitor->Function() != 'None' ) {
$Monitor->zmcControl('start');
if ( $Monitor->Enabled() ) {
$Monitor->zmaControl('start');
}
}
} // end foreach mid
$refreshParent = true;
} // end if action == save
} // end if object is Monitor
// Monitor edit actions, require a monitor id and edit permissions for that monitor
if ( !empty($_REQUEST['mid']) && canEdit( 'Monitors', $_REQUEST['mid'] ) ) {
$mid = validInt($_REQUEST['mid']);

View File

@ -13,7 +13,7 @@ function setButtonStates( element ) {
}
}
$(element).closest("tr").toggleClass("danger");
form.editBtn.disabled = (checked!=1);
form.editBtn.disabled = checked ? false : true;
form.addBtn.value = (checked==1) ? jsTranslatedCloneText:jsTranslatedAddText;
form.deleteBtn.disabled = (checked==0);
@ -40,18 +40,23 @@ function addMonitor( element) {
function editMonitor( element ) {
var form = element.form;
var monitorIds = Array();
for ( var i = 0; i < form.elements.length; i++ ) {
if ( form.elements[i].type == "checkbox" ) {
if ( form.elements[i].checked ) {
var monitorId = form.elements[i].value;
createPopup( '?view=monitor&mid='+monitorId, 'zmMonitor'+monitorId, 'monitor' );
form.elements[i].checked = false;
setButtonStates( form.elements[i] );
monitorIds.push( form.elements[i].value );
//form.elements[i].checked = false;
//setButtonStates( form.elements[i] );
//$(form.elements[i]).getParent( 'tr' ).removeClass( 'highlight' );
break;
//break;
}
}
}
} // end foreach checkboxes
if ( monitorIds.length == 1 )
createPopup( '?view=monitor&mid='+monitorIds[0], 'zmMonitor'+monitorIds[0], 'monitor' );
else if ( monitorIds.length > 1 )
createPopup( '?view=monitors&'+(monitorIds.map(function(mid){return 'mids[]='+mid;}).join('&')), 'zmMonitors', 'monitors' );
}
function deleteMonitor( element ) {