/** * Edit a monitoring instance */ public function editinstanceAction() { $instanceName = $this->params->getRequired('instance'); $form = new InstanceConfigForm(); $form->setRedirectUrl('monitoring/config'); $form->setTitle(sprintf($this->translate('Edit Monitoring Instance %s'), $instanceName)); $form->setIniConfig($this->Config('instances')); $form->setOnSuccess(function (InstanceConfigForm $form) use($instanceName) { try { $form->edit($instanceName, array_map(function ($v) { return $v !== '' ? $v : null; }, $form->getValues())); } catch (Exception $e) { $form->error($e->getMessage()); return false; } if ($form->save()) { Notification::success(sprintf(t('Monitoring instance "%s" successfully updated'), $instanceName)); return true; } return false; }); try { $form->load($instanceName); $form->handleRequest(); } catch (NotFoundError $_) { $this->httpNotFound(sprintf($this->translate('Monitoring instance "%s" not found'), $instanceName)); } $this->view->form = $form; $this->render('form'); }