Example #1
0
 /**
  * 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');
 }